1. Styled Components
Styled Components๋ CSS-in-JS ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค ํ๋๋ก, ์คํ์ผ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ ์์ ์์ฑํ๊ณ , ์ปดํฌ๋ํธ ๋จ์๋ก ์บก์ํํ ์ ์๋ค.
- ์ฅ์ ๐
- ์๋ ์ต์ ํ: ๋ถํ์ํ ํด๋์ค ์์ฑ์ด๋ ์ค๋ณต๋ ์คํ์ผ ์ ๊ฑฐ ๋ฑ ์ต์ ํ๊ฐ ์๋์ผ๋ก ์ด๋ฃจ์ด์ง๋ค.
- ๋์ ์คํ์ผ๋ง: Prop์ ๋ฐ๋ผ ๋์ ์ผ๋ก ์คํ์ผ์ ๋ณ๊ฒฝํ ์ ์๋ค.
- CSS์ ๋ฒ์: CSS๊ฐ ์ปดํฌ๋ํธ ๋จ์๋ก ์บก์ํ๋์ด ์ ์ญ ๋ค์์คํ์ด์ค ์ถฉ๋ ๋ฌธ์ ๊ฐ ์๋ค.
- ๋จ์ ๐
- ๋ฐํ์ ์ฑ๋ฅ ์ ํ: Styled Components๋ ์คํ์ผ์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๋ฐํ์ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ค. ํนํ ๋ง์ ์ปดํฌ๋ํธ๊ฐ ์์ ๊ฒฝ์ฐ ์คํ์ผ์ ๊ณ์ฐํ๊ณ ์ ์ฉํ๋ ์๊ฐ์ด ์ฆ๊ฐํ ์ ์๋ค.
- ํจํค์ง ํฌ๊ธฐ ์ฆ๊ฐ: ์ถ๊ฐ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํฌํจํด์ผ ํ๋ฏ๋ก ๋ฒ๋ค ํฌ๊ธฐ๊ฐ ์ปค์ง ์ ์๋ค.
- SSR(์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง): SSR์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์คํ์ผ์ ๋ ๋๋งํ๊ธฐ ์ํด ์ถ๊ฐ์ ์ธ ์ค์ ์ด ํ์ํ๋ฉฐ ์ด๋ก ์ธํด ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น ์ ์๋ค.
2. CSS Modules
CSS Modules๋ ์ผ๋ฐ์ ์ธ CSS ํ์ผ์ ๋ชจ๋ํํ์ฌ ์ฌ์ฉํ๋ฉฐ, ๊ฐ ํด๋์ค์ ์คํ์ผ์ด ๊ณ ์ ํ ๋ฒ์๋ฅผ ๊ฐ์ง๋๋ก ๋ง๋ค์ด ์ ์ญ ๋ค์์คํ์ด์ค ๋ฌธ์ ๋ฅผ ํด๊ฒฐํฉ๋๋ค.
- ์ฅ์ ๐
- ์ฑ๋ฅ: CSS๊ฐ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ์๋ ์ ์ ์ธ ์คํ์ผ์ํธ๋ก ์ฒ๋ฆฌ๋๊ธฐ ๋๋ฌธ์ ๋ฐํ์ ์ฑ๋ฅ์ ์ํฅ์ ์ฃผ์ง ์์ต๋๋ค. CSS ์์ฒด๋ ๋ธ๋ผ์ฐ์ ์์ ํจ์จ์ ์ผ๋ก ์บ์ฑํ ์ ์๋ค.
- ์ ์ญ ์คํ์ผ ์ถฉ๋ ์์: ํด๋์ค ์ด๋ฆ์ด ๋ก์ปฌ๋ก ์ค์ฝํ๋๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ CSS ํ์ผ๊ณผ์ ์ถฉ๋ ์ํ์ด ์๋ค.
- SSG/SSR: ์ ์ ์ธ CSS ํ์ผ์ ํ์ฉํ๊ธฐ ๋๋ฌธ์ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ด๋ ์ ์ ์ฌ์ดํธ ์์ฑ ์ ์ฑ๋ฅ ์ด์ ์ด ์๋ค.
- ๋จ์ ๐
- ๋์ ์คํ์ผ๋ง์ด ์ด๋ ค์: Styled Components์ ๋ฌ๋ฆฌ, Prop์ ๋ฐ๋ฅธ ๋์ ์คํ์ผ๋ง์ด ์ด๋ ต์ต๋๋ค. ๋์ ์คํ์ผ๋ง์ด ํ์ํ ๊ฒฝ์ฐ, ์ถ๊ฐ์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ํ์ํ๋ค.
- ์ฝ๋ ๋ถํ ๋ณต์ก์ฑ: CSS ํ์ผ์ด ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ๋ถ๋ฆฌ๋์ด ์๊ธฐ ๋๋ฌธ์, ๋ก๋ฉ ์์๋ ์ฝ๋ ์คํ๋ฆฌํ ๋ฑ์์ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํ ์ ์๋ค.
3. Inline CSS
Inline CSS๋ ์คํ์ผ์ HTML ์์์ ์ง์ ์ง์ ํ๋ ๋ฐฉ์์ผ๋ก, React์์๋ style prop์ ํตํด ์ธ๋ผ์ธ ์คํ์ผ์ ์ ์ฉํ ์ ์๋ค.
- ์ฅ์ ๐
- ๊ฐ๋จํจ: ํน์ ์์์ ์คํ์ผ์ ์ง์ ์ ์ฉํ๊ธฐ ๋๋ฌธ์ ๋น ๋ฅด๊ฒ ์คํ์ผ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
- ๋์ ์คํ์ผ๋ง: ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ์ ์ฐํ๊ฒ ๋์ ์คํ์ผ๋ง์ด ๊ฐ๋ฅํฉ๋๋ค.
- CSS ์ฐ์ ์์ ๋ฌธ์ ์์: ๋ค๋ฅธ ์คํ์ผ ์ํธ์์ ์ถฉ๋ ๋ฌธ์ ๋ฅผ ์ ๊ฒฝ ์ฐ์ง ์์๋ ๋ฉ๋๋ค.
- ๋จ์ ๐
- ์ฑ๋ฅ ๋ฌธ์ : ์ธ๋ผ์ธ ์คํ์ผ์ ๋ธ๋ผ์ฐ์ ์์ ๋งค๋ฒ ์ฌ๊ณ์ฐ๋๊ธฐ ๋๋ฌธ์, ํนํ ๋ง์ ์์์ ์ ์ฉ๋ ๊ฒฝ์ฐ ๋ ๋๋ง ์ฑ๋ฅ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
- ์ฌ์ฌ์ฉ์ฑ ๋ถ์กฑ: ๋์ผํ ์คํ์ผ์ ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ ์ฌ์ฌ์ฉ์ด ์ด๋ ต๊ณ , ์ฝ๋ ์ค๋ณต์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
- ๋ฏธ๋์ด ์ฟผ๋ฆฌ, CSS ์์ฌ ํด๋์ค ์ง์ ๋ถ์กฑ: ์ธ๋ผ์ธ ์คํ์ผ์ ๋ฏธ๋์ด ์ฟผ๋ฆฌ์ ๊ฐ์ CSS์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ง์ํ์ง ์์ผ๋ฉฐ, ๋ณต์กํ ์คํ์ผ๋ง์ ๋ถ์ ํฉํฉ๋๋ค.
์ฑ๋ฅ ๋น๊ต ์์ฝ
Styled Components | CSS Modules | Inline CSS | |
---|---|---|---|
์ฅ์ | - Prop์ ๋ฐ๋ฅธ ๋์ ์คํ์ผ๋ง์ด ๊ฐ๋ฅ - ์์ ํ๋ก์ ํธ์ ์ ํฉ |
- ์ ์ CSS ํ์ผ ์ฌ์ฉ์ผ๋ก ์ฑ๋ฅ ํจ์จ์ - ๋ธ๋ผ์ฐ์ ์์ ์คํ์ผ ์บ์ฑ - ์ ์ญ ๋ค์์คํ์ด์ค ๋ฌธ์ ํด๊ฒฐ |
- ๊ฐ๋จํ ์คํ์ผ์ ๋น ๋ฅด๊ฒ ์ ์ฉ - ๋์ ์คํ์ผ๋ง์ ์ ์ฐ |
๋จ์ | - ๋ฐํ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์คํ์ผ ๊ณ์ฐ - ๋ฐํ์ ์ฑ๋ฅ์ ์ํฅ ๊ฐ๋ฅ - ๋ฒ๋ค ํฌ๊ธฐ ์ฆ๊ฐ ์ฐ๋ ค |
- ๋์ ์คํ์ผ๋ง์ด ์ด๋ ค์ - CSS์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๊ฐ ๋ถ๋ฆฌ๋จ์ ๋ฐ๋ฅธ ๋ณต์ก์ฑ ์ฆ๊ฐ |
- ์ฑ๋ฅ ๋นํจ์จ์ (ํนํ ๋ง์ DOM ์์์์) - ์คํ์ผ ์ฌ์ฌ์ฉ์ฑ ๋ถ์กฑ - ๋ฏธ๋์ด ์ฟผ๋ฆฌ ๋ฑ ์ง์ ๋ถ์กฑ |
๐จ๐ปโ๏ธ ๊ฒฐ๋ก
- ์์ ํ๋ก์ ํธ๋ ์ปดํฌ๋ํธ์ ๋์ ์คํ์ผ๋ง์ด ์ค์ํ ๊ฒฝ์ฐ, Styled Components๊ฐ ์ ์ฉํ ์ ์์ง๋ง, ๋ฐํ์ ์ฑ๋ฅ์ ์ฃผ์ํด์ผ ํฉ๋๋ค.
- CSS Modules๋ ์ ์ ์คํ์ผ๋ง์ด ๋ง๊ณ ์ฑ๋ฅ ์ต์ ํ๊ฐ ์ค์ํ ๊ฒฝ์ฐ ์ ํฉํ๋ฉฐ, CSS์ ์๋ฐ์คํฌ๋ฆฝํธ๊ฐ ๋ถ๋ฆฌ๋ ๊ตฌ์กฐ๋ฅผ ์ ํธํ๋ ๊ฒฝ์ฐ ์ ๋ฆฌํฉ๋๋ค.
- Inline CSS๋ ๊ฐ๋จํ ์คํ์ผ ์ ์ฉ์๋ ์ ํฉํ์ง๋ง, ์ฑ๋ฅ์ ๋ฏผ๊ฐํ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ํผํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
'๐ฉ๐ปโ๐ป ํ๋ก๊ทธ๋๋ฐ ์ธ์ด > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React ์๊ณ ๊ฐ ๊ฐ๋ ] - state์ props์ ์ฐจ์ด๋ฅผ ์์๋ณด์ (0) | 2025.01.09 |
---|---|
[React ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ] - Jotai, Context, Zustand ๋น๊ต (1) | 2024.10.16 |
[React] - useEffect์ ํด๋ฆฐ์ ์ด๋ ? (0) | 2024.08.12 |
[React] - React 18์ ์๋ก์ด API ('createRoot') (0) | 2024.07.30 |