
๐ฏ ์ปดํฌ๋ํธ (Component)
์ปดํฌ๋ํธ๋ ๋ฌด์์ธ์ง๋ฅผ ํ ์ค๋ก ์ ๋ฆฌํ๋ฉด,
UI (User Interface)๋ฅผ ๊ตฌ์ฑํ๋ ์กฐ๊ฐ์ด๋ค.
๐ฆ ๋น์ ํ์๋ฉด: ์ปดํฌ๋ํธ = ๋ ๊ณ ๋ธ๋ก ๐งฑ
UI๋ฅผ ์ปดํฌ๋ํธ๋ก ๋ง๋ ๋ค๋ ๊ฒ์,
๋ง์น ๋ ๊ณ ๋ก ์ง์ ์ง๋ ๊ฒ๊ณผ ๋๊ฐ๋ค๊ณ ๋ณด๋ฉด ๋๋ค.
๐ ๋ฒํผ ํ๋ ๐๐ป ๋ ๊ณ ๋ธ๋ก ํ๋
๐ ์ ๋ ฅ์ฐฝ ํ๋ ๐๐ป ๋ ๋ค๋ฅธ ๋ ๊ณ ๋ธ๋ก
๐งพ ์นด๋ ์ ์ฒด ๐๐ป ์ฌ๋ฌ ๋ธ๋ก์ ์กฐํฉํ ๋ฌถ์
๐ ํ์ด์ง ์ ์ฒด ๐๐ป ์์ ๋ธ๋ก๋ค๋ก ์กฐ๋ฆฝ๋ ์์ฑํ
์ฆ, ๋ณต์กํ UI๋ฅผ ์๊ณ ๋ ๋ฆฝ์ ์ธ ๋ธ๋ก์ผ๋ก ์ชผ๊ฐ์
ํ์ํ ์์น์ ๊ฐ์ ธ๋ค ๋ถ์ด๋ ๊ฒ์ด๋ค.
๐ง ์ ์ปดํฌ๋ํธ๊ฐ ์ค์ํ ๊น
1๏ธโฃ ์ฌ์ฌ์ฉ์ฑ โป๏ธ
๊ฐ์ ๋ฒํผ, ๊ฐ์ ์นด๋, ๊ฐ์ ๋ฆฌ์คํธ ์์ดํ ๋ฑ์
์ฌ์ฉํ ๋๋ง๋ค ๋ค์ ๋ง๋ค๋ฉด ๋นํจ์จ์ ์ด๊ธฐ ๋๋ฌธ์
์ปดํฌ๋ํธ๋ก ํ ๋ฒ ๋ง๋ค์ด๋๊ณ ,
ํ์ํ ๋๋ง๋ค ๋ถ๋ฌ๋ค ์ฐ๋ ๊ฒ์ด๋ค.
<Button label="๋ก๊ทธ์ธ" />
<Button label="ํ์๊ฐ์
" />
2๏ธโฃ ์ ์ง๋ณด์ ๐งผ
๋ฒํผ ์คํ์ผ์ด ๋ฐ๋์๋ค๋ฉด,
๋ชจ๋ ๋ฒํผ์ ์ฐพ์์ ๋ฐ๊ฟ ํ์ ์์ด
์ปดํฌ๋ํธ ํ๋๋ง ๊ณ ์น๋ฉด ๋์ด๊ธฐ ๋๋ฌธ์ ๋งค์ฐ ํธ๋ฆฌํ๋ค.
3๏ธโฃ ๋ถ๋ฆฌ์ ๊ด๋ฆฌ ๐
์ฝ๋๋ฅผ ์๊ฒ ๋๋๋ฉด ์ฝ๊ธฐ ์ฝ๊ณ , ๊ด๋ฆฌ๋ ํธํ๊ธฐ ๋๋ฌธ์
๊ฐ๊ฐ์ UI ์กฐ๊ฐ์ ๋ด๋นํ๋ ์ปดํฌ๋ํธ ํ์ผ๋ก ์ชผ๊ฐ์ ์ ์งํ๋ฉด ์ข๋ค.
/components
โโโ Button.tsx
โโโ Card.tsx
โโโ Navbar.tsx
๐งฉ ์ปดํฌ๋ํธ์ ์ข ๋ฅ
| ์ ํ | ์ค๋ช | ์์ |
| ๐จ ํ๋ ์ ํ ์ด์ ๋ ์ปดํฌ๋ํธ | UI ํํ๋ง ๋ด๋น | ๋ฒํผ, ์นด๋ ๋ฑ |
| ๐ง ์ปจํ ์ด๋ ์ปดํฌ๋ํธ | ๋ก์ง ์ฒ๋ฆฌ ์ค์ฌ | ๋ก๊ทธ์ธ ์ํ, ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ ๋ฑ |
| ๐บ ํ์ด์ง ์ปดํฌ๋ํธ | ์ ์ฒด ํ๋ฉด์ ๊ตฌ์ฑํ๋ ํฐ ๋จ์ | /Home, /Login ๋ฑ |
| ๐ ์ฌ์ฌ์ฉ ์ปดํฌ๋ํธ | ํ๋ก์ ํธ ์ด๋์๋ ์ฐ๋ ๋ฒ์ฉ ๊ธฐ๋ฅ | Modal, Dropdown, Input |
โ ์ฃผ์์ฌํญ
์ปดํฌ๋ํธํ๋ฅผ ๋๋ฌด ์ง์ฐฉํ๋ฉด,
๋ฒํผ ์์ <svg> ๊น์ง ์ปดํฌ๋ํธ๋ก ์ชผ๊ฐ๊ณ ..
๊ทธ ์์ <path>๋ ์ปดํฌ๋ํธ๋ก ๋ง๋ค๊ณ ..
์ด๋ ๊ฒ ์ค๋ฒ์์ง๋์ด๋ง๋ ์๋ ์๊ธฐ ๋๋ฌธ์
"์ด ์ปดํฌ๋ํธ๊ฐ ์ฌ์ฌ์ฉ๋ ๊น?",
"์ด๊ฑธ ๋ฐ๋ก ๋๋ ๊ฒ ์ฝ๋๊ฐ ๋ ์ดํดํ๊ธฐ ์ฌ์ฐ๋ ค๋?"๋ฅผ
๊ธฐ์ค์ผ๋ก ํ๋จํด์ ๋๋์ด์ฃผ์ด์ผ ํ๋ค.
'๐ป๊ณต๋ถ ๊ธฐ๋ก > ๐ Frontend' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [Frontend] ๋ฐฐ์ด ๊ตฌ์กฐ ๋ถํด ํ ๋น (Array Destructuring) (0) | 2025.06.16 |
|---|---|
| [Frontend] ํ์ ์คํฌ๋ฆฝํธ์์ const ๋? (0) | 2025.06.16 |
| [Frontend] Mock์ด๋ (0) | 2025.06.14 |
| [Frontend] ํ ์คํธ ์ฝ๋ ์์ฑํ๊ธฐ - Testing Library & Jest (2) | 2025.06.14 |
| [Frontend] prettier ์ ์ฉํ๊ธฐ (3) | 2025.06.14 |