ํฐ์คํ ๋ฆฌ ๋ทฐ
๐ ์ฌ๋ฆผํฝ ๋ฉ๋ฌ ๊ฐ์ ํธ๋์ปค ๋ฉ์ธ ํ๋ฉด ๋ฐ ์๋ ์์

๋์์ ์๋น์ค๊ฐ ์ข ๋ฃ๋์ด ํด๋น ์ฝํ ์ธ ๋ฅผ ์ฌ์ํ ์ ์์ต๋๋ค.
โน๏ธํ๋ก์ ํธ ์ ๋ณด
โ๏ธ ๊ธฐ๊ฐ : 2025๋ 1์ 21์ผ ~ 1์ 24์ผ
โ๏ธ๊ธฐ์ ์คํ : React, Vite
๋ชฉํ ๋ฐ ๊ตฌํํ ๊ธฐ๋ฅ
โ Vite๋ก ๋ฆฌ์กํธ ํ๋ก์ ํธ๋ฅผ ์ ์
โ ๋๋ผ ์ด๋ฆ๊ณผ ๊ธ, ์, ๋ ๋ฉ๋ฌ ์๋ฅผ ์ ๋ ฅํ ์ ์๋ ํผ ์์ฑ
โ ํผ ์ ์ถ ๋ฒํผ์ ๋๋ ์ ๋ ์๋ก์ด ๋๋ผ์ ๋ฉ๋ฌ ์๊ฐ ์ถ๊ฐ
โ ์ ์ถ ํ ๋ชจ๋ ์ ๋ ฅ ํ๋๋ ๋น ๊ฐ์ผ๋ก ์ด๊ธฐํ
โ CRUD(Create, Read, Update, Delete) ๊ธฐ๋ฅ
โ Create: ํผ ์ ์ถ ์ ์๋ก์ด ๋๋ผ์ ํด๋น ๋ฉ๋ฌ ์๋ฅผ ๋ฆฌ์คํธ์ ์ถ๊ฐ
โ Read: ํ๋ฉด์ ๊ตญ๊ฐ๋ณ ๋ฉ๋ฌ ์ง๊ณ๋ฅผ ๋ฆฌ์คํธ ํํ๋ก ์ถ๋ ฅ
โ Update: ์ด๋ฏธ ์ถ๊ฐ๋ ๊ตญ๊ฐ์ ๋ฉ๋ฌ ์๋ฅผ ์์ ํ ์ ์๋ ๊ธฐ๋ฅ
โ Delete: ๋ฆฌ์คํธ์ ํ์๋ ๋๋ผ ์์ ์ญ์ ๋ฒํผ์ ์ถ๊ฐํ์ฌ, ํด๋น ๊ตญ๊ฐ ์ ๋ณด๋ฅผ ์ญ์
โ ํ๋ฉด ์ ์ฒด์ ๋ ์ด์์์ ์ค์ ํ์ฌ ์ ๋๋ UI
โ ๊ธฐ๋ฅ๋ณ๋ก ์ปดํฌ๋ํธ๋ฅผ ๋ถ๋ฆฌํ์ฌ ์ฝ๋์ ๊ฐ๋ ์ฑ๊ณผ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ธฐ
โ๏ธ ๋ฉ๋ฌ ์ง๊ณ ์ ๋ ฌ
โ๏ธ ๋ก์ปฌ ์คํ ๋ฆฌ์ง ํ์ฉ
ํ์ด์ง ์๊ฐ
๐ ๋ฉ์ธํ์ด์ง

module.css๋ฅผ ํ์ฉํ์ฌ className์ ์ง์ ํ UI ๊ตฌํํ์์ต๋๋ค.

์ด๊ธฐ๊ฐ์ ์์๋๋ก ๊ณต๋, 0, 0, 0 ์ผ๋ก ์ง์ ํ์์ต๋๋ค.
๋ํ ๋ฉ๋ฌ์ ์๋ ์์์ผ ์ ์์ผ๋ฏ๋ก ์ต์๊ฐ์ 0์ผ๋ก ์ค์ ํ์์ต๋๋ค.
![]() |
![]() |
๐ ๊ตญ๊ฐ ์ถ๊ฐ ๋ฐ ์ญ์

input์ ๊ฐ์ ์ ๋ ฅํฉ๋๋ค.

'๊ตญ๊ฐ ์ถ๊ฐ' ๋ฒํผ์ ๋๋ฌ ์ ๋ ฅ ๊ฐ์ ์ถ๊ฐํฉ๋๋ค.
'์ญ์ ' ๋ฒํผ์ ๋๋ฌ ์ ๋ ฅํ ๊ฐ์ ๊ฐ๊ฐ ์ญ์ ํ ์ ์์ต๋๋ค.

