CSS-in-JS

CSS in JS ๋ž€

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ†ตํ•ด ์ปดํฌ๋„ŒํŠธ์˜ ์Šคํƒ€์ผ์„ ์ง€์ •ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ปดํฌ๋„ŒํŠธ ๋ ˆ๋ฒจ๋กœ CSS๋ฅผ ์ถ”์ƒํ™”ํ•œ๋‹ค.

๋งˆํฌ์—…์— ํด๋ž˜์Šค๋ฅผ ์ง์ ‘ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†๊ณ , ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜ํ•ด ๋™์ ์œผ๋กœ ์ƒ์„ฑ๋œ ํด๋ž˜์Šค๊ฐ€ ๊ธฐ์ž…๋œ๋‹ค.

์Šคํƒ€์ผ๊ณผ ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋ฐ€์ ‘ํ•˜๊ฒŒ ๊ฒฐํ•ฉ๋˜์–ด์žˆ์–ด ๋‹ค๋ฅธ ์ปดํฌ๋„ŒํŠธ์— ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋Š”๋‹ค.

์ธ๋ผ์ธ ์Šคํƒ€์ผ๊ณผ ๋‹ค๋ฅด๋‹ค.

  • Inline Style โ†’ ๋” ๋…ธ๋“œ์— style ์†์„ฑ์œผ๋กœ ์ถ”๊ฐ€๋˜๋ฉฐ, ๊ฐ€์ƒ ํด๋ž˜์Šค ์„ ํƒ์ž๋‚˜ ๊ฐ€์ƒ ์„ ํƒ์ž์™€ ๊ฐ™์€ CSS ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ œ์•ฝ์‚ฌํ•ญ์ด ๋งŽ๋‹ค

  • CSS-in-JS โ†’ ๋” ์ƒ๋‹จ์— <style> ํƒœ๊ทธ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์Šคํƒ€์ผ์„ ์ ์šฉํ•œ๋‹ค.

์žฅ์ 

  • ์ปดํฌ๋„ŒํŠธ ๋ ˆ๋ฒจ๋กœ ์ถ”์ƒํ™”์‹œํ‚ค๊ณ  ๋ชจ๋“ˆํ™”๋˜๋ฏ€๋กœ ์Šคํƒ€์ผ ์ถฉ๋Œ์„ ๋ฐฉ์ง€

  • ํ˜„์žฌ ๋ Œ๋”๋ง ๋˜๊ณ  ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ์˜ ์Šคํƒ€์ผ๋งŒ ์ ์šฉ๋˜์–ด CSS ์„ฑ๋Šฅ๋ฌธ์ œ๊ฐ€ ๊ฐœ์„ ๋จ

  • ๋ฒค๋” ํ”„๋ฆฌํ”ฝ์Šค๊ฐ€ ์ž๋™์œผ๋กœ ์ ์šฉ๋จ

๋‹จ์ 

  • ๋ธŒ๋ผ์šฐ์ €๋Š” HTML์„ ํŒŒ์‹ฑํ•  ๋•Œ CSS ํŒŒ์ผ๊ณผ JS ํŒŒ์ผ์„ ๋ณ‘๋ ฌ์ ์œผ๋กœ ๋กœ๋“œํ•œ๋‹ค.

  • JS๋กœ ๋™์ ์œผ๋กœ CSS๋ฅผ ์ƒ์„ฑํ•˜๋ฏ€๋กœ ์ดˆ๊ธฐ ๋ Œ๋”๋ง ์„ฑ๋Šฅ ์ด์Šˆ๊ฐ€ ์žˆ๊ณ , ๋ฒˆ๋“ค๋ง๋œ JS ํŒŒ์ผ ํฌ๊ธฐ์— ์˜ํ–ฅ์„ ๋งŽ์ด ๋ฐ›๋Š”๋‹ค.

  • React 18 Server Component์— ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์—†๋‹ค.

์ปดํŒŒ์ผ ํƒ€์ž„ CSS-in-jS, ๋นŒ๋“œํƒ€์ž„ ๋•Œ CSS-in-JS๋ฅผ ๋ณ„๋„์˜ CSS ํŒŒ์ผ๋กœ ์ƒ์„ฑ ํ•ด์ฃผ์–ด ์œ„ ๋‹จ์ ๋“ค์„ ์ƒ์‡„์‹œ์ผœ์ค€๋‹ค.

Last updated