๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Frontend Dev/๐Ÿฅ ์ฝ”๋“œ์Šคํ…Œ์ด์ธ  FE ๋ถ€ํŠธ์บ ํ”„

Section3 Unit3 [React] Custom Component

๋ฐ˜์‘ํ˜•

์ถœ์ฒ˜: https://www.linkedin.com/pulse/how-components-taking-over-world-varun-vachhar


Section3 Unit3 [React] Custom Component

 

๐Ÿ“Œ Chapter1. Component Driven Development

• Component Driven Development(CDD, ์ปดํฌ๋„ŒํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ)๋Š” ์ปดํฌ๋„ŒํŠธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ ๋งˆ์ง€๋ง‰ ํ™”๋ฉด์— ์ด๋ฅด๊ธฐ๊นŒ์ง€ ์ƒํ–ฅ์ (bottom-up)์œผ๋กœ UI๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •์œผ๋กœ, UI๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ ์ง๋ฉดํ•˜๊ฒŒ ๋˜๋Š” ๊ทœ๋ชจ์˜ ๋ณต์žก์„ฑ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ค€๋‹ค. 

 

6์›” ์›ํ‹ฐ๋“œ ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ์—์„œ ๋“ค์—ˆ๋˜ ์ƒํ–ฅ์‹ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ๊ณผ ํ•˜ํ–ฅ์‹ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ.

์ด๋ฒˆ๋‹ฌ ๊ฐ•์˜๊ฐ€ ์šฐ์—ฐํžˆ๋„ ๋ถ€ํŠธ์บ ํ”„ ์ˆ˜์—… ๋‚ด์šฉ๊ณผ ๋งž์•„์„œ ์ปดํฌ๋„ŒํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ๊ณผ Storybook์— ๋Œ€ํ•œ ๊ฐ•์˜์˜€๋‹ค.

ํ˜„์—…์—์„œ ์ผํ•˜๋Š” ๋น„๊ต์  ์—ฐ์ฐจ๊ฐ€ ๋‚ฎ์€(?) ๊ฐœ๋ฐœ์ž๋“ค์˜ ๋ˆˆ๋†’์ด์— ๋งž์ถ˜ ๋“ฏํ•ด์„œ ์•„์ง์€ ์–ด๋ ค์šด ๋‚ด์šฉ์ด ๋งŽ์ง€๋งŒ, ๋ญ”๊ฐ€ ๋“ฃ๋Š” ๊ฒƒ ๋งŒ์œผ๋กœ๋„ ๋„์›€์ด ๋งŽ์ด ๋˜์–ด์„œ ๋งค์›” ์žฌ๋ฐŒ๊ฒŒ ๋“ฃ๊ณ  ์žˆ๋Š” ์ค‘ :)

(7์›”์€ Next.js๋ผ ๊ฐ€๋ฒผ์šด ๋งˆ์Œ์œผ๋กœ ๋“ค์–ด๋ณผ ์ƒ๊ฐ์ด๋‹ท..!!)

 

์—ฌํŠผ ์›ํ‹ฐ๋“œ์—์„œ ๋“ค์—ˆ๋˜ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด๋ณด์ž๋ฉด,

 


<์ƒํ–ฅ์‹ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ๊ณผ ํ•˜ํ–ฅ์‹ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ>

์ƒํ–ฅ์‹ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ (Bottom๐Ÿ‘†๐ŸปUp)

( ๐Ÿ’ฌ ์ฃผ๋กœ ์ƒํ–ฅ์‹ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ์„ ๋งŽ์ด ํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.)

• ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์˜ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๋จผ์ € ๊ฐœ๋ฐœ

• ์ž‘์€ ํ•˜์œ„ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ์กฐํ•ฉํ•˜์—ฌ ์ „์ฒด์ ์ธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์™„์„ฑ

• ์ผ๋ฐ˜ ์‚ฌ์šฉ์ž๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ฐœ๋ฐœ์ž๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•ด์•ผ ํ•œ๋‹ค.