์ญ์ ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ค์๊ณผ ๊ฐ์ ์๋ด์ฐฝ์ด ๋น๋๋ค.
๐ ์ค๋ณต๋๋ ๊ฐ ์ฐพ๊ธฐ

์ด๋ฏธ ์ถ๊ฐ๋ ๋ฆฌ์คํธ์ ๊ฐ์ ๊ตญ๊ฐ๋ช ์ ์ ๋ณด๋ฅผ ์ถ๊ฐํ ์, ์๋ด์ฐฝ์ด ๋จ๋ฉฐ ์ถ๊ฐ๊ฐ ๋ถ๊ฐ๋ฅํฉ๋๋ค.
๐ ์ ๋ฐ์ดํธ


์๋กญ๊ฒ ์ ๋ ฅํ ๋ฉ๋ฌ ์ ๋ณด๊ฐ ์ด๋ฏธ ๋ฆฌ์คํธ์ ์ถ๊ฐ๋์ด ์๋ค๋ฉด '์ ๋ฐ์ดํธ' ๋ฒํผ์ ํตํด ๊ฐ์ ์์ ํ ์ ์์ต๋๋ค.
๐ ์ฌ์ฉ์ ํธ์ - ์ ๋ ฅ๊ฐ ์ด๊ธฐํ, ๊ฐ ์ ๋ ฅ, ์ด๋ฏธ ๋ฑ๋ก, ์ ๋ง ์ญ์
- ๊ฐ์ ์ ๋ ฅํ ํ ๋ฒํผ์ ๋๋ฅด๋ฉด ํด๋น ๋์๊ณผ ํจ๊ป ์ ๋ ฅ๊ฐ์ ํญ์ ์ด๊ธฐํ๋ฉ๋๋ค.

- ์๋ฌด๋ฐ ๊ฐ๋ ์ ๋ ฅ๋์ง ์์์ ๋ ์๋ด์ฐฝ์ ๋์์ค๋๋ค.

- ์ญ์ ๋ฒํผ์ ๋๋ฅด๋ฉด ํ ๋ฒ ๋ ์๋ด์ฐฝ์ ๋์ ์ฌ์ฉ์๊ฐ ์ญ์ ๋ฅผ ํ์ธํฉ๋๋ค.

