| ์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |
- ๋ถํธ์บ ํ
- ์ฝ๋์
- ์ฝ๋์ #ํ๋ก ํธ์๋ #๋ถํธ์บ ํ #ํ๋ก์ ํธ
- ์ฝ๋์ #ํ๋ก ํธ์๋ #๋ถํธ์บ ํ
- ํ๋ก ํธ์๋
- ์ ๋ฐ๋ฏธ #udemy #์ ์ง์ฝํฌ๋น #์ค๋์ดํผํฉํ ๋ฆฌ #์ธ์ฌ์ด๋์์ #๋ฏธ๋๋ด์ผ์ผ๊ฒฝํ #ํ๋ก์ ํธ์บ ํ #ํฌํธํด๋ฆฌ์ค๊ณผ์ #uiux๋์์ธ #uiux๋์์ด๋ #๋์์ด๋๊ต์ก #๋์์ด๋ํฌํธํด๋ฆฌ์ค
- Today
- Total
๐ฑ
๊ธฐ์ด ํ๋ก์ ํธ: Fandom-k ๋ณธ๋ฌธ
๊ธฐ์ด ํ๋ก์ ํธ: Fandom-k
soo2051 2025. 3. 21. 20:07๐ข ํ๋ก์ ํธ ์๊ฐ
- ํ๋ก์ ํธ ์ธ์ : ํ๋ก ํธ์๋ 3๋ช
- ๊ธฐ๊ฐ : 24.10.24 - 24.11.08
- ํ๋ก์ ํธ : ํฌ๋ค์ด ์ข์ํ๋ ์์ด๋์๊ฒ ํฌํํ๊ณ ํ์ํ ์ ์๋ ํฌ๋ค ํ๋ซํผ
- GitHub: https://github.com/FandomKteam5/main
- ํ์ : GitHub, Notion, Discord
- ๊ธฐ์ ์คํ : React, CSS
๐ฉ๐ป๐ป ๋ด ์ญํ
- ์ด๋ฌ์ ์ฐจํธ
- ํฌํ ๋ชจ๋ฌ + ํฌ๋ ๋ง ๋ถ์กฑ ๋ชจ๋ฌ
- ๋ฐํ ์๋ฃ ์ ์
๐ป ํ๋ก์ ํธ ๊ณผ์
๐ API ์ฐ๋ – Swagger ๊ธฐ๋ฐ ๋ฐฑ์๋ API ์ฌ์ฉ
์ด๋ฒ ํ๋ก์ ํธ์์๋ ์ฝ๋์ ์ธก์์ ์ ๊ณตํ Swagger ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ API๋ฅผ ์ฌ์ฉํ์ต๋๋ค. Swagger ๋ฌธ์๋ ๋ช ์ธ๊ฐ ์ ์ ๋ฆฌ๋์ด ์์๊ธฐ ๋๋ฌธ์, ๋น ๋ฅด๊ฒ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ํ์ ํ๊ณ ํ๋ก ํธ์๋์์ ํ์ํ ์์ฒญ์ ๊ตฌํํ ์ ์์์ต๋๋ค.
๐งฉ ์ปดํฌ๋ํธ ๊ตฌ์กฐ์ ์ญํ ๋ถ๋ด
ํ๋ก์ ํธ๋ ๋ค์๊ณผ ๊ฐ์ ํ์ด์ง ๋จ์๋ก ๊ตฌ์ฑ๋์ด ์์์ผ๋ฉฐ, ๊ฐ๊ฐ์ ์ปดํฌ๋ํธ ์ค์ฌ์ผ๋ก ๋ถํ ํ์ฌ ๊ฐ๋ฐํ์ต๋๋ค.
- ๋ฉ์ธ ๋๋ฉ ํ์ด์ง
- ์ด๋ฌ์ ์ฐจํธ
- ํ์ํ๊ธฐ
- ๋ง์ดํ์ด์ง
์ปดํฌ๋ํธ๋ ์ฌ์ฌ์ฉ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๊ณ ๋ คํ์ฌ ๊ธฐ๋ฅ ๋จ์๋ก ๋๋์์ผ๋ฉฐ, ๊ฐ ๊ธฐ๋ฅ๋ณ ๋๋ ํ ๋ฆฌ ๊ตฌ์กฐ๋ฅผ ํตํด ํ์ผ ๊ด๋ฆฌ๋ฅผ ์ฒด๊ณํํ์ต๋๋ค.
๐ ๋ฌธ์ ๋ฐ ํด๊ฒฐ ๊ณผ์
๋ฌธ์ (1) - ์ด๋ฌ์ ์ฐจํธ๋ฅผ ์ฌ์ ์์ด๋ / ๋จ์ ์์ด๋๋ก ๋ถ๋ฅํ์ฌ ์ธ๊ธฐ ์์ผ๋ก ์ ๋ ฌ
1. ๋ฌธ์
์ฐจํธ๋ ๋จ์/์ฌ์ ์์ด๋๋ก ๋ถ๋ฅ๋์ด์ผ ํ๊ณ , ์ธ๊ธฐ ์์ผ๋ก ์ ๋ ฌ๋ ๋ฆฌ์คํธ๋ฅผ ์ ๊ณตํด์ผ ํ์ต๋๋ค. ๋ํ '๋ ๋ณด๊ธฐ' ๋ฒํผ์ ํตํด ๋ฆฌ์คํธ๋ฅผ ํ์ฅํ๋ UX๋ฅผ ๊ตฌํํด์ผ ํ์ต๋๋ค.
2. ํด๊ฒฐ๋ฐฉ์
currentTab ์ํ๋ฅผ ํ์ฉํด ‘์ฌ์ ์์ด๋’๊ณผ ‘๋จ์ ์์ด๋’ ํญ์ ๊ตฌ์ฑํ๊ณ , ์ ํ๋ ํญ์ ๋ฐ๋ผ API์ gender ํ๋ผ๋ฏธํฐ๋ฅผ ์ ๋ฌํด ํด๋น ๊ทธ๋ฃน์ ๋ฐ์ดํฐ๋ฅผ ํํฐ๋งํด ๊ฐ์ ธ์์ต๋๋ค.
์๋ต๋ฐ์ ์์ด๋ ๋ฆฌ์คํธ๋ ์ธ๊ธฐ ์์ผ๋ก ์ ๋ ฌํ์ฌ, ์ฌ์ฉ์์๊ฒ ๊ฐ์ฅ ๊ด์ฌ๋๊ฐ ๋์ ์์ด๋์ด ์๋จ์ ๋
ธ์ถ๋๋๋ก ๊ตฌํํ์ต๋๋ค.
3. ๊ฒฐ๊ณผ
์ฑ๋ณ์ ๋ฐ๋ผ ์ฐจํธ๋ฅผ ๋ถ๋ฆฌํจ์ผ๋ก์จ UX ํ๋ฆ์ด ๋ช ํํด์ก๊ณ , ์ฌ์ฉ์๋ ๋ณธ์ธ์ ๊ด์ฌ ๊ทธ๋ฃน๋ง ์ ํ์ ์ผ๋ก ํ์ธํ ์ ์์ด ํ์ ์๋๊ฐ ํฅ์๋์์ต๋๋ค.
๋ํ '๋ ๋ณด๊ธฐ' ๋ฒํผ์ ํตํด ํ์ด์ง๋ค์ด์ ์์ด ๋ชฉ๋ก์ ์ด์ด์ ๋ก๋ํ ์ ์๋๋ก ๊ตฌ์ฑํ์ง๋ง, ํญ๋ชฉ ์๊ฐ 10๊ฐ ๋ฏธ๋ง์ธ ๊ฒฝ์ฐ์๋ ๋ฒํผ์ด ๋นํ์ฑํ๋์ง ์๊ณ ๊ณ์ ํ์๋๋ ๋ฌธ์ ๊ฐ ์์์ต๋๋ค.
→ ๊ฐ์ ๋ฐฉํฅ : ์๋ต๋ฐ์ ๋ฐ์ดํฐ์ ๊ธธ์ด๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋ณด๊ธฐ ๋ฒํผ ๋ ธ์ถ ์ฌ๋ถ๋ฅผ ์ ์ดํ๊ฑฐ๋, ์๋ฒ ์๋ต ๋ด์ 'hasMore' ํ๋๊ทธ๋ฅผ ํ์ฉํ ์กฐ๊ฑด ๋ถ๊ธฐ ๋ฑ์ ํตํด ๋ณด๋ค ์์ ์ ์ธ ๋ก๋ฉ ๋ก์ง์ ์ค๊ณ
๋ฌธ์ (2) - '์ฐจํธ ํฌํํ๊ธฐ' ๋ฒํผ ํด๋ฆญ ์ ํฌํ ๋ชจ๋ฌ์ฐฝ์ ํ์ํ์ฌ ์ฌ์ฉ์ ์ฐธ์ฌ ์ ๋
1. ๋ฌธ์
ํฌํ ๋ฒํผ ํด๋ฆญ ์ ํ์๋๋ ๋ชจ๋ฌ(ChartModal)๊ณผ, ํฌ๋ ๋ง์ด ๋ถ์กฑํ ๊ฒฝ์ฐ ํ์๋๋ ๋ชจ๋ฌ(LackModal)์ด ์ฐ์์ ์ผ๋ก ์ด๋ฆฌ๋ ๊ตฌ์กฐ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค. ํฌ๋ ๋ง ๋ถ์กฑ ๋ชจ๋ฌ์ ๋ซ์ผ๋ฉด, ๊ทธ๋ณด๋ค ๋จผ์ ์ด๋ ธ๋ ํฌํ ๋ชจ๋ฌ๊น์ง ํจ๊ป ๋ซํ๋ ํ์์ด ์์๊ณ , ์ด๋ ๋ชจ๋ฌ์ ์ํ ๊ด๋ฆฌ๊ฐ ๋ช ํํ๊ฒ ๋ถ๋ฆฌ๋์ด ์์ง ์๋ค๋ ์ ์์ ์ฌ์ฉ์ ๊ฒฝํ์ ํผ๋์ ์ค ์ ์๋ ๊ตฌ์กฐ์์ต๋๋ค.
2. ํด๊ฒฐ๋ฐฉ์
๊ธฐ์กด์๋ ํฌ๋ ๋ง ๋ถ์กฑ ์ closeModal()์ ํธ์ถํด ๋ ๋ชจ๋ฌ์ด ๋ชจ๋ ๋ซํ์ง๋ง, ์ด ๋ถ๋ถ์ ์์ ํด ๋ชจ๋ฌ ์ํ๋ฅผ ๋ถ๋ฆฌ ๊ด๋ฆฌํ๋๋ก ํ์ต๋๋ค.
isOpen(ํฌํ ๋ชจ๋ฌ), showLackModal(ํฌ๋ ๋ง ๋ชจ๋ฌ) ๋ ์ํ๋ฅผ ๋
๋ฆฝ์ ์ผ๋ก ์ค์ ํ๊ณ , ์กฐ๊ฑด๋ถ ๋ ๋๋ง ๋ํ ํด๋น ์ํ์ ๋ฐ๋ผ ๊ฐ๋ณ์ ์ผ๋ก ์ ์ดํจ์ผ๋ก์จ ๋ชจ๋ฌ ๊ฐ ์ ์ด ์ถฉ๋์ ๋ฐฉ์งํ์ต๋๋ค.
3. ๊ฒฐ๊ณผ
ํฌํ ํ๋ฆ์์ ๋ชจ๋ฌ ์ ์ด๊ฐ ์์ ์ ์ผ๋ก ์ด๋ฃจ์ด์ ธ UX ํผ๋์ด ์ค์ด๋ค์๊ณ , ๋ ๋ชจ๋ฌ์ ๋ซํ ์ด๋ฒคํธ๊ฐ ๋ช ํํ ๋ถ๋ฆฌ๋๋ฉด์ ์ฌ์ฉ์ ๊ฒฝํ์ด ๊ฐ์ ๋์์ต๋๋ค.
→ ๊ฐ์ ๋ฐฉํฅ : ํ์ฌ๋ ๋ ๋ชจ๋ฌ์ด ๊ฐ์ DOM ํธ๋ฆฌ ๋ด์์ ์ค์ฒฉ ๋ ๋๋ง๋๊ณ ์๊ธฐ ๋๋ฌธ์, ํฅํ์๋ ์ ์ญ ์ํ๋ก ๋ชจ๋ฌ์ ํตํฉ ์ ์ดํ๋ ๋ฐฉ์์ ๋์
๋ฌธ์ (3) - API ์์ฒญ ๋ก์ง ๋ชจ๋ํ ๋ฐ ์ค๋ฅ ์ฒ๋ฆฌ
1. ๋ฌธ์
๋ชจ๋ API ์์ฒญ ๋ก์ง์ ๊ธฐ๋ฅ๋ณ๋ก ๋ถ๋ฆฌํด ๋ชจ๋ํํ๊ณ , ์์ฒญ๋ง๋ค fetch, try-catch, response.ok ๊ธฐ๋ฐ์ผ๋ก ์์ธ ์ฒ๋ฆฌ๋ฅผ ์ ์ฉํ์ฌ ์ผ๊ด๋ ์์ฒญ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ถํ์ต๋๋ค. ๋ํ ์ปค์คํ ํ useLoad๋ฅผ ํ์ฉํด ๋ก๋ฉ ๋ฐ ์๋ฌ ์ํ๋ฅผ ํจ๊ป ์ฒ๋ฆฌํ ์ ์๋๋ก ๊ตฌ์ฑํ์ต๋๋ค. ์ด์ฒ๋ผ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐํ๋ ์ด๋ฃจ์ด์ก์ง๋ง, ์ด๋ฌํ ๊ตฌ์กฐ๊ฐ ํ๋ก์ ํธ ์ ๋ฐ์ผ๋ก ํ์ฅ๋์ง๋ ๋ชปํ์ต๋๋ค. ๋ค๋ฅธ ์ผ๋ถ ์ปดํฌ๋ํธ์์๋ ์ฌ์ ํ try-catch ๋ฐฉ์์ผ๋ก ์ง์ API ํธ์ถ์ ์ฒ๋ฆฌํ๊ฑฐ๋, ์ํ ๊ด๋ฆฌ๋ฅผ ๋ณ๋๋ก ํ์ง ์์ ์ ์ฒด ํ๋ฆ์์ ๋ก๋ฉ/์๋ฌ ์ฒ๋ฆฌ ๋ฐฉ์์ ์ผ๊ด์ฑ ๋ถ์กฑ๊ณผ ์ฝ๋ ์ค๋ณต์ด ๋ฐ์ํ๋ ์ํฉ์ด ์์์ต๋๋ค. ๋ํ ์๋ฌ ๋ฐ์ ์ ์ฌ์ฉ์์๊ฒ ์ ๊ณต๋๋ ํผ๋๋ฐฑ์ ๋๋ถ๋ถ alert() ๋๋ ์ฝ์ ๋ก๊ทธ ์์ค์ ๊ทธ์ณ, UX ํฅ์ ์ธก๋ฉด์์๋ ์์ฌ์์ด ๋จ์์ต๋๋ค.
2. ํด๊ฒฐ๋ฐฉ์
API ์์ฒญ ์ฝ๋๋ ์ ๋ฐ์ ์ผ๋ก RankApi.js์์ ์ผ๊ด๋๊ฒ ๋ชจ๋ํํ์ฌ ๊ด๋ฆฌํ๊ณ , useLoad ์ปค์คํ ํ ์ ํ์ฉํด ๋ก๋ฉ ๋ฐ ์๋ฌ ์ํ ์ฒ๋ฆฌ, ์์ฒญ ํ๋ฆ ์ ์ด๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ๊ตฌ์ฑํ์ต๋๋ค. ์ปดํฌ๋ํธ ๋ด๋ถ์ ์ค๋ณต๋๋ ์ํ ๊ด๋ฆฌ ์ฝ๋๋ฅผ ์ค์ด๊ณ , ์กฐ๊ฑด๋ถ ๋ ๋๋ง๊ณผ ๋ฐ์ดํฐ ํ๋ฆ๋ ๋ช ํํ๊ฒ ๋ถ๋ฆฌํ์ต๋๋ค.
3. ๊ฒฐ๊ณผ
API ์์ฒญ ํ๋ฆ์ ์ ๋ฆฌ๋์ด ์ ์ง๋ณด์์ฑ๊ณผ ๊ฐ๋ ์ฑ์ด ๋์์ก๊ณ , ์ผ๋ถ ์ปดํฌ๋ํธ์์๋ ํ ์ ํตํ ์ฌ์ฌ์ฉ๋ ๊ฐ๋ฅํด์ก์ต๋๋ค.
→ ๊ฐ์ ๋ฐฉํฅ
try-catch
์ฅ์ :
- ์ง๊ด์ ์ธ ํ๋ฆ ์ ์ด: ์๋ฌ ๋ฐ์ ์ ์๋์ผ๋ก catch๋ก ํ๋ฆ์ด ์ด๋
- ์์์น ๋ชปํ ์ค๋ฅ ํฌ์ฐฉ ๊ฐ๋ฅ: ๋คํธ์ํฌ ์๋ฌ, JSON ํ์ฑ ์ค๋ฅ ๋ฑ
- async/await๊ณผ ํจ๊ป ์ฌ์ฉ ์ ๋๊ธฐ์ ์ฒ๋ผ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ด ๊ฐ๋
์ฑ ํฅ์
๋จ์ :
- ํ๋ฆ ์ ์ด์ ์ ์ฐ์ฑ์ด ๋ถ์กฑํ๊ณ , ์ฑ๊ณต/์คํจ ์ธ ์ํ๋ฅผ ํํํ๊ธฐ ์ด๋ ค์
- catch ๋ด๋ถ๊ฐ ๋ณต์กํด์ง๊ธฐ ์ฌ์ (์๋ฌ ๋ถ๊ธฐ ๋ก์ง ์ถ๊ฐ ํ์)
- ์๋๋ ์คํจ๋ ์๋ฌ๋ก ์ฒ๋ฆฌ๋๋ฏ๋ก, ์ค๋ฅ์ ์๋ฏธ๊ฐ ๋ถ๋ช
ํํด์ง ์ ์์
Result ๊ฐ์ฒด ๋ฐํ ๋ฐฉ์
์ฅ์ :
- ์ฑ๊ณต/์คํจ ์ฌ๋ถ๋ฅผ ๋ช
์์ ์ผ๋ก ๋ถ๊ธฐ ๊ฐ๋ฅ
- ์ํ ์ฝ๋ ๊ธฐ๋ฐ์ผ๋ก ๋ค์ํ ์ํฉ์ ๋ง๋ UX ํผ๋๋ฐฑ ์ฒ๋ฆฌ ์ฉ์ด
- ์๋ฌ๋ฅผ ์์ธ๊ฐ ์๋ ๋ฐ์ดํฐ๋ก ๋ค๋ฃธ์ผ๋ก์จ ๋ก์ง ์์ธก ๊ฐ๋ฅ
- ์ปดํฌ๋ํธ์์ try-catch ์์ด ๋ก์ง ๋ถ๊ธฐ ๊ฐ๋ฅ (์ฝ๋ ๊ฐ๊ฒฐ)
๋จ์ :
- ๋ชจ๋ API ์์ฒญ ํจ์๊ฐ ๋์ผํ ํ์์ ๋ฐํํด์ผ ํ๋ฏ๋ก ์ฝ๋ ํต์ผ์ฑ ํ์
- ์๋ฌ ์ถ์ ์ try-catch๋ณด๋ค ๋๋ฒ๊น
์ด ์ด๋ ต๊ฒ ๋๊ปด์ง ์ ์์
- ์ฑ๊ณต/์คํจ ๋ถ๊ธฐ ์ฝ๋๊ฐ ๋ฐ๋ณต์ ์ผ๋ก ์์ฑ๋์ด ์ฅํฉํด์ง ์ ์์
์ปค์คํ
ํ
์ฅ์ :
- ๋ก๋ฉ/์๋ฌ/์ฑ๊ณต ์ํ๋ฅผ ํ๋์ ํ
์์ ํตํฉ ๊ด๋ฆฌ ๊ฐ๋ฅ
- ๋ฐ๋ณต๋๋ ์ํ ๊ด๋ฆฌ ๋ก์ง์ ์ฌ์ฌ์ฉ ๊ฐ๋ฅ
- ์ปดํฌ๋ํธ๋ UI์๋ง ์ง์คํ๊ณ , ๋ฐ์ดํฐ ๋ก์ง์ ํ
์์ ๋ถ๋ฆฌ ๊ฐ๋ฅ (๊ด์ฌ์ฌ ๋ถ๋ฆฌ)
๋จ์ :
- ํ
์ค๊ณ๊ฐ ๋ณต์กํ ์ ์์ (์์กด์ฑ, ๋ด๋ถ ํ๋ฆ ๋ฑ ์ค๊ณ ๊ณ ๋ฏผ ํ์)
- ์์ ํ๋ก์ ํธ์์๋ ๋์
๋น์ฉ์ด ํด ์ ์์
- ๋น๋๊ธฐ ๋ก์ง์ด ํ
๋ด๋ถ์ ์จ๊ฒจ์ ธ ์์ด ํ๋ฆ ์ถ์ ์ด ์ด๋ ค์์ง ์ ์์
React Query
์ฅ์ :
- ์บ์ฑ, ์ํ ๊ด๋ฆฌ, ๋ฆฌํ์นญ, ์๋ฌ ์ฒ๋ฆฌ๊น์ง ์๋ํ
- isLoading, isError, data, error ๋ฑ์ ์ํ๋ฅผ ์ฆ์ ํ์ฉ ๊ฐ๋ฅ
- refetch, onSuccess, onError, onSettled ๋ฑ ๋น๋๊ธฐ ํ๋ฆ์ ์ธ๋ฐํ๊ฒ ์ ์ด ๊ฐ๋ฅ
- ์๋ฒ ์ํ ๊ด๋ฆฌ๋ฅผ ์ ์ญ์ ์ผ๋ก ์ฒ๋ฆฌ ๊ฐ๋ฅ
๋จ์ :
- ๊ฐ๋
์ด ๋ง์ ๋ฌ๋ ์ปค๋ธ๊ฐ ์์ (QueryKey, QueryClient ๋ฑ)
- ํ๋ก์ ํธ ์ด๊ธฐ ๋จ๊ณ์์๋ ๊ณผํ ์ค์ ์ผ ์ ์์
- React Query ์์ฒด ๋์๊ณผ ์ถฉ๋ ์ ๋๋ฒ๊น
์ด๋ ค์์ด ์์
Fandom-K ํ๋ก์ ํธ์์๋ ์์ฒญ ํ๋ฆ์ ๋จ์ํํ๊ณ ๋น ๋ฅด๊ฒ ๊ตฌํํ๊ธฐ ์ํด fetch + try-catch + response.ok ๊ธฐ๋ฐ์ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ด๋ ๋จ๊ธฐ๊ฐ์ ์๊ท๋ชจ ํ ํ๋ก์ ํธ๋ผ๋ ์ํฉ์์ ๋น ๋ฅธ ๊ฐ๋ฐ๊ณผ ์ง๊ด์ ์ธ ๊ตฌํ์๋ ์ ํฉํ์ง๋ง, ์ํ๋ณ ๋ถ๊ธฐ ์ฒ๋ฆฌ์ ์ ์ฐ์ฑ ๋ถ์กฑ๊ณผ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๊ตฌ์กฐ ์ค๊ณ์ ์ด๋ ค์์ด๋ผ๋ ํ๊ณ๋ฅผ ๋๊ผ์ต๋๋ค.
ํนํ ๋จ์ํ ํ๋ก์ ํธ์ผ์๋ก ์์ฒญ ์ฑ๊ณต ์ฌ๋ถ ์ธ์๋ 400, 409์ ๊ฐ์ HTTP ์ํ์ ๋ฐ๋ผ ๋ช ํํ ์ฌ์ฉ์ ํผ๋๋ฐฑ(UI ๋ถ๊ธฐ)์ด ํ์ํ๋ฏ๋ก, ๋จ์ผ catch ๋ธ๋ก์์ ๋ชจ๋ ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ์๋ณด๋ค๋ try-catch ๊ตฌ์กฐ ์์ Result ๊ฐ์ฒด ํจํด์ ํจ๊ป ํ์ฉํด ์ํ๋ณ ๋ถ๊ธฐ ์ฒ๋ฆฌ๋ฅผ ๋ช ํํ ํ๋ ๊ฐ์ ์ด ํ์ํ๋ค๊ณ ํ๋จํ์ต๋๋ค.
์์ผ๋ก๋ axios, ์ธํฐ์ ํฐ, ์ปค์คํ ํ , Result ๊ฐ์ฒด ํจํด ๋ฑ์ผ๋ก API ์์ฒญ ๋ก์ง์ ๊ตฌ์กฐํํ๊ณ ์ ์ญ์ ์ผ๋ก ์ผ๊ด๋ ์๋ฌ ํธ๋ค๋ง ์ฒด๊ณ๋ฅผ ๊ตฌ์ฑํ์ฌ, UX์ ์ ๊ตํจ๊ณผ ์ ์ง๋ณด์์ฑ๊น์ง ํ๋ณดํ ์ ์๋ ๋ฐฉํฅ์ผ๋ก ๋ฐ์ ์ํค๊ณ ์ ํฉ๋๋ค.
๋ฌธ์ (4) - ํฌํ ํ ์ํ ๋ฐ์์ ์ํ window.location.reload() ์ฒ๋ฆฌ
1. ๋ฌธ์
ํฌํ๋ฅผ ์๋ฃํ๋๋ผ๋ ์ฐจํธ ๋ฐ์ดํฐ์ ์ฆ์ ๋ฐ์๋์ง ์์๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์ ์ ์ฅ์์ "์ ์์ ์ผ๋ก ํฌํ๊ฐ ๋์๋์ง" ํ์ธ์ด ์ด๋ ค์ ์ต๋๋ค. ์ด๋ ํผ๋๋ฐฑ ๋ถ์กฑ์ผ๋ก ์ธํ UX ์์ค๋ก ์ด์ด์ก์ต๋๋ค.
2. ํด๊ฒฐ๋ฐฉ์
ํฌํ ์ฑ๊ณต ์ window.location.reload()๋ฅผ ํธ์ถํ์ฌ ํ์ด์ง ์ ์ฒด ์๋ก๊ณ ์นจ์ผ๋ก ๋ฐ์ดํฐ ๊ฐฑ์ ํ์ต๋๋ค.
3. ๊ฒฐ๊ณผ
์ ์ ๋ฐ์ ์ฌ๋ถ๋ฅผ ์ฆ์ ํ์ธํ ์ ์๋๋ก UX ํ๋ฆ์ ๋ณด์ํ์ง๋ง, ํ์ด์ง ์ ์ฒด ๋ฆฌ๋ก๋๋ ๋นํจ์จ์ ์ด๊ณ ์ฌ์ฉ์ ๊ฒฝํ ์ธก๋ฉด์์๋ ์ ํ์ ์ธ ๋ฐฉ์์ด์์ต๋๋ค.
→ ๊ฐ์ ๋ฐฉํฅ : ์ํ ๊ธฐ๋ฐ์ผ๋ก ํฌํ ์ฑ๊ณต ์ ์ฐจํธ ๋ฐ์ดํฐ๋ง refetchํ์ฌ ์๋ก๊ณ ์นจ ์์ด ์ค์๊ฐ ๋ฐ์๋๋๋ก ๊ฐ์ ํ์
๐ ๋ฐฐ์ด ์ /๋๋ ์
1. ์ฌ์ฉ์ ๊ฒฝํ(UX)์ ๋ํ ๊ณ ๋ฏผ์ ์ค์์ฑ
๋จ์ํ ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ๋ฐ์ ๋๋๋ ๊ฒ์ด ์๋๋ผ, ์ฌ์ฉ์๊ฐ ์ด๋ค ํ๋ฆ์ผ๋ก ํ๋ฉด์ ์ฌ์ฉํ ์ง, ํฌํ๋ฅผ ํ ๋ ์ด๋ค ์ ๋ณด๋ฅผ ๋ณด๊ณ ์ถ์์ง, ์คํจํ์ ๋ ์ด๋ค ์๋ด๊ฐ ํ์ํ์ง ๋ฑ ์ฌ์ฉ์ ์ ์ฅ์์ ๊ณ ๋ฏผํ๋ฉด์ ๊ฐ๋ฐํ๋ ๊ฒ์ด ์ผ๋ง๋ ์ค์ํ์ง ๋๊ผ์ต๋๋ค. ํนํ 'ํฌํํ๊ธฐ' ๋ฒํผ ์์น, ๋ชจ๋ฌ ๊ตฌ์ฑ, ํฌ๋ ๋ง ๋ถ์กฑ ์๋ฆผ ๋ฑ์ ์ง์ ๊ฒฝํํ๊ณ ํ ์คํธํ๋ฉด์ ๋ฐ๋ณต์ ์ผ๋ก ๊ฐ์ ํ ์๋ฐ์ ์์์ต๋๋ค.
2. ์ํ ๊ด๋ฆฌ์ ๊ตฌ์กฐํ์ ํ์์ฑ
์ด๋ฒ ํ๋ก์ ํธ์์๋ try-catch๋ฅผ ์ฌ์ฉํ์ฌ API ์์ฒญ ์ค ๋ฐ์ํ ์ ์๋ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ์ต๋๋ค. ํ์ง๋ง ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์ ๋ค์ด ๋ฐ๋ณต์ ์ผ๋ก ๋ฐ์ํ์ต๋๋ค. API ํธ์ถ ์ฝ๋๊ฐ ์ฌ๋ฌ ๊ณณ์ ํฉ์ด์ ธ ์์ด ์ค๋ณต ๋ก์ง์ด ๋ง๊ณ , ์ ์ง๋ณด์๊ฐ ์ด๋ ค์ ์ผ๋ฉฐ, ์๋ฌ๊ฐ ๋ฐ์ํ์ ๋ ์ํ์ ๋ฐ๋ฅธ UI ๋ถ๊ธฐ ์ฒ๋ฆฌ๊ฐ ๋ฏธํกํ๊ณ ๋ก๋ฉ ์ค ์ํ์ ์คํจ ์ํ๋ฅผ ๊ตฌ๋ถํ์ง ๋ชปํด ํ๋ฆ์ด ๋ณต์กํด์ก์ต๋๋ค. ๋ํ alert()์ด๋ console.log()๋ก๋ง ์๋ฌ๋ฅผ ํ์ธํ๋ ๋ฑ ํผ๋๋ฐฑ ๋ฐฉ์์ด ๋จ์ํ๊ณ ํ์ ์ ์ด์์ต๋๋ค.
์์ธ ์ฒ๋ฆฌ๋ ๋์์ง๋ง, ๊ฐ ์ปดํฌ๋ํธ๋ง๋ค ๊ฐ๋ณ์ ์ผ๋ก API ํธ์ถ๊ณผ ์๋ฌ ์ฒ๋ฆฌ๋ฅผ ํ๋ค ๋ณด๋ ์ ์ฒด์ ์ธ ์ฝ๋ ์ผ๊ด์ฑ์ด ๋ถ์กฑํ๊ณ , ํนํ ๋คํธ์ํฌ ์ง์ฐ์ด๋ ๋ฐฑ์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ ๋ ๋ฌธ์ ํด๊ฒฐ์ด ์ด๋ ต๊ณ ๋๋ฒ๊น ์ด ๋ฐ๋ณต์ ์ผ๋ก ํ์ํ์ต๋๋ค.
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด API ์์ฒญ ๋ก์ง์ ๊ธฐ๋ฅ ๋จ์๋ก ๋ชจ๋ํํ์ฌ /services/RankApi.js ํ์ผ์ ๋ฐ๋ก ๋ถ๋ฆฌํด ๊ด๋ฆฌํ์ต๋๋ค. ๊ฐ ์์ฒญ ํจ์๋ fetch ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ฑํ๊ณ , response.ok๋ฅผ ํตํด HTTP ์ํ๋ฅผ ์ฒดํฌํ ๋ค, try-catch๋ก ์์ธ๋ฅผ ์ฒ๋ฆฌํ๊ณ response.json()์ผ๋ก ํ์ฑํ๋ ๊ตฌ์กฐ๋ก ํต์ผํ์ต๋๋ค. ์ด์ฒ๋ผ API ์์ฒญ ์ฝ๋๋ฅผ ํ ๊ณณ์ ๋ชจ์๋์ ์ปดํฌ๋ํธ์์๋ ๊ฐ๋จํ๊ฒ ํจ์๋ง ํธ์ถํ๋ ๋ฐฉ์์ผ๋ก ๊ตฌํํ ์ ์๊ฒ ๋์๊ณ , ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ด ํฌ๊ฒ ํฅ์๋์์ต๋๋ค.
๋ํ, ์ปค์คํ ํ ์ ์ฌ์ฉํ ๊ฒฝํ์ ์ ํ์ ์ด์์ผ๋ฉฐ, ํ๋ก์ ํธ ์ ์ฒด์์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ ์ปค์คํ ํ ์ ๋ฐ์ํ ์ฒ๋ฆฌ๋ฅผ ์ํ useWindowSize ํ๋๋ฟ์ด์์ต๋๋ค. ์ด ํ ์ ๋ทฐํฌํธ ํฌ๊ธฐ์ ๋ฐ๋ผ ํ์ด์ง ์ํ(MOBILE, TABLET, DESKTOP)๋ฅผ ๊ตฌ๋ถํ๋ ์ฉ๋๋ก ์ฌ์ฉ๋์์ผ๋ฉฐ, API ํธ์ถ์ด๋ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํ ๊ตฌ์กฐํ๋ ์ปค์คํ ํ ์ ๋์ ํ์ง ๋ชปํ์ต๋๋ค.
์ด ๊ฒฝํ์ ํตํด API ์์ฒญ ํ๋ฆ์ ์ปดํฌ๋ํธ ๋ฐ๊นฅ์ผ๋ก ๋ถ๋ฆฌํ๊ณ ๊ณตํตํํ๋ ๊ตฌ์กฐ์ ์ค์์ฑ์ ํฌ๊ฒ ๋๊ผ์ต๋๋ค. ๋ค์ ํ๋ก์ ํธ์์๋ API ์์ฒญ์ axios ๊ธฐ๋ฐ์ผ๋ก ์ ํํ๊ณ ์์ฒญ/์๋ต ์ธํฐ์ ํฐ๋ฅผ ํ์ฉํ๊ฑฐ๋, ์ปค์คํ ํ ์ ํตํด isLoading, error ์ํ๋ฅผ ํ ๊ณณ์์ ๊ด๋ฆฌํ ์ ์๋ ๊ตฌ์กฐ๋ฅผ ์ค๊ณํด๋ณด๊ณ ์ ํฉ๋๋ค. ์ด๋ฌํ ๊ตฌ์กฐํ๋ ์ฝ๋ ๊ฐ์ ์ ๋์ด์ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ์ฑ๊ณผ ํ์ ํจ์จ์ฑ๊น์ง ๋์ฌ์ค ์ ์๋ ์ค์ํ ๊ฐ๋ฐ ์ต๊ด์์ ์ฒด๊ฐํ์ต๋๋ค.
3. ํ์ ์ ์ด๋ ค์๊ณผ ์ฑ ์๊ฐ
๊ธฐํ ๋น์ ์ญํ ์ ๋๋ ์งํํ์ง๋ง, ์ค๋์ ํ์์ด ๋น ์ง๋ ์ํฉ์ด ๋ฐ์ํ๋ฉด์ ๊ธฐ๋๋งํผ ์ผ์ด ์งํ๋์ง ์๋ ์ํฉ์์๋ ์ ์ฐํ๊ฒ ๋์ฒํ๋ ๋ฅ๋ ฅ์ ์ค์์ฑ์ ์ฒด๊ฐํ์ต๋๋ค. ๋น๋ก ์ง์ ๊ตฌํํ์ง ์๋๋ผ๋, ํ์์ด ๋งก์ ๊ธฐ๋ฅ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ๊ตฌ์กฐ๋ฅผ ์ดํดํ๊ณ ์์ด์ผ ๋น์์์ ๋น ๋ฅด๊ฒ ์ธ๊ณ๋ฐ๊ณ ๋์ํ ์ ์๋ค๋ ๊ฑธ ๋๊ผ์ต๋๋ค.
๐ข ์์ฌ์ด ์
1. ๋น์ฆ๋์ค ๋ก์ง๊ณผ API ๊ตฌ์กฐ์ ๋ํ ์ฌ์ ์ดํด ๋ถ์กฑ
์ด๊ธฐ์๋ Swagger ๋ฌธ์๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ธฐ๋ฅ์ ๊ตฌํํ์ง๋ง, ๋ฐฑ์๋ API์ ์ฌ์ฉ ๋ฐฉ์์ด๋ ์๋ต ๊ตฌ์กฐ๋ฅผ ๋ช ํํ ์ดํดํ์ง ๋ชปํ ์ฑ ๊ฐ๋ฐ์ ์์ํด ์ด๋ฐ์ ์๊ฐ์ด ๋ง์ด ์์๋์์ต๋๋ค. ์์ผ๋ก๋ ๊ฐ๋ฐ ์ API ๋ช ์ธ์ ํ๋ฆ์ ๋ํด ์ข ๋ ๊น๊ฒ ์ดํดํ๊ณ ์์ํ๋ ์ต๊ด์ด ํ์ํ๋ค๊ณ ๋๊ผ์ต๋๋ค.
2. ํฌํ ๊ฒฐ๊ณผ ์ค์๊ฐ ๋ฐ์ ๋ฏธํก
ํฌํ ํ ์ฐจํธ์ ๋ฐ์๋๋ ๋ด์ฉ์ด ์ฆ์ ํ์ธ๋์ง ์์, ํ์ด์ง ์ ์ฒด๋ฅผ ์๋ก๊ณ ์นจํ๋ ๋ฐฉ์(window.location.reload)์ผ๋ก ์ฒ๋ฆฌํ์ต๋๋ค. ์ด๋ UX์ ์ฑ๋ฅ ๋ชจ๋์์ ํ๊ณ๊ฐ ์๋ ๋ฐฉ์์ด์๊ณ , ์ฒ์๋ถํฐ ์ํ ๊ธฐ๋ฐ ๋ฆฌ๋ ๋๋ง ๊ตฌ์กฐ๋ก ์ค๊ณํ๋๋ผ๋ฉด ๋ ์์ฐ์ค๋ฝ๊ณ ํจ์จ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์์ ๊ฒ์ ๋๋ค.
3. ํ ์คํธ ๋ฐ QA๊ฐ ๋ถ์กฑํ๋ ์
ํ๋ก์ ํธ ํ๋ฐ๋ถ์๋ ์ผ์ ์ ์ซ๊ฒจ ์ถฉ๋ถํ QA๋ ์ฌ์ฉ์ ํ
์คํธ๋ฅผ ๊ฑฐ์น์ง ๋ชปํ๊ณ ๋ฐฐํฌ๋ ๋ถ๋ถ์ด ์์์ต๋๋ค. ๊ธฐ๋ฅ์ ์ผ๋ก๋ ๊ตฌํ๋์์ง๋ง, ๋ค์ํ ๋ธ๋ผ์ฐ์ ๋ ๋ชจ๋ฐ์ผ ํ๋ฉด์์์ ํ
์คํธ ๋ถ์กฑ์ผ๋ก ์ธํด UI๊ฐ ๊นจ์ง๋ ๋ฑ์ ๋ฌธ์ ๊ฐ ์์๊ณ , ์ดํ ์์ ์ด ํ์๊ฐ ์๋ค๊ณ ๋๊ผ์ต๋๋ค.
๋ค์ ํ๋ก์ ํธ์์๋ ํ
์คํธ ๊ณํ๋ ๊ฐ๋ฐ ์ด๊ธฐ๋ถํฐ ๊ฐ์ด ์ธ์ฐ๊ณ , ์ฌ์ ๋ฅผ ํ๋ณดํ๋ ๋ฐฉํฅ์ผ๋ก ๊ด๋ฆฌํด์ผ๊ฒ ๋ค๊ณ ๋๊ผ์ต๋๋ค.
4. ์ปค๋ฐ ๋ฐ ์ฝ๋ ๋ฆฌ๋ทฐ ์ต๊ด ๋ถ์กฑ
์ฒซ ํ ํ๋ก์ ํธ์ด๋ค ๋ณด๋, ์ปค๋ฐ ๋ฉ์์ง ๊ด๋ฆฌ๋ PR(PR ์์ฒญ)์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ฌ๋ฆฌ๋ ์ต๊ด์ด ์ ๋๋ก ์กํ ์์ง ์์์ต๋๋ค. ๊ฐ์ ๋งก์ ๊ธฐ๋ฅ ๊ตฌํ์ ์ง์คํ๋๋ผ ์ฝ๋ ๋ฆฌ๋ทฐ ๋ฌธํ๋ ์ ์ ์ฐฉ๋์ง ๋ชปํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ ์ฝ๋ ์ ๋ฐ์ ๋ํ ํ์ ๊ฐ์ ์ดํด๋๊ฐ ๋ถ์กฑํด์ง๋ ์ํฉ๋ ๋ฐ์ํ์ต๋๋ค.
ํนํ ์ ๋ ์์ ์ ๋ชฐ์ ํ๋๋ผ PR์ ๊ณํํ ๋งํผ ์์ฃผ ์ฌ๋ฆฌ์ง ๋ชปํ๊ณ , ํ์๋ค๊ณผ ์งํ ์ํฉ์ ์ถฉ๋ถํ ๊ณต์ ํ์ง ๋ชปํ ์ ์ด ์์ฌ์์ผ๋ก ๋จ์์ต๋๋ค. ์์ผ๋ก๋ ์์ ์ ์ผ์ ํ ๋จ์๋ก ๋๋์ด PR์ ๋ ์์ฃผ ์ฌ๋ฆฌ๊ณ , ์ฃผ๊ธฐ์ ์ผ๋ก ์งํ ์ํฉ์ ๊ณต์ ํ๋ ์ต๊ด์ ๋ค์ด๋ ค ํฉ๋๋ค. ๋ ๋์ ํ์ ์ ์ํด ์ฝ๋ ๋ฆฌ๋ทฐ ์ฐธ์ฌ๋ ์์์ ์ผ๋ก ์ฑ๊ฒจ์ผ ํ๋ค๋ ํ์์ฑ์ ๊ฐํ๊ฒ ๋๊ผ์ต๋๋ค.
5. ์ฑ๊ณผ ์ ๋ฌ๋ ฅ ๋ถ์กฑ
๋ค๋ฅธ ํ๋ค์ ๋ฐํ๋ฅผ ๋ณด๋ฉฐ, ๋จ์ํ ๊ธฐ๋ฅ์ ์ ๊ตฌํํ๋ ๊ฒ๋ฟ๋ง ์๋๋ผ ๊ณผ์ ๊ณผ ๋ฌธ์ ํด๊ฒฐ์ ํ๋ฆ์ ๋ช ํํ๊ฒ ์ค๋ช ํ๊ณ , ๊ฒฐ๊ณผ๋ก ๋์ถํ ์ธ์ฌ์ดํธ๋ฅผ ์ ๋ฌํ๋ ๋ฅ๋ ฅ๋ ์ค์ํ๋ค๋ ๊ฑธ ์ค๊ฐํ์ต๋๋ค. ์ ํฌ ํ์ ๊ธฐ์ ์ ๊ตฌํ์ ์น์คํ๋ค ๋ณด๋, ์งํ ๊ณผ์ ์ด๋ ์ฑ๊ณผ๋ฅผ ์ ๋ฆฌํด ๋ฐํํ๋ ๋ฐ์๋ ๋ค์ ๋ถ์กฑํ ๋ฉด์ด ์์์ต๋๋ค. ๋ค์ ํ๋ก์ ํธ์์๋ ๊ตฌํ๊ณผ์ ๋ฟ๋ง ์๋๋ผ, ์ ์ด๋ฐ ๊ฒฐ์ ์ ๋ด๋ ธ๋์ง, ์ด๋ค ๋ฌธ์ ๋ฅผ ์ด๋ป๊ฒ ํ์๋์ง๋ฅผ ์ ๋ฆฌํ๊ณ ํจ๊ณผ์ ์ผ๋ก ๋ฐํํ๋ ํ๋ จ์ ๋ณํํ ์์ ์ ๋๋ค.
6. ๊ณตํต ์ปดํฌ๋ํธ ์ค๊ณ ๋ถ์กฑ
ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉฐ UI ์์๋ ๊ธฐ๋ฅ์ด ์ค๋ณต๋๋ ๊ฒฝ์ฐ๊ฐ ์์์ง๋ง, ๊ณตํต ์ปดํฌ๋ํธ๋ก ์ถ์ํํ์ง ์๊ณ ๊ฐ์ ๊ฐ๋ณ์ ์ผ๋ก ๊ตฌํํ๋ ์ผ์ด ๋ง์์ต๋๋ค.
์๋ฅผ ๋ค์ด ๋ฒํผ, ์นด๋, ๋ฆฌ์คํธ ํญ๋ชฉ ๋ฑ์ ๊ตฌ์กฐ์ ์คํ์ผ์ด ์ ์ฌํ์ง๋ง ํ์๋ง๋ค ๊ฐ์ ์๋กญ๊ฒ ์ปดํฌ๋ํธ๋ฅผ ๋ง๋ค๋ฉด์ ์ค๋ณต ์ฝ๋๊ฐ ๋ฐ์ํ๊ณ , ์คํ์ผ๋ ์ผ๊ด๋์ง ์์์ต๋๋ค. ์ด๋ก ์ธํด ์์ ์ด ํ์ํ ๊ฒฝ์ฐ ๋ชจ๋ ์ปดํฌ๋ํธ๋ฅผ ๊ฐ๋ณ์ ์ผ๋ก ๊ณ ์ณ์ผ ํ๋ ๋นํจ์จ๊ณผ UI ์ผ๊ด์ฑ ์ ์ง๊ฐ ์ด๋ ต๋ค๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
7. ํ ํ์ ์ฐธ์ฌ ๋ถ์กฑ์ผ๋ก ์ธํ ํ์ ์ด๋ ค์
ํ๋ก์ ํธ ์งํ ์ค ์ ๊ธฐ์ ์ธ ํ ํ์์ ๋๋ถ๋ถ์ ํ์๋ค์ด ์ ์ฐธ์ฌํ์ง ์์๊ณ , ์ค์ ํ์์๋ ํ์ฅ๊ณผ ์ ๋ง ์ฐธ์ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ต๋๋ค. ํ์ ์ฐธ์ฌ๋๊ฐ ๋ฎ๋ค ๋ณด๋ ๊ธฐํ์ด๋ ์งํ ์ํฉ์ ํจ๊ป ์ ๋ฆฌํ๊ณ ๊ณต์ ํ๊ธฐ๊ฐ ์ด๋ ค์ ๊ณ , ๊ฒฐ์ ๋ํ ์ํํ๊ฒ ์ด๋ฃจ์ด์ง์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์์ต๋๋ค.
ํนํ, ์ค๋์ ํ ๋ช ์ด ํ์์ ํ์ฐจํ๋๋ฐ, ํด๋น ํ์์ด ํ๋ฐ๋ถ์ ํ์ฐจ ํ์์๋ ์ด๋๊น์ง ๊ตฌํํ๋์ง ์ ํ ํ์ ํ ์ ์๋ ์ํ์๊ณ , ๋ค๋ฅธ ํ์๋ ํ๋ก์ ํธ ํ๋ฐ๊น์ง ํ์์ ๊ฑฐ์ ์ฐธ์ฌํ์ง ์์ ์ฝ์ด๋ฐ์ด(๊ณต๋ ์์ ์ผ)์๋ ๋ชจ์ต์ ๋ณด์ด์ง ์์์ต๋๋ค. ์ด๋ก ์ธํด ์ต์ข ์ ์ผ๋ก ์์ ๋ฌผ์ ๋จธ์งํ๋ ๊ณผ์ ์์ ์ถฉ๋์ ๋ฐฉ์งํ๊ณ ์ผ๊ด๋ ์ฝ๋ ํ๋ฆ์ ์ ์งํ๋ ๋ฐ ์ด๋ ค์์ด ์์๊ณ , ํ์ ์ผ๋ก์์ ์์ฑ๋๋ฅผ ๋์ด๋ ๋ฐ์๋ ์ ์ฝ์ด ์์์ต๋๋ค.
๋ค์ ํ์ ํ๋ก์ ํธ์์๋ ์ด๊ธฐ๋ถํฐ ํ์ ์ฐธ์ฌ์จ ๊ด๋ฆฌ์ ์ญํ ๋ถ๋ด ๋ช ํํ, ๊ทธ๋ฆฌ๊ณ ์ฃผ๊ธฐ์ ์ธ ์์ ๊ณต์ ๋ฅผ ์ต๊ดํํ์ฌ ํ ์ ์ฒด๊ฐ ํ๋์ ๋ฐฉํฅ์ผ๋ก ์์ง์ผ ์ ์๋๋ก ์ฒด๊ณ๋ฅผ ๊ฐ์ถ๋ ๋ฐ ๋ ์ ๊ฒฝ ์ฐ๊ณ ์ ํฉ๋๋ค.
'์ฝ๋์ ์คํ๋ฆฐํธ ํ๋ก ํธ์๋ 11๊ธฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ๊ณ ๊ธ ํ๋ก์ ํธ: GlobalNomad (0) | 2025.03.21 |
|---|---|
| ์ค๊ธ ํ๋ก์ ํธ: Linkbrary (0) | 2025.03.21 |
| [์ฝ๋์] ํ๋ก ํธ์๋ 11๊ธฐ ์ง์ (0) | 2025.03.18 |