# [[CSS-in-JS|CSS-in-JS]] ## πŸ“Œ Brief Summary CSS-in-JSλŠ” [[JavaScript|JavaScript]] 파일 내에 직접 CSSλ₯Ό μž‘μ„±ν•˜μ—¬ μŠ€νƒ€μΌκ³Ό μ»΄ν¬λ„ŒνŠΈλ₯Ό 같은 μœ„μΉ˜(co-location)에 λ°°μΉ˜ν•˜λŠ” ν”„λ‘ νŠΈμ—”λ“œ μŠ€νƒ€μΌλ§ μ ‘κ·Ό λ°©μ‹μž…λ‹ˆλ‹€. λŒ€ν‘œμ μΈ 라이브러리둜 styled-components와 Emotion 등이 있으며, ν…œν”Œλ¦Ώ λ¦¬ν„°λŸ΄μ„ ν™œμš©ν•΄ μ»΄ν¬λ„ŒνŠΈμ˜ μƒνƒœλ‚˜ props에 κΈ°λ°˜ν•œ 동적 μŠ€νƒ€μΌλ§μ„ μžμ—°μŠ€λŸ½κ²Œ μ§€μ›ν•©λ‹ˆλ‹€. ν•˜μ§€λ§Œ λŸ°νƒ€μž„μ— CSSλ₯Ό μƒμ„±ν•˜κ³  μ£Όμž…ν•˜λŠ” κ³Όμ •μ—μ„œ λ°œμƒν•˜λŠ” μ„±λŠ₯ μ˜€λ²„ν—€λ“œμ™€ React Server Components(RSC)μ™€μ˜ ν˜Έν™˜μ„± 문제둜 인해 μ΅œκ·Όμ—λŠ” Zero-runtime λ°©μ‹μ΄λ‚˜ μœ ν‹Έλ¦¬ν‹° 퍼슀트 ν”„λ ˆμž„μ›Œν¬([[Tailwind CSS|Tailwind CSS]] λ“±)와 λΉ„κ΅λ˜λ©° μ•„ν‚€ν…μ²˜μ  μž¬ν‰κ°€κ°€ 이루어지고 μžˆμŠ΅λ‹ˆλ‹€. ## πŸ“– Core Content * **μ£Όμš” μž₯점 및 νŠΉμ§•:** CSS-in-JSλŠ” μžλ°”μŠ€ν¬λ¦½νŠΈμ˜ λ³€μˆ˜, μƒνƒœ, props 등을 직접 ν™œμš©ν•΄ 동적인 μŠ€νƒ€μΌλ§μ„ μ†μ‰½κ²Œ κ΅¬ν˜„ν•  수 있게 ν•΄μ€λ‹ˆλ‹€ [1]. μ»΄ν¬λ„ŒνŠΈμ™€ μŠ€νƒ€μΌμ΄ 같은 νŒŒμΌμ— κ³΅μ‘΄ν•˜λ―€λ‘œ μ»΄ν¬λ„ŒνŠΈ μ‚­μ œ μ‹œ μŠ€νƒ€μΌλ„ ν•¨κ»˜ μ œκ±°λ˜μ–΄ μœ μ§€λ³΄μˆ˜κ°€ μš©μ΄ν•˜λ©°, κ³Όκ±° CSS의 μ „μ—­ λ„€μž„μŠ€νŽ˜μ΄μŠ€ 좩돌 λ¬Έμ œλ‚˜ μŠ€νƒ€μΌμ΄ μ—‡λ‚˜κ°€λŠ” 문제λ₯Ό 효과적으둜 ν•΄κ²°ν•©λ‹ˆλ‹€ [1, 2]. λ˜ν•œ 내뢀적인 ν…Œλ§ˆ ν”„λ‘œλ°”μ΄λ”(Theme Provider)λ₯Ό 톡해 라이트/닀크 λͺ¨λ“œ λ“± 닀쀑 ν…Œλ§ˆ 관리가 μˆ˜μ›”ν•˜λ©°, TypeScriptλ₯Ό ν†΅ν•œ νƒ€μž… μ•ˆμ „μ„±λ„ μ œκ³΅ν•©λ‹ˆλ‹€ [1, 2]. * **λŸ°νƒ€μž„ μ„±λŠ₯ 및 λ²ˆλ“€ μ‚¬μ΄μ¦ˆ ν•œκ³„:** κ°€μž₯ 큰 단점은 λΈŒλΌμš°μ € λŸ°νƒ€μž„ μ‹œ μžλ°”μŠ€ν¬λ¦½νŠΈλ₯Ό μ‹€ν–‰ν•˜μ—¬ CSS λ¬Έμžμ—΄μ„ μƒμ„±ν•˜κ³  `