์ฐธ๊ณ ์ฌ์ดํธ
* ์นด์นด์ค FE ๊ธฐ์ ๋ธ๋ก๊ทธ
ํด๋น ํ์ด์ง์ ๋ด์ฉ์ ๋ด๊ณ ์์ผ๋ฉฐ, ๋จธ๋ฆฟ์์ ๋ด๊ธฐ ์ํด ์ ์ด๊ฐ๋ฉด์ ๊ณต๋ถ (๋์ .. ๋์ ..)
๐งฉ ์ปดํฌ๋ํธ์ ํํธํ
๋น์ทํ ๋ชจ์ ๋ฐ ๊ธฐ๋ฅ์ ์ปดํฌ๋ํธ๊ฐ ์ฌ๋ฌ ๊ฐ ์๋ค๊ณ ์๊ฐํด๋ณด์.
์ด๊ฑธ ๊ฐ๊ธฐ ํ๋ ํ๋ ๋ค ๋ง๋ค์ด๋ด๋ ๊ฒ์ ๋ํด์๋ ๊ตฌํํ๋ฉด ์ปดํฌ๋ํธ ํํธํ๋ผ๋ ์ ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ๊ฐ ๋ฐ์ํ๋ค.
๊ทธ๋ผ ์ ์ง๋ณด์ ํ ๋, ๊ฐ๊ฐ์ ํํธํ๋ ์ปดํฌ๋ํธ๋ฅผ ์ฐพ์์ ๊ณ ์ณ์ผํ๋ ๋ฌธ์ ์ ์ด ๋ฐ์ํ๋ค.
โ ์ ์ฐ๋๊ฑด๋ฐ?
๋์์ธ ์์คํ ๋ด์์ ์ ๋ง์ ์์ ์์ ๋ค์ด ์ผ์ด๋๋ค.
(ํ์ฌ ๋๋ค์์ ์งํํ๋ ํ๋ก์ ํธ๋ ๋ค๋ค ํ๋ฅญํ์ง๋ง ๋ถ์กฑํ ์ ์ด ์๋ ๋๋ค ์ฌ๋๋ค์ด๋ค๋ณด๋ ํ์๋ฅผ ํตํด ๋์์ธ์ด ๋ ํ ์์ ๋๋ ์์
๋ ๋ง๋ค.)
์ด๋, ์ฌ์ฌ์ฉ ๋ฐ ์ ์ง๋ณด์๋ฅผ ์ํ์ฌ ์์ฐ๋ ๋์์ธ์ ๋ํด ์ปดํฌ๋ํธ๋ฅผ ๊ด๋ฆฌํ๋๋ฐ ํจํด๋ค์ ์ฐธ๊ณ ํ์ฌ ์ฌ์ฉํ๋ฉด ์ปดํฌ๋ํธ ํํธํ์ ๋ฌธ์ ์ ์ ์ข ๋ ํด๊ฒฐํ ์ ์๋ค.
โ Atomic Design
์ํ ๋ฏน ๋์์ธ์ ํํ์ ๊ด์ ์์ ์๊ฐ์ ์ป์ ๋์์ธ ์์คํ ์ด๋ผ๊ณ ํ๋ค.
๋ชจ๋ ๊ฒ์ atom(์์)์ผ๋ก ๊ตฌ์ฑ๋์ด์๊ณ atom๋ค์ด ์๋ก ๊ฒฐํฉํ์ฌ ํ๋์ molecule(๋ถ์)๋ฅผ ์ด๋ฃจ๊ณ , molecule์ด ๊ฒฐํฉํ์ฌ organism(์ ๊ธฐ์ฒด)๋ก ๊ฒฐํฉํ์ฌ ์ต์ข ์ ์ธ ๋ฌผ์ง์ ์ด๋ฃฌ๋ค.
๋ฐ๋ผ์, ์ํ ๋ฏน ๋์์ธ์์๋ ์ด ๊ฐ๋ ์ ์ฌ์ฉํ์ฌ atom, molecule, organism, template, page์ 5๊ฐ์ง ๋ ๋ฒจ๋ก ๋๋๋ค.
โ Atoms
atom์ ๋ ์ด์ ๋ถํดํ ์ ์๋ ์ปดํฌ๋ํธ์ด๋ค. label, input, button๊ณผ ๊ฐ์ ์ฐ๋ฆฌ๊ฐ ํํ๊ฒ ์ฌ์ฉํ๋ HTML Element ํ๊ทธ(+ ๊ธ๊ผด, ์ ๋๋ฉ์ด์ , ์ปฌ๋ฌ ํ๋ ํธ, ๋ ์ด์์๊ณผ ๊ฐ์ ์ถ์์ ์ธ ๊ฐ๋ ์ ํฌํจ)์ด๋ค.
atom์ ๊ธฐ๋ณธ ์คํ์ผ์ ํ ๋์ ๋ณด์ฌ์ฃผ๋ฏ๋ก ๋์์ธ ์์คํ ์ ๊ฐ๋ฐํ ๋ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋๋ค.
atom์ ์ถ์์ ์ธ ๊ฐ๋ ์ ํํํ ์ ์๋๋ฐ ์ด๊ฒ์ ๋จ์ผ ์ปดํฌ๋ํธ๋ก ์ฌ์ฉํ๊ธฐ์ ์ด๋ ค์ด ๊ฒฝ์ฐ๊ฐ ์๋ค.
๋ฐ๋ผ์, atom์ ๋ค๋ฅธ atom๊ณผ ๊ฒฐํฉํ์ฌ molecule ํน์ organism ๋จ์์์ ์ฌ๋ฌ ๋จ์์ ๊ฒฐํฉํ์ฌ ์ ์ฉํ๊ฒ ์ฌ์ฉ๋ ์ ์๋ค.
-> ๋จ์ํ Button ํด๋ฆญ์ผ๋ก ๊ฐ๋จํ ์ด๋ฒคํธ, Input์ผ๋ก ์ ๋ ฅ๊ฐ ์์ ๋ฑ ๊ธฐ๋ฅ์ ํ ์ ์์ง๋ง ์ด๊ฒ์ผ๋ก๋ง ํ์ฅํด์ ์ฌ์ฉํ๊ธฐ์ ์ ํ์ด ์๋ค.
๐ฆ Molecule
molecule์ ์ฌ๋ฌ ๊ฐ์ atom์ ๊ฒฐํฉํ์ฌ ์์ ์ ๊ณ ์ ํ ํน์ฑ์ ๊ฐ์ง๋๋ค. (๊ธฐ๋ฅ์ด ํ์ฅ๋๊ณ ๋ถ๋ช ํด์ง) ์๋ ์ด๋ฏธ์ง์ ๊ฐ์ด atom๋ค์ ๊ฒฐํฉํ ๊ฒฝ์ฐ, button atom์ ํด๋ฆญํ์ฌ form์ ์ ์กํ๋ molecule๋ก ์ ์ ํ ์ ์๋ค.
molecule์ ์ค์ํ ์ ์ ํ ๊ฐ์ง ์ผ์ ํ๋ ๊ฒ์ด๋ค.
SRP(Single Responsibility Principle) ์์น์ผ๋ก ์ธํด ํค์๋ ์ ์ก ๊ธฐ๋ฅ์ด ํ์ํ ๊ณณ์์ ์ฌ์ฌ์ฉ ๋ ์ ์๋ค.
molecule์ SRP๋ ์ฌ์ฌ์ฉ์ฑ๊ณผ UI์์ ์ผ๊ด์ฑ, ํ ์คํธํ๊ธฐ ์ฌ์ด ์กฐ๊ฑด์ด๋ผ๋ ์ด์ ์ ๊ฐ์ง๋ค.
๐งฌ Organism
organsim์ ์ ๋จ๊ณ๋ณด๋ค ์ข ๋ ๋ณต์กํ ์๋น์ค์์ ํํ๋ ์ ์๋ ๋ช ํํ ์์ญ๊ณผ ํน์ ์ปจํ ์คํธ๋ฅผ ๊ฐ์ง๋ค.
์ด๊ฒ์ atom, molecule, organism์ผ๋ก ๊ตฌ์ฑํ ์ ์๋ค.
์๋ฅผ ๋ค์ด, Header๋ผ๋ ์ปจํ ์คํธ์ Logo(atom), navigation(molecule), search-form(molecule)์ ํฌํจํ ์ ์๋ค.
atom, molecule์ ๋นํด ์ข ๋ ๊ตฌ์ฒด์ ์ผ๋ก ํํ๋๊ณ ์ปจํ ์คํธ๋ฅผ ๊ฐ์ง๊ธฐ ๋๋ฌธ์ ์๋์ ์ผ๋ก ์ฌ์ฌ์ฉ์ฑ์ด ๋ฎ์์ง๋ ํน์ฑ์ ๊ฐ์ง๋ค.
๐ช๐ป Template
ํ ํ๋ฆฟ์ page๋ฅผ ๋ง๋ค ์ ์๋๋ก ์ฌ๋ฌ ๊ฐ์ organism, molecule๋ก ๊ตฌ์ฑํ ์ ์๋ค.
์๋ ์ด๋ฏธ์ง์ ๊ฐ์ด ์ค์ ์ปดํฌ๋ํธ๋ฅผ ๋ ์ด์์์ ๋ฐฐ์นํ๊ณ ๊ตฌ์กฐ๋ฅผ ์ก๋ ์์ด์ด ํ๋ ์์ด๋ค.
์ฆ, ์ค์ ์ปจํ ์ธ ๊ฐ ์๋ page ์์ค์ ์ค์ผ๋ ํค์ด๋ผ๊ณ ์ ์ํ ์ ์๋ค.
๐โ๏ธ Page
page๋ ์ ์ ๊ฐ ๋ณผ ์ ์๋ ์ค์ ์ฝํ ์ธ ๋ฅผ ๋ด๊ณ ์๋ค.
template์ ์ธ์คํด์ค๋ผ๊ณ ํ ์ ์๋ค.
์๋ฅผ ๋ค์ด ์ฅ๋ฐ๊ตฌ๋ ํ์ด์ง์ ์ ์ ๊ฐ ๋ด์ ์ํ์ด ์๊ฑฐ๋ 10๊ฐ๋ฅผ ๋ด๋ ๋ค์ํ template์ ์ธ์คํด์ค๋ฅผ ๋ณผ ์ ์๋ค.
'Framework > React' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ React ] Custom Hook์ผ๋ก ๋ก์ง์ ์ฌ์ฌ์ฉํด๋ณด์. (0) | 2024.04.15 |
---|---|
[ React ] useContext์ ๋ํด ์์๋ณด์. (2) | 2024.04.08 |
[ React ] useCallback์ ๋ํด ์์๋ณด์. (0) | 2024.04.05 |
[ React ] useMemo์ ๋ํด ์์๋ณด์. (0) | 2024.04.04 |
[ React ] useRef์ ๋ํด ์์๋ณด์. (0) | 2024.04.04 |