๋ถํ ๋จ์๋ก UI ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด ๋๊ฐ๋ ๊ฐ๋ฐ ๋ฐฉ๋ฒ๋ก ์ผ๋ก, ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ UI ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค ์ ์๋ค.
ํ๋ก์ ํธ์ ๊ท๋ชจ์ ๋ณต์ก๋ ๋ฐ ํ์ ์๊ฐ ๋ง์์ง๊ณ , ๋ชจ๋ฐ์ผ, ํ๋ธ๋ฆฟ ๋ฑ์ ๋ค์ํ ๋๋ฐ์ด์ค๊ฐ ๋ฑ์ฅํจ์ ๋ฐ๋ผ CSS ์ฝ๋๊ฐ ๋ณต์กํด์ง๊ฒ ๋์๋ค.
๋ฐ๋ผ์, ํจ์จ์ ์ธ CSS ์์ ์ ์ํด ๊ตฌ์กฐ์ ์ผ๋ก CSS๋ฅผ ์์ฑํ ํ์๊ฐ ์์๊ณ , ์ด๋ฅผ ์ํ ๋ค์ํ ์๋๊ฐ ์์๋ค.
1. CSS ์ ์ฒ๋ฆฌ๊ธฐ
CSS๊ฐ ๊ตฌ์กฐ์ ์ผ๋ก ์์ฑ๋ ์ ์๊ฒ ๋์์ ์ฃผ๋ ๋๊ตฌ๋ก, Compiler๋ฅผ ํตํด CSS๋ฌธ์๋ก ๋ณํ๋๋ค. ๊ทธ๋ฌ๋ CSS์ ์ฉ๋์ด ๋งค์ฐ ์ปค์ง๋ค๋ ๋จ์ ์ด ์๋ค. (ex. SASS)
2. BEM
Block, Element, Modifier๋ก ๊ตฌ๋ถํ์ฌ ํด๋์ค ๋ช ์ ์์ฑํ๋ ๋ฐฉ๋ฒ์ผ๋ก, ํด๋์ค ๋ช ์ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ณ , ๋ ์ผ๊ด๋ ์ฝ๋ฉ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด์ค๋ค. ๊ทธ๋ฌ๋, ์ฌ์ฌ์ฉ ์ ๋ชจ๋ UI ์ปดํฌ๋ํธ๋ฅผ ๋ช ์์ ์ผ๋ก ํ์ฅํด์ผํ๋ค๋ ๋จ์ ์ด ์๋ค.
3. Styled-Component
HTML + JS + CSS๊น์ง ๋ฌถ์ด์ ํ๋์ JSํ์ผ ์์์ ์ปดํฌ๋ํธ ๋จ์๋ก ๊ฐ๋ฐํ ์ ์๊ฒ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก, CSS๋ฅผ ์ปดํฌ๋ํธ ์์ผ๋ก ์บก์ํํ๋ค.
ํน์ง | ์ฅ์ | ๋จ์ | |
---|---|---|---|
CSS | default ์คํ์ผ๋ง ๋ฐฉ๋ฒ | - | ์ผ๊ด๋ ํจํดx !important ๋จ์ฉ |
SASS (์ ์ฒ๋ฆฌ๊ธฐ) | ์ปดํ์ผ๋ CSS๋ฅผ ๋ง๋ค์ด๋ด๋ ์ ์ฒ๋ฆฌ๊ธฐ | ๋ณ์,ํจ์,์์ ๊ฐ๋
์ ํ์ฉํด ์ฌ์ฌ์ฉ ๊ฐ๋ฅ CSS์ ๊ตฌ์กฐํ | ์ ์ฒ๋ฆฌ ๊ณผ์ ํ์ ๋๋ฒ๊น ์ด๋ ค์ CSS ํ์ผ ์ฉ๋ ๋ฌธ์ |
BEM | CSS ํด๋์ค๋ช ์์ฑ ์, ์ผ๊ด๋ ํจํด์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ | ๋ค์ด๋ฐ์ผ๋ก ๋ฌธ์ ํด๊ฒฐ ์ ์ฒ๋ฆฌ ๊ณผ์ x | ์ ํ์ ์ด๋ฆ์ด ๊ธธ์ด์ง๋ ๋ฌธ์ ํด๋์ค ๋ชฉ๋ก์ด ๋ง์์ง๋ ๋ฌธ์ |
Styled-Component (CSS-in-JS) | ์ปดํฌ๋ํธ ๊ธฐ๋ฐ์ผ๋ก CSS๋ฅผ ์์ฑํ ์ ์๊ฒ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ | CSS๋ฅผ ์ปดํฌ๋ํธ ์์ผ๋ก ์บก์ํ ๋ค์ด๋ฐ, ์ต์ ํ ์ ๊ฒฝ ์ธ ํ์x | ๋น ๋ฅธ ํ์ด์ง ๋ก๋์ ๋ถ๋ฆฌํจ CSS ์์ฑ์ ์ํด ์ฌ๋ฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฏ๋ก, ๋ฒ๋ค์ ํฌ๊ธฐ๊ฐ ์ปค์ง๋ค. |
Reference: ์ฝ๋์คํ ์ดํธ