• ์ˆ™๋ ฅ๋„๊ฐ€ ๋ถ€์กฑํ•œ๋‹ค๋ฉด YAGNI ์— ๋น ์ง€๊ธฐ ์‰ฝ๋‹ค.

   → You Aren't Gonna Need It : ์ •๋ง ํ•„์š”ํ•  ๋•Œ๊นŒ์ง€ ๊ทธ ๊ธฐ๋Šฅ์„ ๋งŒ๋“ค์ง€ ๋ง๋ผ.

 

• Bottom Up ์˜ˆ์‹œ

   - ์ž‘๊ณ  ํ•˜์ฐฎ์„ ์ •๋„๋กœ ๊ท€์—ฌ์šด ์ปดํฌ๋„ŒํŠธ โžก๏ธ Next.js Page ๋กœ

   - Atomic ๋””์ž์ธ ํŒจํ„ด์„ ์˜ˆ๋กœ ๋“ค์ž๋ฉด, Atom(์›์ž) โžก๏ธ Molecule(๋ถ„์ž) โžก๏ธ Organism(์œ ๊ธฐ์ฒด) โžก๏ธ Template(ํ…œํ”Œ๋ฆฟ) โžก๏ธ Page(ํŽ˜์ด์ง€)

 

๋ง๋ถ™์—ฌ ์Šคํ† ๋ฆฌ๋ถ๊ณผ ํ•จ๊ป˜ ์ƒํ–ฅ์‹ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ์„ ํ•œ๋‹ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์€ ๊ณผ์ •์„ ์ฐธ๊ณ ํ•˜๋ฉด ๋  ๊ฒƒ ๊ฐ™๋‹ค ๐Ÿ‘€

  1. ํ•˜๋‚˜์˜ ์„ธํŠธ ๊ตฌ์„ฑ โžก๏ธ ์‚ฌ์šฉ๋  ์ปดํฌ๋„ŒํŠธ + CSS ์Šคํƒ€์ผ๋ง + ์‚ฌ์šฉ๋  ์Šคํ† ๋ฆฌ๋ถ

  2. ์‚ฌ์šฉ๋  ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‚ด๋ณด๋‚ด๊ณ (export), ์Šคํ† ๋ฆฌ์—์„œ ์‚ฌ์šฉ๋  ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค(import)

      → ์ปดํฌ๋„ŒํŠธ(Component.jsx) ๐Ÿงก ์Šคํ† ๋ฆฌ(Component.stories.js)

  3. ์‚ฌ์šฉ๋  ์ปดํฌ๋„ŒํŠธ๋“ค์€ Storybook์ด ๋ฌด์—‡์ธ์ง€ ๋ชจ๋ฅด๊ฒŒ ๋งŒ๋“ค์–ด ์ฃผ๋Š”๊ฒƒ์ด ์ข‹๋‹ค.

  4. ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋‚ด ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉ๋ ๊นŒ?๋ฅผ ์ƒ์ƒํ•˜๋ฉฐ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋œ๋‹ค.

 

ํ•˜ํ–ฅ์‹ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ(Top๐Ÿ‘‡๐ŸปDown)

 ํ•˜ํ–ฅ์‹ ์ปดํฌ๋„ŒํŠธ ๊ฐœ๋ฐœ์€ ์ „์ฒด ์‹œ์Šคํ…œ์˜ ํฐ ๊ตฌ์„ฑ ์š”์†Œ๋“ค์„ ๋จผ์ € ๊ฐœ๋ฐœ

 ์ดํ›„ ์ค‘๋ณต๋˜๋Š” ์ž‘์€ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌํ•˜๊ฑฐ๋‚˜ ๊ณตํ†ต ํ˜น์€ ๊ต์ฐจ๋˜๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌ

 ์ „์ฒด ์‹œ์Šคํ…œ์˜ ๋””์ž์ธ๊ณผ ๊ตฌ์กฐ๋ฅผ ๋จผ์ € ๊ตฌ์„ฑํ•˜๊ณ , ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์„ธ๋ถ€์ ์ธ ์š”์†Œ๋“ค์„ ๊ฐœ๋ฐœ

• ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋งŒ๋“ค๋•Œ๋Š” npm dev ์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๋Š” ๋™์ผํ•œ ํ™˜๊ฒฝ์œผ๋กœ ๊ฐœ๋ฐœํ•œ๋‹ค.

  → ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ ์ •๋ง ์ถœ์‹œ๋œ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•ด ๊ฐœ๋ฐœ์„ ํ•˜๋ฉฐ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถ„๋ฆฌ

๋ฅด๋ธ”๋ž‘์˜ ๋ฒ•์น™ (Leblance’s Law)

   → Later equals never. ๋‚˜์ค‘์€ ๊ฒฐ์ฝ” ์˜ค์ง€ ์•Š๋Š”๋‹ค. ํ•œ๋ฒˆ ์ž‘์„ฑํ•œ ์“ฐ๋ ˆ๊ธฐ ์ฝ”๋“œ๋ฅผ ๋‚˜์ค‘์— ์ˆ˜์ •ํ•˜๋Š” ์ผ์€ ๊ฒฐ์ฝ” ์—†๋‹ค.

 

•  Top Down ์˜ˆ์‹œ

   - Next.js Page โžก๏ธ ์ž‘๊ณ  ํ•˜์ฐฎ์„ ์ •๋„๋กœ ๊ท€์—ฌ์šด ์ปดํฌ๋„ŒํŠธ๋กœ

   - Atomic ๋””์ž์ธ ํŒจํ„ด์„ ์˜ˆ๋กœ ๋“ค์ž๋ฉด, Page(ํŽ˜์ด์ง€) โžก๏ธ Template(ํ…œํ”Œ๋ฆฟ) โžก๏ธ Organism(์œ ๊ธฐ์ฒด) โžก๏ธ Molecule(๋ถ„์ž) โžก๏ธ Atom(์›์ž)

 


 

๐Ÿ“Œ Chapter2. CDD ๊ฐœ๋ฐœ ๋„๊ตฌ

 

 styled components๋Š” CSS in JS๋ฅผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•˜๋Š” ์Šคํƒ€์ผ ์ž‘์„ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ, ํŠน์ • ์Šคํƒ€์ผ์ด ์ฒจ๋ถ€๋œ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. ์ด ์Šคํƒ€์ผ์€ ์ฒจ๋ถ€๋˜๋Š” ์ปดํฌ๋„ŒํŠธ์—๋งŒ ์˜ํ–ฅ์„ ๋ฏธ์น˜๊ณ  ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์—๋Š” ์ „ํ˜€ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์žฅ์ ์ด ์žˆ๋‹ค. 

Storybook์€ UI ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋„๊ตฌ์ด๋‹ค. ๊ฐ๊ฐ์˜ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ๋”ฐ๋กœ ๋ณผ ์ˆ˜ ์žˆ๊ฒŒ ๊ตฌ์„ฑํ•ด ์ฃผ์–ด ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ์—์„œ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ณต์žกํ•œ ๊ฐœ๋ฐœ ์Šคํƒ์„ ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜, ํŠน์ • ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๊ฐ•์ œ ์ด๋™ํ•˜๊ฑฐ๋‚˜, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํƒ์ƒ‰ํ•  ํ•„์š” ์—†์ด ์ „์ฒด UI๋ฅผ ํ•œ๋ˆˆ์— ๋ณด๊ณ  ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋‹ค. Storybook์€ ์žฌ์‚ฌ์šฉ์„ฑ์„ ํ™•๋Œ€ํ•˜๊ธฐ ์œ„ํ•ด ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฌธ์„œํ™”ํ•˜๊ณ , ์ž๋™์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์‹œ๊ฐํ™”ํ•˜์—ฌ ์‹œ๋ฎฌ๋ ˆ์ด์…˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ํ…Œ์ŠคํŠธ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฒ„๊ทธ๋ฅผ ์‚ฌ์ „์— ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. ๋˜ํ•œ ํ…Œ์ŠคํŠธ ๋ฐ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ํ–ฅ์ƒํ•˜๋Š” ์žฅ์ ์ด ์žˆ์œผ๋ฉฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋˜ํ•œ ์˜์กด์„ฑ์„ ๊ฑฑ์ •ํ•˜์ง€ ์•Š๊ณ  ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๐Ÿ“Œ Chapter3. useRef

