๐ Component Driven Development (CDD)
: ๋ถํ ๋จ์๋ก UI ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด ๋๊ฐ๋ ๊ฐ๋ฐ
CDD ๋ฐฉ๋ฒ์ ํ์ฉํ์ฌ UI ๋ฅผ ๊ตฌ์ถํ๋ ์ฌ์ดํธ
1) UN
2) BBC
Storybook
latest--5d28eb5ee163f6002046d6fb.chromatic.com
๐ CSS ์ ์ฒ๋ฆฌ๊ธฐ(CSS Preprocessor)
: CSS๊ฐ ๊ตฌ์กฐ์ ์ผ๋ก ์์ฑ๋ ์ ์๊ฒ ๋์์ ์ฃผ๋ ๋๊ตฌ
SASS (Syntactically Awesome Style Sheet)
- CSS๋ฅผ ํ์ฅํด ์ฃผ๋ ์คํฌ๋ฆฝํ ์ธ์ด
- ์๋ฐ์คํฌ๋ฆฝํธ์ฒ๋ผ ํน์ ์์ฑ(ex. color, margin, width ๋ฑ)์ ๊ฐ(ex. #ffffff, 25rem, 100px ๋ฑ)์ ๋ณ์๋ก ์ ์ธํ์ฌ ํ์ํ ๊ณณ์ ์ ์ธ๋ ๋ณ์๋ฅผ ์ ์ฉ
- ๋ณต๋๋ ์ฝ๋๋ฅผ ํ ๋ฒ์ ์ ์ธ์ผ๋ก ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฌ์ฉํ ์ ์๋๋ก ํด ์ฃผ๋ ๋ฑ์ ๊ธฐ๋ฅ
- SASS๋ SCSS ์ฝ๋๋ฅผ ์ฝ์ด์ ์ ์ฒ๋ฆฌํ ๋ค์ ์ปดํ์ผํด์ ์ ์ญ CSS ๋ฒ๋ค ํ์ผ์ ๋ง๋ค์ด ์ฃผ๋ ์ ์ฒ๋ฆฌ๊ธฐ(preprocessor)์ ์ญํ ์ํ๋ค.
๐ CSS ์ ์ฒ๋ฆฌ๊ธฐ์ ๋ฌธ์ ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด๋์จ ๋ฐฉ๋ฒ๋ก .
: BEM, OOCSS, SMACSS ๊ฐ์ CSS ๋ฐฉ๋ฒ๋ก ์ด ๋๋๋จ.
๋ฐฉ๋ฒ๋ก ์ ๊ณตํต ์งํฅ์ ์ ๋ค์๊ณผ ๊ฐ๋ค.
- ์ฝ๋์ ์ฌ์ฌ์ฉ
- ์ฝ๋์ ๊ฐ๊ฒฐํ(์ ์ง ๋ณด์ ์ฉ์ด)
- ์ฝ๋์ ํ์ฅ์ฑ
- ์ฝ๋์ ์์ธก์ฑ(ํด๋์ค ๋ช ์ผ๋ก ์๋ฏธ ์์ธก)
ํน์ง | ์ฅ์ | ๋จ์ | |
CSS | ๊ธฐ๋ณธ์ ์ธ ์คํ์ผ๋ง ๋ฐฉ๋ฒ. | - | ์ผ๊ด๋ ํจํด์ ๊ฐ๊ธฐ ์ด๋ ต๋ค. !important์ ๋จ์ฉ. |
SASS | ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ๋ฒ๋ก ์ ๋์
ํ์ฌ ์ปดํ์ผ๋ CSS๋ฅผ ๋ง๋ค์ด๋ด๋ ์ ์ฒ๋ฆฌ๊ธฐ. |
๋ณ์/ํจ์/์์ ๊ฐ๋
์ ํ์ฉํ์ฌ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. CSS ๊ตฌ์กฐํ. |
์ ์ฒ๋ฆฌ ๊ณผ์ ์ด ํ์ํ๋ค. ๋๋ฒ๊น ์ ์ด๋ ค์์ด์๋ค. ์ปดํ์ผํ CSS ํ์ผ์ด ๊ฑฐ๋ํด์ง๋ค. |
BEM | CSS ํด๋์ค๋ช ์์ฑ์ ์ผ๊ด๋ ํจํด์ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ๋ก . | ๋ค์ด๋ฐ์ผ๋ก ๋ฌธ์ ํด๊ฒฐํจ. ์ ์ฒ๋ฆฌ ๊ณผ์ ์ด ๋ถํ์ํ๋ค. |
์ ํ์์ ์ด๋ฆ์ด ์ฅํฉํ๋ค. ํด๋์ค ๋ชฉ๋ก์ด ๋ง์์ง๋ค. |
Styled-Component (CSS-in-JS) |
์ปดํฌ๋ํธ ๊ธฐ์ผ๋ก CSS๋ฅผ ์์ฑํ ์ ์๊ฒ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. | CSS๋ฅผ ์ปดํฌ๋ํธ ์์ผ๋ก ์บก์ํํ๋ค. ๋ค์ด๋ฐ์ด๋ ์ต์ ํ ์ ๊ฒฝ์ธ ํ์ ์๋ค. | ๋น ๋ฅธ ํ์ด์ง ๋ก๋์ ๋ถ๋ฆฌํ๋ค. |
๐ CSS-in-JS ์ ํ์
Styled-Component
๊ธฐ๋ฅ์ (Functional) ํน์ ์ํ๋ฅผ ๊ฐ์ง ์ปดํฌ๋ํธ๋ค๋ก๋ถํฐ UI๋ฅผ ์์ ํ ๋ถ๋ฆฌํด ์ฌ์ฉํ ์ ์๋ ์์ฃผ ๋จ์ํ ํจํด์ ์ ๊ณตํ๋ค.
'React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React] CDD ๊ฐ๋ฐ ๋๊ตฌ Styled Components Props ํ์ฉ (0) | 2022.07.01 |
---|---|
[React] CDD ๊ฐ๋ฐ ๋๊ตฌ Styled Components (0) | 2022.07.01 |
React event.target.value (0) | 2022.06.30 |
React State Practice (0) | 2022.06.30 |
state๋ฅผ ์ธํ ํ๋ 2๊ฐ์ง ๋ฐฉ๋ฒ (0) | 2022.06.29 |