4.styled-components
์คํ์ผ๋ ์ปดํฌ๋ํธ๋ CSS-in-JS(์๋ฐ์คํฌ๋ฆฝํธ ๋ด CSS) ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ React ์ปดํฌ๋ํธ์ ์คํ์ผ์ ์ง์ ํ๋ ๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์คํ์ผ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์์ ์ง์ ์์ฑํ ์ ์์ผ๋ฉฐ, ์คํ์ผ๊ณผ ์ปดํฌ๋ํธ ๊ฐ์ ์ํํ ํตํฉ์ ์ ๊ณตํ๋ค.
์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์คํ์ผ๋ง(Component-Based Styling): ์คํ์ผ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ฉด ํน์ ์ปดํฌ๋ํธ์ ์ฐ๊ฒฐ๋ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋ ๋ฆฝ์ ์ธ ์คํ์ผ์ ๋ง๋ค ์ ์๋ค. ์คํ์ผ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด ๋๋ ํ๊ทธ๊ฐ ์ง์ ๋ ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด์ ์ฌ์ฉํ์ฌ ์ ์๋๋ฏ๋ก ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋ ๋ด์์ ์ง์ CSS๋ฅผ ์์ฑํ ์ ์๋ค.
CSS-in-JS: ์คํ์ผ์ด ์ง์ ๋ ์ปดํฌ๋ํธ๋ ์ปดํฌ๋ํธ์ ๋ฒ์ ๋ด์์ ์คํ์ผ์ ์บก์ํํ์ฌ ์ ์ญ ์คํ์ผ ์ค์ผ์ ๋ฐฉ์งํ๋ CSS-in-JS ํจ๋ฌ๋ค์์ ์์ฉํ๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์คํ์ผ ์ถฉ๋์ ์ค์ด๊ณ ์บก์ํ๋ฅผ ๊ฐ์ ํ์ฌ ๋ณด๋ค ์ ์ง ๊ด๋ฆฌ๊ฐ ์ฉ์ดํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ๋์์ด ๋๋ค.
๋์ ์คํ์ผ๋ง(Dynamic Styling): ์คํ์ผ์ด ์ง์ ๋ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ฉด ์คํ์ผ ์ ์ ๋ด์์ ์๋ฐ์คํฌ๋ฆฝํธ ํํ์์ ๋ณด๊ฐํ์ฌ ๋์ ์คํ์ผ์ ๋ง๋ค ์ ์๋ค. ์ปดํฌ๋ํธ ํ๋กญ์ด๋ ๊ธฐํ JavaScript ๋ณ์์ ์ก์ธ์คํ์ฌ ๋์ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์กฐ๊ฑด๋ถ ์คํ์ผ๋ง์ ๊ตฌํํ ์ ์๋ค.
ํ ๋ง ์ง์(Theming Support): ์คํ์ผ ์ปดํฌ๋ํธ๋ ๊ธฐ๋ณธ ํ ๋ง ์ง์์ ์ ๊ณตํ๋ฏ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ผ๊ด๋๊ณ ์ฌ์ฉ์ ์ ์ ๊ฐ๋ฅํ ํ ๋ง๋ฅผ ์ฝ๊ฒ ๋ง๋ค ์ ์๋ค. ํ ๋ง ๋ณ์๋ฅผ ์ ์ํ๊ณ , ์คํ์ผ๋ ์ปดํฌ๋ํธ ๋ด์์ ์ก์ธ์คํ๊ณ , ๋ฐํ์์ ํ ๋ง๋ฅผ ๋์ ์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์๋ค.
์คํ์ผ ๊ตฌ์ฑ(Style Composition): ์คํ์ผ ์ปดํฌ๋ํธ๋ ์คํ์ผ ๊ตฌ์ฑ์ ์ง์ํ๋ฏ๋ก ๊ธฐ์กด ์คํ์ผ ์ปดํฌ๋ํธ๋ฅผ ํ์ฅํ์ฌ ์๋ก์ด ์คํ์ผ์ ๋ง๋ค ์ ์๋ค. ์ด ๊ธฐ๋ฅ์ ์คํ์ผ์ ํจ๊ป ๊ตฌ์ฑํ์ฌ ์ฝ๋ ์ฌ์ฌ์ฉ ๋ฐ ๋ชจ๋ํ๋ฅผ ์ฅ๋ คํ๋ค.
์๋ ๊ณต๊ธ์ ์ฒด ์ ๋์ฌ ์ถ๊ฐ(Automatic Vendor Prefixing): ์คํ์ผ๋ ์ปดํฌ๋ํธ๋ CSS ์์ฑ์ ๊ณต๊ธ์ ์ฒด ์ ๋์ฌ๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํ์ฌ ์๋์ผ๋ก ์ ๋์ฌ๋ฅผ ์ถ๊ฐํ ํ์ ์์ด ๋ธ๋ผ์ฐ์ ๊ฐ ํธํ์ฑ์ ๋ณด์ฅํ๋ค.
์คํ์ผ ๋๋ฒ๊น (Style Debugging): ์คํ์ผ๋ ์ปดํฌ๋ํธ๋ ์ฌ๋์ด ์ฝ์ ์ ์๋ ํด๋์ค ์ด๋ฆ๊ณผ ์์ค ๋งต์ ์์ฑํ์ฌ ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ์์ ์คํ์ผ์ ๋ ์ฝ๊ฒ ๋๋ฒ๊น ํ๊ณ ๊ฒ์ฌํ ์ ์๋๋ก ํ๋ค. ์ด๋ ์คํ์ผ ๊ด๋ จ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋๋ค.
์ฑ๋ฅ ์ต์ ํ(Performance Optimizations): ์คํ์ผ์ด ์ง์ ๋ ์ปดํฌ๋ํธ๋ ๊ฐ ์ปดํฌ๋ํธ์ ํ์ํ ์คํ์ผ๋ง ๋ ๋๋งํ์ฌ ์ฑ๋ฅ์ ์ต์ ํํ๋ค. ์คํ์ผ์ด ์ง์ ๋ ๊ฐ ์ปดํฌ๋ํธ์ ๋ํด ๊ณ ์ ํ ํด๋์ค ์ด๋ฆ์ ์์ฑํ๊ณ ์์ฑ๋ ์คํ์ผ์ ์บ์ํ์ฌ ๋ ๋๋ง ์ฑ๋ฅ์ ๋ฏธ์น๋ ์ํฅ์ ์ต์ํํ๋ค.
์๋ฒ ์ธก ๋ ๋๋ง(Server-Side Rendering): ์คํ์ผ ์ปดํฌ๋ํธ๋ ์๋ฒ ์ธก ๋ ๋๋ง(SSR)์ ์๋ฒฝํ๊ฒ ์ง์ํ๋ค. ์๋ฒ์์ CSS๋ฅผ ์์ฑํ๊ณ ๋ ๋๋ง๋ ์ปดํฌ๋ํธ์ ์คํ์ผ์ ์ฒจ๋ถํ์ฌ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์ผ๊ด๋ ์คํ์ผ์ ๋ณด์ฅํ ์ ์๋ค.
CSS ๊ธฐ๋ฅ๊ณผ์ ํตํฉ(Integration with CSS Features): ์คํ์ผ ์ปดํฌ๋ํธ๋ ๋ฏธ๋์ด ์ฟผ๋ฆฌ, ํคํ๋ ์ ์ ๋๋ฉ์ด์ , ์ ์ญ ์คํ์ผ๊ณผ ๊ฐ์ CSS ๊ธฐ๋ฅ์ ์ง์ํ๋ค. ์คํ์ผ ์ปดํฌ๋ํธ ์ ์ ๋ด์์ ๋ฏธ๋์ด ์ฟผ๋ฆฌ์ ํคํ๋ ์์ ์ง์ ์์ฑํ ์ ์์ผ๋ฏ๋ก ์ฌ์ฉ์ด ๊ฐํธํด์ง๋๋ค.
์ ๋ฐ์ ์ผ๋ก ์คํ์ผ ์ปดํฌ๋ํธ๋ CSS-in-JS ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํด ์ง๊ด์ ์ด๊ณ ์ ์ฐํ๊ฒ React ์ปดํฌ๋ํธ์ ์คํ์ผ์ ์ง์ ํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ค. ์ด ์ปดํฌ๋ํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ CSS์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ๊ฒฐํฉํ์ฌ React ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํ์ผ์ ์ง์ ํ ๋ ํฅ์๋ ๋ชจ๋์ฑ, ์ฌ์ฌ์ฉ์ฑ, ์ ์ง๋ณด์์ฑ์ ์ ๊ณตํ๋ค.
Last updated