• useRef๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ผ๋ถ€ ์ •๋ณด๋ฅผ ๊ธฐ์–ตํ•˜๊ณ  ์‹ถ์ง€๋งŒ, ํ•ด๋‹น ์ •๋ณด๊ฐ€ ๋ Œ๋”๋ง์„ ์œ ๋ฐœํ•˜์ง€ ์•Š๋„๋ก ํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋งŽ์€ ๊ฒฝ์šฐ DOM ์š”์†Œ๋ฅผ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•œ๋‹ค.

 React๋Š” ๋ Œ๋”๋ง ๊ฒฐ๊ณผ๋ฌผ์— ๋งž์ถฐ DOM ๋ณ€๊ฒฝ์„ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ปดํฌ๋„ŒํŠธ์—์„œ ์ž์ฃผ DOM์„ ์กฐ์ž‘ํ•ด์•ผ ํ•  ํ•„์š”๋Š” ์—†์ง€๋งŒ ๊ฐ€๋” ํŠน์ • ๋…ธ๋“œ์— ํฌ์ปค์Šค๋ฅผ ์˜ฎ๊ธฐ๊ฑฐ๋‚˜, ์Šคํฌ๋กค ์œ„์น˜๋ฅผ ์˜ฎ๊ธฐ๊ฑฐ๋‚˜, ์œ„์น˜์™€ ํฌ๊ธฐ๋ฅผ ์ธก์ •ํ•˜๋Š” ๋“ฑ DOM ์š”์†Œ์— ์ ‘๊ทผํ•ด์•ผ ํ•  ๋•Œ๊ฐ€ ์žˆ๋‹ค. React๋Š” ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‚ด์žฅ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— DOM ๋…ธ๋“œ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•ด ref๊ฐ€ ํ•„์š”ํ•˜๋‹ค.

 useRef๋Š” ๋”ฐ๋กœ ์ •๋ฆฌํ•ด์„œ ๊ธ€์„ ์“ฐ๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™๋‹ค..๐Ÿ˜Š

 

 