- ์ค๋ณต๋๋ ๊ตญ๊ฐ๋ช ์ ์ถ๊ฐํ ์ ์๋ด์ฐฝ์ด ๋จ๋ฉฐ ๊ฐ์ ์ถ๊ฐ๋์ง ์์ต๋๋ค.
ํธ๋ฌ๋ธ ์ํ
๐๊ณผ์ ์์ ์ ๊ทผ๋ฒ
- ์ฃผ์ด์ง ์๊ตฌ์ฌํญ์์ ๋์ ๋ณด์ด๋ ์์๋ค ๋จผ์ ๋ผ๋ ๋ง๋ค๊ธฐ
- ์ปดํฌ๋ํธ ๋ถ๋ฆฌํ ํ๊ธฐ (๋ฏธ๋ฆฌ ๋จธ๋ฆฌ ์์ผ๋ก ๊ตฌ์ํด๋ ์ข๋ค.)
- ๋์ ์ผ๋ก ๋ณ๋๋๋ ๋ถ๋ถ ํ์ ํ์ฌ useState ๋ง๋ค๊ธฐ
๐useState์ ๋ํด ํ์ ํ๊ธฐ
- ๋ฆฌ์กํธ์์ useState์ ๊ธฐ๋ฅ๊ณผ state์ ์ค์์ฑ ๊ณต๋ถํ๊ธฐ
'useState() ๋ฅผ ์ ์ธ๊น?' ์ ๋ฆฌ ๊ธ
๐๋ด๊ฐ ์ค์ ํ useState์ ๋ํด ์ ํํ ์ ๋ฆฌํ๊ธฐ
- ๋ฆฌ์กํธ๋ ๋์ ์ธ ๋ถ๋ถ์ ๋ํด
์๋ฐ์คํฌ๋ฆฝํธ์์ ์ผ๋ document.querySelector ์ ๋ค๋ฅธ ๋ฐฉ์์ผ๋ก ์ ๊ทผํ๊ธฐ ๋๋ฌธ์
๋ด๊ฐ ์ค์ ํ state๊ฐ ๋ฌด์์ธ์ง, ์ด๋ค ๊ฐ์ ๋ด๊ณ ์๋์ง ์ ํํ ์ ๋ฆฌํ๊ธฐ
๐์ปดํฌ๋ํธ ๋ถ๋ฆฌํ๊ธฐ
- ์ปดํฌ๋ํธ ๋ถ๋ฆฌ ๊ธฐ์ค์ ๊ฐ๋ฐ์๋ง๋ค ๋ค์ํ์ง๋ง
๊ตฌ์กฐ์ , ๊ธฐ๋ฅ์ ์ผ๋ก ํ๋์ ๋ณด๊ธฐ ์ฝ๋๋ก ๊น๋ํ ์ ๋ฆฌ๊ฐ ํ์ํ๊ธฐ ๋๋ฌธ์
ํ๋ก์ ํธ์ ์ ์ฒด์ ์ธ ๊ทธ๋ฆผ์ ๊ตฌ์ํ๊ธฐ - ๋ถ๋ชจ ์ปดํฌ๋ํธ๋ก ์ด๋ค state๋ฅผ ๋์ด์ฌ๋ฆด์ง ์๊ฐํ๊ณ
๊ทธ state๊ฐ ์ด๋ ์์์์์์ ์ฌ์ฉ๋๋์ง ํ์ ํ๊ธฐ
๐์ ๋ฐ์ดํธ ๊ธฐ๋ฅ ๊ตฌํ (find & map)
- ์ด๋ฏธ ์ถ๊ฐ๋ ๋ฆฌ์คํธ์์ ์ฌ์ฉ์๊ฐ ์ ๋ ฅํ ์ ๋ณด์ ๊ตญ๊ฐ๋ช (name)๊ณผ ๋์ผํ ๋ฐ์ดํฐ๋ฅผ ์ฐพ์ ๊ฐ์ฒด๋ก ์ถ๋ ฅํ๊ธฐ - find ๋ฉ์๋
- find๋ฅผ ํตํด ์ถ๋ ฅ๋ ๊ฐ์ฒด์ ๋์ผํ ๋ฆฌ์คํธ๋ฅผ ์ฐพ์ ์ฌ์ฉ์๊ฐ ์๋กญ๊ฒ ์ ๋ ฅํ ์ ๋ณด๋ก ๋ฐ๊พผ ๋ฐฐ์ด์ ์ถ๋ ฅํ๊ธฐ - map ๋ฉ์๋
- map์ ํตํด ๋ฐ๊พผ ๋ฐฐ์ด์, ๋ฆฌ์คํธ์ ์ถ๊ฐํ๋ setState ํจ์ (setNationList)์ ๋ฃ๊ธฐ
๐์ ๋ ฅ ์ ๋ณด์ id๊ฐ ํ์ธํ๊ธฐ - ๋ ๋๋ง ์ด์
- ์
๋ฐ์ดํธ ๊ธฐ๋ฅ ๊ตฌํ ์, map์์ returnํ ์๋ก์ด ํ์์ ๋ฐฐ์ด์ ์ฝ์์ฐฝ์ ์ฐ์ด๋ณด๋ฉด id: 1์ด๋ค.
๊ทธ ์ด์ ๋ ์ ๋ ฅ์ฐฝ ์ด๊ธฐ๊ฐ์ id๋ฅผ 1๋ก ์ง์ ํด๋์๊ธฐ ๋๋ฌธ์ด๋ค.
์ฝ์์ฐฝ์๋ warning์ด๋ผ๊ณ ๋จ์ง๋ง ์ด๋ฅผ ๊ทธ๋ฅ ์ง๋๊ฐ๊ฒ ๋๋ฉด ๊ฒฐ๊ตญ ์ ๋ฐ์ดํธํ ๋ฐ์ดํฐ๋ค์ id๊ฐ ๋ชจ๋ 1๋ก ๋์ผํ๊ฒ ๋๋ค.
์ด ํ์์ด ์ํํ ์ด์ ๋, ๋ฆฌ์กํธ๋ ๋์ ์ผ๋ก ๋ฐ๊ฟ์ผ ํ๋ ์ ๋ณด๋ฅผ ์ธ์ํ ๋ id๋ก ๋ฐ์ดํฐ๋ค์ ๊ตฌ๋ถํ๋ค.
์ด๋ ๋ชจ๋ id์ ๊ฐ์ด ๊ฐ๋ค๋ฉด ๋ฐ๋ ์ ๋ณด๋ฅผ ์ฐพ๊ธฐ ์ํด ๋ ๋๋ง ์๊ฐ์ด ๊ธธ์ด์ง๊ฒ ๋๋ค.
(ํํฐ๋์ ์ค๋ช ์ ๋น๋ฆฌ์๋ฉด : ์๋น์์ ์ฃผ๋ฌธ์ ํ๋๋ฐ ์ฃผ๋ฌธ ๋ฒํธ๊ฐ ์ ๋จ๋ ๊ฒฝ์ฐ. ์ง์ฅ๋ฉด ์ํค์ ๋ถ~)
๋ฐ๋ผ์ Date.now() ๋ฅผ ํ์ฉํ์ฌ ๋ณ๋๋ ๋ฐ์ดํฐ์๋ uniqueํ๊ณ ๊ณ ์ ํ id๊ฐ ํ์ํ๋ค.
๐์ค๋ณต ๊ตญ๊ฐ ๊ธฐ๋ฅ ๊ตฌํ (some)
- ์ฌ์ฉ์์ ์
๋ ฅ๊ฐ๊ณผ ๋ฆฌ์คํธ์ ์ ๋ณด๋ฅผ ๋น๊ตํ๋ค๋ ์ ์์ ์
๋ฐ์ดํธ์ ๊ตฌํ์ด ๋น์ทํ์ง๋ง,
์ ๋ฐ์ดํธ์ ๋์ผํ๊ฒ find๋ฅผ ์ฌ์ฉํ๊ฒ ๋๋ฉด ์๋กญ๊ฒ ๊ฐ์ฒด๊ฐ ์ถ๋ ฅ๋๋ค.
์ค๋ณต ๊ตญ๊ฐ๋ฅผ ์ฐพ์๋ด๋ ๊ฒ์์๋ ๋จ์ง '๋์ ๊ฐ์ด ๊ฐ๋?' ๋ if๋ฌธ์ ์กฐ๊ฑด๋ง ํ์ํ๊ธฐ ๋๋ฌธ์
์กฐ๊ฑด ๋ง์กฑ ์ฌ๋ถ๋ง ํ๋จํ ๋ ๊ฐ๊ฒฐํ๊ฒ ์ฌ์ฉ ๊ฐ๋ฅํ some ์ ํ์ฉํ๋ ๊ฒ์ด ์ ํฉํ๋ค.
๋ง์น๋ฉฐ
ํ๋ก ํธ์๋์ ์ฃผํน๊ธฐ์ธ ๋ฆฌ์กํธ.
๊ธฐ์ด๋ฅผ ์ดํ๋ง์ ๋ฐฐ์ฐ๊ณ 4์ผ ์ ๋ ๊ฑธ๋ ค ํ๋ก์ ํธ๋ฅผ ์์ฑํ์๋ค.
๊ธ๋ฐฉ ๊ตฌํํ๋ ๋ถ๋ค๊ณผ๋ ๋ค๋ฅด๊ฒ(๋ฌผ๋ก ๊ทธ๋ถ๋ค์ด ๊ณ ์ํ์ง ์์ผ์
จ๋ค๋ ๊ฒ์ ์๋๋๋ค.)
์ดํด๋ ์ด๋ ต๊ณ ๋๋ฌด๋๋ ๋ณต์กํด์ ๋จธ๋ฆฌ๊ฐ ํฐ์ง ๊ฒ๋ง ๊ฐ์๋ 4์ผ์ด์๋ค.
๋จ 4์ค์ ์ฝ๋ฉ ๋๋ฌธ์ ๊ณ ์๋ ํด๋ณด๊ณ ์์ํ ๋ง์๋ ๋ค์์ง๋ง,
๊ฐ์ ๋ด์ฉ์ ๋ฐฐ์ฐ๋ ๋๊ตฌ๋ผ๋ ์ฒ์์๋ ๊ณ ์ํ์ ๊ฑฐ๋ผ๋ ๊ฑธ ์๊ณ ์๋ค!
๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ข์ ํ์ง ์๊ณ ๋ฐ๋ณต ๋ณต์ตํ๋ฉฐ ๊ณต๋ถ๋ค์ด ๊ณต๋ถ๋ฅผ ํด์ผ๊ฒ ๋ค๊ณ ์ฐธ ๋ง์ ์๊ฐ์ ํ๋ค.
๋น๋ก ์์ง์ ๋๋ฆฌ๊ณ ๋ฒ๋ฒ ๋์ง๋ง ์ฒ์ ์์๋ณด๋ค ๋ ๋์์ง ๋ด ๋ชจ์ต์ ๋ฐ๋ผ๋ณด๋ฉฐ ์์ผ๋ก์ ๋๋ฅผ ๊ธฐ๋ํ๋ค!!
'Project' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [MBTI-Test PJ_Day 1] Tailwind ๊ณตํต ์ปดํฌ๋ํธ ์คํ์ผ๋ง (1) | 2025.02.21 |
|---|---|
| [NewsFeed-Final] FootPrint๐ฃ (1) | 2025.02.18 |
| [NewsFeed-Day 1] 10์กฐ์ ์ฒซ ๋ฐ์๊ตญ..๐ฃ (0) | 2025.02.12 |
| [movie PJ_day1] ์๊ตฌํ๋ ๋ฐ๋ฅผ ๋ช ํํ ํ์ ํ๊ธฐ (0) | 2025.01.24 |
| [movie PJ_Final] ์ํ ๊ฒ์ ํ์ด์ง ๋ง๋ค๊ธฐ (0) | 2025.01.17 |

