๐ CDD์ ๋ํด์ ํ์ตํ๋ ๋ ์ด๋ค.. ์์ฆ ๋น๊ฐ์์ ๊ทธ๋ฐ์ง ๊ธฐ๋ถ์ด ํ์ธต ๋ค์ด๋ ์ํ๋ก ์ ์งํ๊ณ ์๋ค... ์กฐ๊ธ ๋ ํ๋ด์ ๊ธฐ์ด์ ๋์ฐพ์์ ์ด์ฌํ ํด๋ณด์!!!
๐ ์ค๋ ํ์ตํ ๋ด์ฉ
CDD (Component Driven Development)
- ๊ธฐํ์๊ฐ ์ด์ ์ ์์ฒญ ๋ฐ์๋ ๊ธฐ๋ฅ์ ๋๊ฐ์ด ์ฌ์ฉํ๋๋ก ์์ฒญํ๋ค. ์ด๋, ํ์์ ๊ฐ์ UI ์ปดํฌ๋ํธ๋ฅผ ๊ณต์ ํ๋ค๋ฉด ๊ณ ๋ฏผํ์ง ์๊ณ ์ปดํฌ๋ํธ๋ฅผ ์ฌ์์ฉ ํ ์ ์๋ ๋ฐฉ๋ฒ๋ก ์ด CDD์ด๋ค.
- ๋ถํ ๋จ์๋ก UI ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค์ด ๋๊ฐ๋ ๊ฐ๋ฐ์ ํ๋ ๊ฒ.
CSS in JS
- ํ๋ก์ ํธ์ ๊ท๋ชจ๋ ๋ณต์ก๋๊ฐ ์ ์ ์ปค์ง๊ณ ํจ๊ป ์์ ํ ํ์ ์๋ ๋ง์์ง๋ฉด์ CSS๋ฅผ ์์ฑํ๋ ์ผ๊ด๋ ํจํด์ด ์์ด์ ํจ์จ์ ์ผ๋ก ์์ ํ๊ธฐ ์ํด ๊ตฌ์กฐํ๋ CSS๊ฐ ํ์ํด์ก๋ค.
- ์์ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๊ธฐ ์ํด ๋์จ๊ฒ์ด CSS ์ ์ฒ๋ฆฌ๊ธฐ์ด๋ค.
- CSS ์ ์ฒ๋ฆฌ๊ธฐ: ๋ง์ ๋ฐ๋ณต์ ์ธ ์์
์ ์๊ตฌํ๊ณ ๊ฐ์ ์ฐพ๋ ๋ฒ๊ฑฐ๋ก์ด ์์
์ด ๋ง์์ง๋ฉด์ ์์ฐ์ค๋ฝ๊ฒ CSS ๋ฌธ์์ ์๋ ์ฆ๊ฐํ์ฌ ์ ์ง๊ด๋ฆฌ์ ์ํฅ์ ๋ผ์ณค๋๋ฐ ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํจ.
- ์ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ํตํดCSS ํ์ผ๋ค์ ์ ๊ตฌ์กฐํํ ์ ์๊ฒ ๋์๊ณ , ์ต์ํ CSS ํ์ผ์ ๋ช ๊ฐ์ ์์ ํ์ผ๋ก ๋ถ๋ฆฌ ํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์๊ฒผ๋ค.
- CSS ์ ์ฒ๋ฆฌ๊ธฐ: ๋ง์ ๋ฐ๋ณต์ ์ธ ์์
์ ์๊ตฌํ๊ณ ๊ฐ์ ์ฐพ๋ ๋ฒ๊ฑฐ๋ก์ด ์์
์ด ๋ง์์ง๋ฉด์ ์์ฐ์ค๋ฝ๊ฒ CSS ๋ฌธ์์ ์๋ ์ฆ๊ฐํ์ฌ ์ ์ง๊ด๋ฆฌ์ ์ํฅ์ ๋ผ์ณค๋๋ฐ ์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํจ.
- CSS ์ ์ฒ๋ฆฌ๊ธฐ ์ค ๊ฐ์ฅ ์ ๋ช
ํ ๊ฒ์ SASS(Syntactically Awesome Style Sheets)
- SASS: CSS๋ฅผ ํ์ฅํด ์ฃผ๋ ์คํฌ๋ฆฝํ
์ธ์ด
- CSS๋ฅผ ๋ง๋ค์ด์ฃผ๋ ์ธ์ด๋ก์ JS ํน์ ์์ฑ์ ๊ฐ์ ๋ณ์๋ก ์ ์ธํ์ฌ ํ์ํ ๊ณณ์ ์ ์ธ๋ ๋ณ์๋ฅผ ์ ์ฉํ ์ ์์ผ๋ฉฐ, ๋ฐ๋ณต๋๋ ์ฝ๋๋ฅผ ํ ๋ฒ์ ์ ์ธ์ผ๋ก ์ฌ๋ฌ ๊ณณ์์ ์ฌ์ฌ์ฉํ ์ ์๋๋ก ํด์ฃผ๋ ๊ธฐ๋ฅ ๋ฑ์ ๊ฐ์ง๊ณ ์๋ค.
- ํ์ง๋ง, ์ฅ์ ๋ณด๋ค ๋ค๋ฅธ ๋ฌธ์ ๋ค์ ๋ ๋ง์ด ๋ง๋ค์ด์ง๋ ๊ฒ์ด ๋ฐํ์ก์ต๋๋ค.
- ๋ด๋ถ์์ ์ด๋ค ์์ ์ ํ๋์ง ์์ง ๋ชปํ ์ฑ, ์คํ์ผ์ด ๊ฒน์น๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๊ณ์ธต ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์ด ๋ด๋ ๊ฒ์ ์์งํ์ฌ ์ปดํ์ผ๋ CSS์ ์ฉ๋์ ์๊ฐ์ง๋ ๋ชปํ๊ฒ ์ปค์ ธ์์์ต๋๋ค.
- SASS: CSS๋ฅผ ํ์ฅํด ์ฃผ๋ ์คํฌ๋ฆฝํ
์ธ์ด
- ์ ์ฒ๋ฆฌ๊ธฐ ๋ฌธ์ ๋ณด์ ๋ฐฉ๋ฒ๋ก
- BEM, OOCSS, SMACSS
- ๊ณตํต ์งํฅ์
- ์ฝ๋์ ์ฌ์ฌ์ฉ
- ์ฝ๋์ ๊ฐ๊ฒฐํ(์ ์ง ๋ณด์ ์ฉ์ด)
- ์ฝ๋์ ํ์ฅ์ฑ
- ์ฝ๋์ ์์ธก์ฑ(ํด๋์ค ๋ช ์ผ๋ก ์๋ฏธ ์์ธก)
- ๊ณตํต ์งํฅ์
- BEM, OOCSS, SMACSS
- BEM
- ๋ํ์ ์ธ CSS ๋ฐฉ๋ฒ๋ก
- Block, Element, Modifier๋ก ๊ตฌ๋ถํ์ฌ ํด๋์ค๋ช ์ ์์ฑํ๋ ๋ฐฉ๋ฒ (--์__๋ก ๊ตฌ๋ถํ๋ค)
- ํด๋์ค๋ช ์ BEM ๋ฐฉ์์ ์ด๋ฆ์ ์ฌ๋ฌ ๋ฒ ๋ฐ๋ณตํ์ฌ ์ฌ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค.
- Styled-Component
- ๊ธฐ๋ฅ์ ํน์ ์ํ๋ฅผ ๊ฐ์ง ์ปดํฌ๋ํธ๋ค๋ก๋ถํฐ UI๋ฅผ ์์ ํ ๋ถ๋ฆฌํด ์ฌ์ฉํ ์ ์๋ ์์ฃผ ๋จ์ํ ํจํด์ ์ ๊ณต
- CSS๋ฅผ ์ปดํฌ๋ํธํ ์ํค๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
- ์ฌ์ฉํ๋ ์ด์
- class, id ์ด๋ฆ์ ์ง๋๋ผ ๊ณ ๋ฏผ๋ ๋
- CSS ํ์ผ ์์์ ์ํ๋ ๋ถ๋ถ์ ์ฐพ๊ธฐ ํ๋ค ๋
- CSS ํ์ผ์ด ๋๋ฌด ๊ธธ์ด์ ธ์ ํ์ผ์ ์ชผ๊ฐ์ ๊ด๋ฆฌํด๋ณธ ์ ์ด ์์ ๊ฒฝ์ฐ
- ์คํ์ผ ์์ฑ์ด ๊ฒน์ณ์ ๋ด๊ฐ ์ํ๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค์ง ์์ ๊ฒฝ์ฐ
- ์ฌ์ฉํ๋ ์ด์
- Storybook
- UI ๊ฐ๋ฐ, CDD๋ฅผ ํ๊ธฐ ์ํ ๋๊ตฌ
- ์ปดํฌ๋ํธ๋ค์ ๋ฐ๋ก ๋ณผ ์ ์๊ฒ ๊ตฌ์ฑํด ์ฃผ์ด ํ ๋ฒ์ ํ๋์ ์ปดํฌ๋ํธ์์ ์์ ํ ์ ์๋ค.
- ๋ณต์กํ ๊ฐ๋ฐ ์คํ์ ์์ํ๊ฑฐ๋, ํน์ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๊ฐ์ ์ด๋ํ๊ฑฐ๋, ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ํ ํ์ ์์ด ์ ์ฒด UI๋ฅผ ํ๋์ ๋ณด๊ณ ๊ฐ๋ฐํ ์ ์๋ค.
- useRef
- DOM ๋ ธ๋, ์๋ฆฌ๋จผํธ, React ์ปดํฌ๋ํธ ์ฃผ์๊ฐ์ ์ฐธ์กฐํ ์ ์๋ค.
- useRef๋ก ์ ์ธ๋ ์ฃผ์๊ฐ์ ์ปดํฌ๋ํธ๊ฐ re-render ๋๋๋ผ๋ ๋ฐ๋์ง ์๋๋ค.
- ํ์ฉ์์
- focus
- text selection
- media playback
- ์ ๋๋ฉ์ด์ ์ ์ฉ
๐ ์ถ๊ฐ๋ก ๊ณต๋ถํ ๋ด์ฉ
[udemy] React ์๋ฒฝ ๊ฐ์ด๋ ๊ฐ์ ๋ณด๊ธฐ (๋งค์ผ ์กฐ๊ธ์ฉ ์ด๋ผ๋ ๊พธ์คํ ๋ฃ๊ธฐ)
UI/UX ํจํด React์์ ๊ตฌํํด๋ณด๊ธฐ
useRef ์ฌ์ฉ๋ฒ ์์ธํ ์ฐพ์๋ณด๊ธฐ
๐ ์ค์ํ ๋ด์ฉ
- CDD
- CSS - in - JS
- BEM
- Block, Element, Modifier๋ก ๊ตฌ๋ถํ์ฌ ํด๋์ค๋ช ์ ์์ฑํ๋ ๋ฐฉ๋ฒ (--์__๋ก ๊ตฌ๋ถํ๋ค)
- Styled-Component
- CSS๋ฅผ ์ปดํฌ๋ํธํ ์ํค๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
'Daily > Today I Learned' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
22.07.04_TIL (0) | 2022.07.04 |
---|---|
22.07.01_TIL (0) | 2022.07.01 |
22.06.28_TIL (0) | 2022.06.28 |
22.06.27_TIL (0) | 2022.06.27 |
22.06.24_TIL (0) | 2022.06.24 |