๐ŸŒ™  ์˜ค๋Š˜์˜ ํšŒ๊ณ 

 CDD์™€ styled component, ์Šคํ† ๋ฆฌ๋ถ์— ๋Œ€ํ•ด์„œ ํ•™์Šตํ–ˆ๋‹ค. ์˜ฌํ•ด ์ดˆ๋ถ€ํ„ฐ ๋งค๋‹ฌ ๋“ค์–ด์˜จ ์›ํ‹ฐ๋“œ ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ์˜ 6์›” ์ฃผ์ œ๊ฐ€ ์šฐ์—ฐํžˆ๋„ <์Šคํ† ๋ฆฌ๋ถ๊ณผ ํ•จ๊ป˜ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ์ฃผ๋„ ๊ฐœ๋ฐœ> ์ด์—ˆ๋‹ค. ์ด๋ฒˆ ํ† ์š”์ผ๊นŒ์ง€๋กœ 2์ฃผ ๋™์•ˆ์˜ ์ด 4๋ฒˆ์˜ ๊ฐ•์˜๊ฐ€ ๋งˆ๋ฌด๋ฆฌ๋˜์—ˆ๋Š”๋ฐ, ์Šคํ† ๋ฆฌ๋ถ์„ ์ฒ˜์Œ ์ ‘ํ•˜๋Š”๋ฐ๋‹ค๊ฐ€ vite๋กœ ์ž‘์—…์„ ํ•˜๊ณ , ๋‹น์—ฐํžˆ ๋ชจ๋ฅด๋Š” ๋ถ€๋ถ„์ด ๋งŽ์ด ๋‚˜์™€ ์‰ฝ์ง€ ์•Š์•˜์ง€๋งŒ ์ „์ฒด์ ์ธ ํ๋ฆ„์„ ๋ณผ ์ˆ˜ ์žˆ์–ด์„œ ๊ณต๋ถ€๊ฐ€ ๋˜์—ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•œ๋‹ค. ์—ฌํŠผ, ์›ํ‹ฐ๋“œ ํ”„๋ฆฌ์˜จ๋ณด๋”ฉ์—์„œ ์Šคํ† ๋ฆฌ๋ถ์„ ์ ‘ํ•ด์„œ ๊ทธ๋Ÿฐ์ง€ ์ด๋ฒˆ ์œ ๋‹›์—์„œ ์Šคํ† ๋ฆฌ๋ถ์ด ๋‚˜์˜ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ ๋Š” ์‹ ๊ธฐํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ์ด๋ฆ„์ด๋ผ๋„ ํ•œ ๋ฒˆ ๋“ค์–ด๋ณด๊ณ , ์„ค์น˜๋ผ๋„ ํ•ด๋ด์„œ ๊ทธ๋Ÿฐ์ง€ ์ข€ ๋” ํŽธ์•ˆํ•œ ๋Š๋‚Œ์€ ๋“ค์—ˆ๋‹ค.

 ๋ฆฌ์•กํŠธ๊ฐ€ ์ ์  ๋” ํฅ๋ฏธ๋กœ์›Œ์ง€๊ณ  ์žˆ๋‹ค. ๋” ๋‹ค์–‘ํ•œ ํˆด์„ ํ™œ์šฉํ•˜๊ณ , ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ํšจ์œจ์ ์œผ๋กœ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋” ๋งŽ์ด ๊ณต๋ถ€ํ•ด์•ผ๊ฒ ๋‹ค.

 

๐Ÿ“… 6.18 SUN

 ์Šคํ† ๋ฆฌ๋ถ์ด ํฅ๋ฏธ๋กœ์›Œ์„œ ์ผ์š”์ผ์— ์‚ฌ์šฉ๋ฒ•์— ์ข€ ๋” ์ต์ˆ™ํ•ด์ง€๊ณ  ์‹ถ์–ด ๊ณต๋ถ€๋ฅผ ํ–ˆ๋Š”๋ฐ, ์•„์ง๋„ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์Šคํ† ๋ฆฌ๋ถ๊ณผ styled component๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณผ์ œ๊ฐ€ ๋‚ด์ผ๋ถ€ํ„ฐ ์žˆ๋Š”๋ฐ, ๋ฏธ๋ฆฌ ๊ตฌํ˜„ํ•ด๋ณด๋‹ˆ styled component์˜ ํ™œ์šฉ๋„ ๋‚ด๊ฐ€ ์ž˜ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋Š” ๋“ฏ ํ–ˆ๊ณ (Pure CSS ์ฒ˜๋Ÿผ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋œ๋‹ค..!!!), ์Šคํ† ๋ฆฌ๋ถ์€ ์•„์˜ˆ ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ์ง€ ์ ‘๊ทผ์กฐ์ฐจ ์‰ฝ์ง€ ์•Š์•˜๋‹ค ๐Ÿฅฒ ์ด๋ฒˆ ๊ณผ์ œ๋ฅผ ํ•˜๋ฉฐ ์ต์ˆ™ํ•ด์ ธ ๋ด์•ผ์ง€…

๋ฐ˜์‘ํ˜•