๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

๐Ÿ“บ Front End71

[Styled-Components] Styled-Component๋ฅผ create-react-app์— ์ถ”๊ฐ€ํ•˜๊ณ  ๊ฐ„๋‹จํžˆ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ Styled-Component๋Š” ์‚ฌ์‹ค npm์— ์˜ํ•ด ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ผ ๋ฟ์ด๋‹ค. ๊ทธ๋ž˜์„œ Create-React-App์„ ํ†ตํ•œ react ์•ฑ ์ƒ์„ฑ์—์„œ npm์„ ์ด์šฉํ•ด์„œ ์ถ”๊ฐ€ํ•ด์ฃผ๊ธฐ๋งŒ ํ•˜๋ฉด ์ค€๋น„๋Š” ๋๋‚œ๋‹ค. ์ ์šฉ ์ˆœ์„œ ์ ์šฉ ์ˆœ์„œ๋Š” ๋งค์šฐ ๊ฐ„๋‹จํ•œ ๊ณผ์ •์— ์˜ํ•ด ์ˆ˜ํ–‰๋œ๋‹ค. create-react-app์œผ๋กœ react ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ react ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™” ์ž‘์—… npm ๋ชจ๋“ˆ๋กœ styled-components ์ถ”๊ฐ€ํ•˜๊ธฐ create-react-app์œผ๋กœ react ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜์ž. react ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐํ™” ์ž‘์—… react ํ”„๋กœ์ ํŠธ๋ฅผ ๋งŒ๋“ค๋ฉด ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์„ฑ๋˜๋Š” svg๋‚˜ serviceworker๋“ฑ์„ ์‚ญ์ œํ•˜๊ณ  ๋‹ค์Œ๊ณผ ๊ฐ™์€์ƒํƒœ๋กœ ๋งŒ๋“ค์ž. npm ๋ชจ๋“ˆ๋กœ styled-components ์ถ”๊ฐ€ํ•˜๊ธฐ ๊ทธ๋ฆฌ.. 2020. 10. 6.
[Styled-Components] Styled-Components๋ฅผ ๋ฐฐ์šฐ๊ธฐ ์œ„ํ•ด ์•Œ์•„์•ผ ํ•˜๋Š” Template Literal ์˜ค๋Š˜์€ Styled-component๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์žฅ ๊ธฐ๋ณธ์ด ๋˜๋Š” Js ๋ฌธ๋ฒ•์ธ Template Literal์— ๋Œ€ํ•ด์„œ ๊ฐ€๋ณ๊ฒŒ ์•Œ์•„๋ณด๊ณ  ๋„˜์–ด๊ฐˆ ๊ฒƒ์ด๋‹ค. Template Literal ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์€ ๋‚ด์žฅ๋œ ํ‘œํ˜„์‹์„ ํ—ˆ์šฉํ•˜๋Š” ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์ด๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฌธ์ž์—ด ๋ฆฌํ„ฐ๋Ÿด์€ ๋ฌด์—‡์ด๋ƒ? ๊ธฐ๋ณธ์  ์‚ฌ์šฉ๋ฒ• ์—ฌ๊ธฐ์„œ ๋”ฐ์˜ดํ‘œ๋ฅผ ์‚ฌ์šฉํ•˜๋Š”๋ฐ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” '' ๊ฐ€ ์•„๋‹Œ ``๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋Š” ๋”ฐ์˜ดํ‘œ๋ผ๊ณ  ํ•˜์ง€ ์•Š๊ณ  ๋ฐฑํ‹ฑ (grave accent)์„ ์ด์šฉํ•œ๋‹ค. ํ…œํ”Œ๋ฆฟ ๋ฆฌํ„ฐ๋Ÿด์€ ${expression}๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๊ณ , ํ‘œํ˜„์‹๊ณผ ๊ทธ ์‚ฌ์ด ํ…์ŠคํŠธ๋Š” ํ•จ์ˆ˜๋กœ ์ „๋‹ฌ๋œ๋‹ค. ์ผ๋ฐ˜ ๋ฌธ์ž์—ด const name = "jang"; const message = `welcome ${name}`; console.log(message); // "hel.. 2020. 10. 6.
[Styled-Components] React์˜ Styled-Components๋ž€ ๋ฌด์—‡์ผ๊นŒ? ์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ๋ฆฌ๊ฐ€ HTML Element๋ฅผ ์Šคํƒ€์ผ๋งํ•  ๋•Œ๋Š” Css ํŒŒ์ผ์„ importํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ด์šฉํ–ˆ์—ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ํ˜„์žฌ ๋งŽ์€ ๋ถ€๋ถ„์˜ ์›น ์„œ๋น„์Šค์— ์กด์žฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๊ณ  ๋งค์šฐ ๋ฉ‹์ง€๊ณ  ์ž˜ ์ •๋ฆฌ๋œ ๋ฐฉ๋ฒ•์ด๋‹ค. ํ•˜์ง€๋งŒ ์ ์–ด๋„ React์—์„œ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ์Šคํƒ€์ผ๋ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋‹ค๋ฅธ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ๋”์šฑ ์ถ”์ฒœ๋œ๋‹ค. Styling In React ๋ฆฌ์•กํŠธ์—์„œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์Šคํƒ€์ผ๋ง ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ 3๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. Sass Css Module styled-components ๊ทธ ์ค‘์— ์šฐ๋ฆฌ๋Š” React ๊ณต์‹ ํ™ˆํŽ˜์ด์ง€์—์„œ ๊ถŒ์žฅํ•˜๋Š” Styled-Component์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค. ๋˜ํ•œ ๊ฐ€์žฅ ์ธ๊ธฐ์žˆ๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ styled-component์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ธฐ ์ „์— ๊ฐ„๋‹จํ•˜๊ฒŒ 3๊ฐ€์ง€์˜ ์ฐจ์ด์— ๋Œ€ํ•ด ํ‘œ๋กœ ์ •๋ฆฌํ•ด๋ณด์ž... 2020. 10. 6.
[CSS] CSS ์ž‘์—…์‹œ์— ๊ผญ ๊ฑฐ์ณ์•ผํ•˜๋Š” ํ•„์ˆ˜ ๊ณผ์ • :: CSS Reset, HTML ์š”์†Œ ์ดˆ๊ธฐํ™”, ๋ฆฌ์…‹ css ์˜ค๋Š˜์€ ์›น ๊ฐœ๋ฐœ์—์„œ CSS ํŒŒํŠธ๋ฅผ ์ž‘์—…ํ•  ๋•Œ ๊ฑฐ์ณ์•ผํ•˜๋Š” ํ•„์ˆ˜ ๊ณผ์ •์ธ *Reset Css *์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค ํ•œ๋‹ค. CSS Reset css reset์€ HTML Element์˜ Default ๊ฐ’๋“ค์„ ์—†์• ์ฃผ๋Š” ์ž‘์—…์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ margin, font, padding, line, size๋“ฑ๋“ฑ๊ณผ ๊ฐ™์€ ์†์„ฑ์˜ ๊ฐ’๋“ค์„ 0 ๋˜๋Š” none์œผ๋กœ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค. ์œ„์—์„œ ๋ณด์ด๋‹ค ์‹ถ์ด Firefox3์™€ IE7์ด ๋ณด์—ฌ์ง€๋Š” ๋ฐฉ์‹์ด ๋‹ฌ๋ผ ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„ํ•œ ๋Œ€๋กœ ์›น์ด ๋ณด์—ฌ์ง€์ง€ ์•Š์„ ๋•Œ๊ฐ€ ์žˆ๋‹ค. ์ด ๊ฒฝ์šฐ ์œ„์—์„œ ๋งํ•œ ๋“ฏ์ด ๋ชจ๋“  Element์˜ ์†์„ฑ ๊ฐ’๋“ค์„ ์—†์• ์•ผ ํ•œ๋‹ค. ์™œ? ์›น ํ‘œ์ค€์„ ์ง€ํ‚ค๋ฉฐ ์ž‘์—…ํ•ด์•ผ ํ•˜๋Š” ํ˜„๋Œ€ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์—์„œ IE๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์—ฌ๋Ÿฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜๋„ํ•œ ๋Œ€๋กœ ๋ณด์—ฌ์ ธ์•ผ ํ•œ๋‹ค๋Š” ์š”๊ตฌ์‚ฌํ•ญ์€ ์„ ํƒ ์‚ฌํ•ญ์ด ์•„๋‹Œ ํ•„.. 2020. 10. 6.
[CSS] Css Box-Model๊ณผ box-sizing์˜ border-box ์†์„ฑ ์ง€๋‚œ ์‹œ๊ฐ„์— ์šฐ๋ฆฌ๋Š” box-model์˜ ํฌ๊ธฐ ์†์„ฑ์„ ๊ตฌํ•˜๋Š” ์ž‘์—…์„ ํ–ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ง€๋‚œ ์‹œ๊ฐ„์—๋„ ๋ง ํ–ˆ๋“ฏ์ด ๋ฐ•์Šค ๋ชจ๋ธ๋ง์„ ์ ์šฉํ•œ ํ›„ ๋ฐ˜์‘ํ˜• ์›น์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํฌ๊ธฐ์˜ ๋‹จ์œ„๋ฅผ px๊ฐ€ ์•„๋‹Œ % ๋‹จ์œ„๋กœ ์ ์šฉํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ๊ทธ๋Ÿผ ์•„๋ž˜์˜ Element์˜ ์†์„ฑ ๊ฐ’ ๋‹จ์œ„๋Š” px๊ฐ€ ์•„๋‹Œ %๊ฐ€ ๋˜์–ด์•ผ ํ•œ๋‹ค. ๊ทธ๋Ÿผ ์ •๋ง ์ •๋ง ์ •๋ง ๋ณต์žกํ•ด์ง„๋‹ค. ํž˜๋“ค๊ฒŒ ์šฐ๋ฆฌ๋Š” border, margin, padding ๊ฐ’์„ ๊ตฌํ•ด์„œ ( ๋ฌผ๋ก  ๊ทธ๋ ‡๊ฒŒ ํž˜๋“ค์ง„ ์•Š์ง€๋งŒ ) width์™€ height์˜ ๊ณ„์‚ฐ์‹์— ๋Œ€์ž…ํ•˜์—ฌ ๊ตฌํ–ˆ์ง€๋งŒ ์ด ๊ณ„์‚ฐ์‹์ด %๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ๋‹จ์ˆœ + ๊ณ„์‚ฐ์œผ๋กœ ํž˜๋“ค๋‹ค๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์ด์žˆ๋‹ค. ๋ฐ”๋กœ Box-sizing์ด๋‹ค. box-sizing ์œ„์˜ ์ ˆ๋Œ€ ๋‹จ์œ„์—์„œ ์ƒ๋Œ€ ๋‹จ์œ„๋กœ ๋ณ€๊ฒฝํ•˜๋Š” ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๊ธฐ .. 2020. 10. 5.
[CSS] Css Box-Modeling ์‚ฌ์ด์ฆˆ ๊ณ„์‚ฐ ์˜ค๋Š˜์€ Box-model์˜ ์‚ฌ์ด์ฆˆ ๊ณ„์‚ฐ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค. Box-model์˜ ๊ธฐ๋ณธ์ ์ธ ๊ฐœ๋…์— ๋Œ€ํ•ด์„œ ๋ชจ๋ฅด๋Š” ์‚ฌ๋žŒ์€ ํ•ด๋‹น ๋งํฌ๋กœ ๊ฐ€์„œ ํ•œ ๋ฒˆ ๊ฐ€๋ณ๊ฒŒ ์ฝ๊ณ  ์˜ค๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•œ๋‹ค. Box-Model Box ๋ชจ๋ธ์„ ์‚ฌ์šฉํ•  ๋•Œ ์šฐ๋ฆฌ๋Š” ๊ฐ Element์— border, padding, margin์„ ์ด์šฉํ•˜์—ฌ ํฌ๊ธฐ๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์˜ค๋Š˜์€ ํ•ด๋‹น Element์˜ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณผ ๊ฒƒ์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์•„๋ž˜์™€ ๊ฐ™์€ Element๊ฐ€ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. div { width: 50px; height: 50px; padding: 30px; border: 1px solid #ff margin: 30px; } ๊ณ„์‚ฐํ•˜๊ธฐ ๊ณ„์‚ฐ๋Š” height์™€ width๊ฐ€ ๋”ฐ๋กœ ๊ณ„์‚ฐ ๋˜์–ด์•ผ ํ•œ๋‹ค. width height ๊ทธ๋Ÿผ .. 2020. 10. 5.