- ํ๋ก์ ํธ ์ฃผ์ : ์๋ฐ ์์ฝ ์น์๋น์ค ๊ตฌํ ํ๋ก์ ํธ
- ํ๋ก์ ํธ ๊ธฐ๊ฐ : 11์ 20์ผ(์) ~ 12์ 01์ผ(๋ชฉ)
- ์ฃผ์ ๋ชฉํ : UI/UX ์์ , React.js ๊ธฐ๋ฐ ์ปดํฌ๋ํธ ๋จ์ ๊ตฌ์กฐ ์ค๊ณ, API ๋ช ์ธ์์ ๋ฐ๋ฅธ JSON ๋ฐ์ดํฐ ํ๋ฉด ์ถ๋ ฅ, ๋ฌดํ ์คํฌ๋กค
์๋ ํ์ธ์:smiley:
๋๋ ค 7์กฐ์ ์๋ฐ ์์ฝ ํ๋ก์ ํธ ๐ป ์น ํ์ด์ง ์ ๋๋ค
์ ํฌ ํ์ ํ๋ก ํธ์๋ 4๋ช ๋ฐฑ์๋ 4๋ช ์ผ๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
๋ฐฑ์๋๋ ์ด๊ณณ์ ํด๋ฆญํด ์ฃผ์ธ์
![]() |
![]() |
![]() |
![]() |
| ๊น์ง๋ฏผ | ์์ฌํ | ์ ํจ์ฃผ | ๊น์ฑ๊ฒธ |
๊น์ง๋ฏผ
- ์์ ์์ธ ํ์ด์ง
- ๊ฐ์ค ์์ธ ํ์ด์ง
- ๋ฌ๋ ฅ ๋ชจ๋ฌ ๋ฐ ๋ ์ง ์ ํ ๊ธฐ๋ฅ ๊ตฌํ
- Kakao map API ์ฐ๊ฒฐ
- ์์ ์กฐํ API ์ฐ๊ฒฐ
- ๊ฐ์ค ์กฐํ API ์ฐ๊ฒฐ(๋ ์ง, ์ธ์์์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋ API ์์ฒญ ๋ฐ ๊ฐ์ค ์ํ์ ๋ฐ๋ฅธ ๋์์ธ ๋ณ๊ฒฝ)
- ๊ฐ์ค ์์ธ ์กฐํ API ์ฐ๊ฒฐ
- ์ฅ๋ฐ๊ตฌ๋ ๋ด๊ธฐ API ์ฐ๊ฒฐ
- ๊ฒ์ ํ์ด์ง
- API ํ ์คํ
vercel์ ๋ฐฐํฌ ํ CORS ์๋ฌ
๊ทธ๋์ http ํต์ ์ด์๋ค๊ฐ vercel์ ๋ฐฐํฌํ๋ฉด์ ์๋์ผ๋ก https๋ก ๋ฐฐํฌ๊ฐ ๋๋ ๋ฐ๋์
๋ ํ๋ฒ CORS ์๋ฌ๊ฐ ๋ด๋ค.
์๋ฒ ์ธก์์ ํด๊ฒฐ ํด ์ฃผ์
จ์ง๋ง ๋ค์ ๋ฒ์ ๋จผ์ https๋ก ํต์ ์ด ๋๊ฒ๋ ํ์ํด์ผ๊ฒ ๋ค๊ณ ์๊ฐํ๊ณ ๋ ์ฐพ์๋ณด๋๊น proxy ์๋ฒ๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ก ํธ์๋ ๋ด์์๋ ํด๊ฒฐํ ์ ์๋ค๊ณ ํ๋ค.
์ฅ๋ฐ๊ตฌ๋ ๊ฐ์ค ๋ด๊ธฐํ ๋ ์ ํด์ง ๊ฐ์๋ฅผ ์ด๊ณผํด์ ์ฅ๋ฐ๊ตฌ๋์ ๋ด๋ ์ค๋ฅ
์๋ฒ ์ธก์์ ๋ฐ์์ค๋ status ๊ฐ์ ํตํด ์กด์ฌํ๋ ๊ฐ์ค ์ ์ด์์ผ๋ก ์ฅ๋ฐ๊ตฌ๋ ๋ด๊ธฐ ๋ฒํผ์ ๋๋ฅผ ๊ฒฝ์ฐ alert ์ฐฝ์ด ๋จ๊ฒ ํจ
--
๋ถํธ์บ ํ๋ฅผ ํ๋ฉด์ ์ฒ์์ผ๋ก ๋ฐฑ์๋ ๋ถ๋ค๊ณผ ํ๋ก์ ํธ๋ฅผ ํ์๋ค.
์ฒ์์๋ ์ฝ 2์ฃผ๋ฐ์ ์๋๋ ์๊ฐ์ด๋ผ์ ๊ฐ๋ฅํ ๊น? ์๊ฐํ์ง๋ง ๋ชจ๋๋ค ์ด์ฌํ ํด์ฃผ์ ๋๋ถ์ ์๊ฐ๋ณด๋ค ๊ธ๋ฐฉ ํ ์ ์์๋ค.
Jira๋ฅผ ๊ฐ๋จํ๊ฒ ์์ฑํ์ฌ ์๋ก ์์
๋ด์ฉ์ ๊ณต์ ํ๋๊น ๋ค๋ฅธ ํํธ ๋ถ๋ค์ด ์ด๋ ์ ๋ ์์
๋์ ํ์
จ๋์ง ์๊ธฐ๊ฐ ์์ํด์ ์ข์๋ค.
์ด๋ฒ์๋ tailwind CSS๋ฅผ ์ค๋๋ง์ ๋ค์ ์ฌ์ฉํด ๋ณด์๋๋ฐ ์ญ์ ํธํ๊ณ ์ข์๋ค ๊ทผ๋ฐ ์๋ฌด๋๋ ๊ณตํต์ ์ธ css ๋ฅผ ํ๊ธฐ์ ์กฐ๊ธ ๋ถํธํ ๊ฐ์ด ์์์ ์๋ ๊ฒ ๊ฐ๋ค.
์์ฌ์ด ์ ์ ์ด๋ฒ์๋ ๋จผ์ ๊ณตํต CSS๋ ๊ณตํต ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ์ง ์๊ณ ์ฒ์ ์์
์ ์์ํด์ ์ค๊ฐ์ ํ๋ฒ ์ฝ๋๋ฅผ ์์ ํ ์ ์ด๋ค.
๋ฉํ ๋ ๋ง์๋๋ก ๋ค์๋ฒ์๋ ์์
ํ๊ธฐ ์ ์ ๋์์ธ ๋ฆฌ๋ทฐ๋ฅผ ํ ์๊ฐ์ด๋ค.
์ ๋ง ๋คํ์ธ ๊ฑด ์์ฒญ๋๋ฆฐ ๋ฐ์ดํฐ ๋๋ก ๋น ๋ฅด๊ฒ ์์
ํด์ฃผ์
์ ์๊ฐ์ด ์ด๋ฐํ์ง ์๊ฒ API ๋ฅผ ์ฐ๊ฒฐํด์ ๋ง๋ฌด๋ฆฌ ์์
์ ํ ์ ์์๋ค
๊ทธ๋ฆฌ๊ณ ์ฒ์์ผ๋ก ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋๋ฐ ์ฌํ๋ ๋๋ถ์ ํด๋งค์ง ์๊ณ ์์ฑํ ์ ์์๋ค. !!
ํ์ง๋ง ์๋ฌด๋๋ ์์
์ค๊ฐ์ ํ
์คํธํด๋ณธ๊ฑด ์๋๋ผ์
๋ค์ ํ๋ก์ ํธ๋ ์ค๊ฐ์ค๊ฐ ํ
์คํธ ์ฝ๋๋ฅผ ์์ฑํด๋ณด์์ผ ๊ฒ ๋ค๊ณ ์๊ฐํ๋ค.
๋งค์ผ ํ์๋ฅผ ํ๋ค๋ณด๋ฉด ์ง์น๊ธฐ๋ ํ ํ
๋ฐ ๋ค๋ค ์ด์ ๋์น๊ฒ ์ฐธ์ฌํด์ฃผ์
์ ์ ๋ง ๊ฐ์ฌํฉ๋๋ค :) !!
๊น์ฑ๊ฒธ
- ์์ ๋ชฉ๋ก ์กฐํ ๊ด๋ จ ๋ชจ๋ ์ปดํฌ๋ํธ Skeleton UI ์ ์ฉ
- ์นดํ ๊ณ ๋ฆฌ๋ณ (ํธํ /๋ฆฌ์กฐํธ/ํ์ /ํ๋น๋ผ) ํ์ด์ง
- ์ง์ญ๋ณ ์์ ์ํ ์กฐํ ํ์ด์ง
- ํํฐ๋ง ๊ธฐ๋ฅ : [ ๋ณ์ ๋์ ์, ์์ฝ๊ฐ ๋์ ์, ์์ฝ๊ฐ ๋ฎ์ ์ ]
- ๋ฌดํ ์คํฌ๋กค ๊ธฐ๋ฅ : 4๊ฐ์ฉ ๋ถ๋ฌ์ค๋ฉฐ, ํ๋จ์ ๋์ฐฉํ๋ฉด ์๋ก 4๊ฐ๋ฅผ ๋ถ๋ฌ์ต๋๋ค.
- ์ง๊ธ ์ฌ๋๋ฐ๋ ์ฌํ์ง ํ์ด์ง
- ์ง์ญ ์ ํ ๋ชจ๋ฌ
- ๊ณตํต ํค๋ ์ค์
- ์ํ ์ธ๋ค์ผ์ด ๋ค๋ฅธ ์ํ๊ณผ ๋น์จ์ด ๋ค๋ฅธ ๊ฒฝ์ฐ์ธ ๊ฒฝ์ฐ ์ด๋ฏธ์ง๊ฐ ํ์ด ๋๊ฐ๋ ๋ฒ๊ทธ
- ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ธ๋ div์
overflow: hidden; aspect-ratio: 1์ ์ถ๊ฐํ์ฌ 1:1๋น์จ๋ก ์ธ๋ค์ผ์ ๊ณ ์ ํฉ๋๋ค.
๊ทธ๋ฆฌ๊ณ ์ด๋ฏธ์ง ํ๊ทธ์๋width: 100%; height:100%; object-fit: center;๋ฅผ ์ถ๊ฐํ์ฌ ๋น์จ์ ์งํ๋ฉฐ ๊ฝ ์ฑ์ ์ต๋๋ค.
- ์ํ ์์ธํ์ด์ง์์ ์ฒดํฌ์ธ ๋ ์ง๋ฅผ ๋ฐ๊พธ๊ณ ๋ค๋ก๊ฐ๋ฉด ์ ํํ ๋ ์ง๊ฐ ๋ ์๊ฐ๋ ๋ฒ๊ทธ
- ๊ฒ์์ฐฝ์ from, to๋ผ๋ ํ๋ผ๋ฉํฐ์ ๋ ์ง๋ฅผ ์ ์ฅํด์ ์ฌ์ฉํ๋ ๋ฐฉ์์ ๋ฌธ์ ๋ผ๊ณ ํ๋จ๋์ด์,
recoil์ ์ ์ญ ์ํ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ผ๋ก ๋ณ๊ฒฝํด์ ์ ์ญ ์ํ์ ๋ ์ง๋ฅผ ๋ฐ๋ผ๊ฐ๊ฒ ๋ณ๊ฒฝํ์ต๋๋ค.
์ฌ๋ฌ ํ์๋ค๊ณผ์ ์ํต๊ณผ์ ์์ ์๊ฒฌ ์ถฉ๋์ด ์์์ ๋ ์๋ก ๊ธฐ๋ถ๋์์ง ์๊ฒ ์ ํด๊ฒฐํ๋ ๊ณผ์ ๋ค์ด ์์ด์,
์ ํฌ ํ์๋ค์ ์ปค๋ฎค๋์ผ์ด์
์คํฌ์ด ์ฐธ ์ข์๋ณด์์ต๋๋ค. ์ ๋ ์ํต์ ๋ํด์ ๋ง์ด ๋ฐฐ์ ๋๊ฒ๊ฐ์ต๋๋ค.
๊ทธ๋ฐ์ ๊ธฐ์ ์ ์ผ๋ก ๋ค ๊ฐ์ด ์ข ๋ ์ข์ ๋ฐฉ๋ฒ์ ์ฐพ๊ณ , ๋ฒ๊ทธ๋ ๊ฐ์ด ํด๊ฒฐํ๋ฉด์ ์๋ก์ด ๋ฐฉ๋ฒ๋ ์๊ฒ๋๋ฉฐ
์ ๋ง ๋ง์ ๋ถ๋ถ์์ ๊ณ ๋ฏผํ๊ณ ์ฑ์ฅํด๋ณด๋ ๊ธฐํ๊ฐ ๋์๋๊ฒ๊ฐ์ต๋๋ค.
์์ฌํ
- ๋ก๊ทธ์ธ ํ์ด์ง
- ํ์ ๊ฐ์ ํ์ด์ง
- ๋ง์ด ํ์ด์ง
- ๋ก๊ทธ์ธ validation
- ํ์ ๊ฐ์ validation
- ์ธ์ฆ ๋ฐ ์ธ๊ฐ
- ํ์ ๊ฐ์ ๋ชจ๋ฌ
- ๋ง์ด ํ์ด์ง ๋ ์ง ์ ํ ๋ชจ๋ฌ
- Jest Testing
๋ก๊ทธ์ธ ๋ฐ ํ์ ๊ฐ์ ์ค๋ณต ์์ฒญ ๋ฒ๊ทธ
๋ก๊ทธ์ธ ๋ฐ ํ์ ๊ฐ์
๋ฒํผ์ ์ฌ๋ฌ ๋ฒ ๋๋ฅด๋ฉด ํด๋ฆญ ์ ๋งํผ ์์ฒญ์ด ๋๋ ๊ฒ์ ๋ฐฉ์งํ๊ธฐ ์ํด ํด๋ฆญ ํ swal์ฐฝ์ผ๋ก ๋ง์ผ๋ ค๊ณ ํ์์ต๋๋ค.
ํ์ง๋ง swal์ด ํ์
๋๊ธฐ ์ ๊น์ง์ ์๊ฐ์ด ์์ด ์ฌ๋ฌ ๋ฒ ์์ฒญ๋๋ ๊ฒ์ ์๋ณํ์์ต๋๋ค.
๊ทธ๋์ ์์ฒญ์ ํ๊ธฐ ์ ์ swal์ฐฝ์ ํ์
ํ๋๋ก ์์ ํ ๊ฒฐ๊ณผ ๋ฒํผ์ ๋๋ฅด์๋ง์ swal์ฐฝ์ด ๋ ์ ์ค๋ณต ์์ฒญ์ ๋ฐฉ์งํ ์ ์์์ต๋๋ค.
--
์ค๋๋ง์ ๋ฐฑ์๋์ ํ์
์ ํ๊ฒ ๋์ด ์ฌ๋ฐ๊ณ ์ ์ตํ์์ต๋๋ค.
์ ํฌ ํ ๋ชจ๋๊ฐ ๋ฅ๋ ฅ์ด ์์ผ์ ๋ถ๋ค ๊ฐ์ ๋ค์ํ ๊ธฐ๋ฅ๋ค์ ๊ธฐํ๋ณด๋ค ๋น ๋ฅด๊ฒ ๋ง๋ฌด๋ฆฌ ํ ์ ์์๋ ๊ฒ ๊ฐ์ต๋๋ค.
ํ๋ก์ ํธ ๋งค๋์ง๋จผํธ๋ถํฐ ์ ๋ ํ
์คํ
๊น์ง ์์ฐจ๊ฒ ํ๋ก์ ํธ๋ฅผ ์งํํ ๊ฒ ๊ฐ์ ๋ฟ๋ฏํ์ต๋๋ค.
์ค๋๋ง์ Jest๋ฅผ ์ฌ์ฉํด์ ๋ฒ๋ฒ
์๋๋ฐ ๋ค์ ํ๋ก์ ํธ์์๋ ๊ฐ๋ฐ ์ค๊ฐ ์ค๊ฐ์ ํ
์คํ
์ ์งํํด์ผ ๊ฒ ๋ค๊ณ ์๊ฐํ์์ต๋๋ค.
๋ชจ๋๋ค ๊ณ ์ ๋ง์ผ์
จ์ต๋๋ค !!!
์ ํจ์ฃผ
-
๋ฉ์ธํ์ด์ง
- ํ์ ๋ณ ์์, ์ง์ญ๋ณ ์์ API ์ฐ๊ฒฐ, ๋ฆฌ์กํธ ์ฟผ๋ฆฌ ์ฌ์ฉ
-
์ฅ๋ฐ๊ตฌ๋ ํ์ด์ง
- ์ฅ๋ฐ๊ตฌ๋ ์กฐํ, ์ฅ๋ฐ๊ตฌ๋ ๊ฐ๋ณ ์ญ์ , ์ ์ฒด ์ญ์ API ์ฐ๊ฒฐ
- ์ฒดํฌ๋ฐ์ค๋ฅผ ์ด์ฉํด ์ํ ๊ด๋ฆฌ (ํฉ๊ณ ๊ธ์ก, ์ด ๊ฑด์)
-
๊ฒฐ์ ํ๊ธฐ ํ์ด์ง
- ๊ฒฐ์ ํผ ์ ํจ์ฑ ๊ฒ์ฌ ํ ์๋ฌ ๋ฉ์ธ์ง
- ํ์ ์ด์ฉ ๋์ ํ ๋ฒํผ ํ์ฑํ
- recoil์ ์ด์ฉํด ์ฃผ๋ฌธid ๊ด๋ฆฌ
-
๊ฒฐ์ ์๋ฃ ํ์ด์ง
- ์ฃผ๋ฌธ ์กฐํ API ์ฐ๊ฒฐ
| ์ฅ๋ฐ๊ตฌ๋ ์ฒดํฌ๋ฐ์ค | ์ฅ๋ฐ๊ตฌ๋ ์ญ์ ๊ธฐ๋ฅ |
|---|---|
![]() |
![]() |
| ์ฒดํฌ๋ฐ์ค ์ ํ์ ๋ฐ๋ผ ๊ฒฐ์ ๊ธ์ก๊ณผ ๊ฒฐ์ ๊ฑด์๊ฐ ๋ณ๊ฒฝ | ๊ฐ๋ณ์ญ์ , ์ ์ฒด ์ญ์ ๊ฐ๋ฅ |
| ๊ฒฐ์ ํ๊ธฐ ์ ๋ ฅํผ | ๊ฒฐ์ ํ๊ธฐ ๋ฒํผ ํ์ฑํ |
|---|---|
![]() |
![]() |
| ์์ฝํ๊ธฐ ํผ ์ ํจ์ฑ ๊ฒ์ฌ | ํ์์ฝ๊ด ๋์ ์ ๊ฒฐ์ ํ๊ธฐ ๋ฒํผ ํ์ฑํ |
| ๋ฉ์ธํ์ด์ง | ์์ฝ ๊ฒฐ๊ณผ ํ์ด์ง |
|---|---|
![]() |
![]() |
| ํ์ ๋ณ ์์, ์ง์ญ๋ณ ์์ API ์ฐ๊ฒฐ | ์ฃผ๋ฌธ ์กฐํ API ์ฐ๊ฒฐ |
๋ก๊ทธ์ธ ์ํ์ ๋ฐ๋ฅธ ํ์ด์ง ์ ๊ทผ ์ค๋ฅ
์ฒ์์๋ ์ฅ๋ฐ๊ตฌ๋ ํ์ด์ง์ ๋ค์ด๊ฐ ๋ accessํ ํฐ์ ์ฌ๋ถ๋ฅผ ํ์ธ ํ ์์ผ๋ฉด ์ ๊ทผ ๊ธ์ง๋ก ๊ตฌํํ์์ต๋๋ค.
๊ทธ๋ ๊ฒ ํ๋ค๋ณด๋ ์ฅ๋ฐ๊ตฌ๋ ํ์ด์ง ํ๋ฉด์ด ๋ ๋๋ง ๋ ํ ์ ๊ทผ ๊ธ์ง ์๋์ฐฝ์ ๋์ด์ง๋ ์ค๋ฅ๊ฐ ์๊ฒผ์ต๋๋ค.
์ด๋ฌํ ์ ์ ์ฅ๋ฐ๊ตฌ๋ ๋ฒํผ์ ํด๋ฆญ ํ์ ๋ ๋ก๊ทธ์ธ ์ํ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๋ก์ง์ผ๋ก ์์ ํ์ต๋๋ค.
์ด๋ฒ ํ๋ก์ ํธ๋ ๋ฐฑ์๋์ ์ฒ์ ํ์
ํ๋ ๊ฒฝํ์ด์์ต๋๋ค. ๊ธฐํ๋ถํฐ ํ
์คํ
๋ฐฐํฌ๊น์ง์ ๋ํ ์ ๊ณผ์ ์ ๊ฒฝํํ๋ฉฐ ๋งค์ฐ ์๋ฏธ ์๋ ์๊ฐ์ด์์ต๋๋ค.
์๋ก์ด ์ํ ๊ด๋ฆฌ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ธ recoil๊ณผ react-query๋ฅผ ์ฒ์ ์ฌ์ฉํด ๋ณด๋ฉด์ ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ์บ์ฑ์ ๋ํด ๋ค์ํ ๊ณ ๋ฏผ์ ํ ์ ์์์ต๋๋ค.
์ธ์์ด ์ ์์์๋ ๋ถ๊ตฌํ๊ณ ๋ชจ๋ ํ์๋ค์ด ์ต์ ์ ๋คํด์ฃผ์
์ ๋นจ๋ฆฌ ํ๋ก์ ํธ๋ฅผ ๋ง์น ์ ์์์ต๋๋ค ! ๋๋ฌด ์ฆ๊ฑฐ์ ๊ณ , ๊ฐ์ฌํฉ๋๋ค!
๊น์ง๋ฏผ
- ์ปค์คํ ํ ์์ฑ์ผ๋ก ์ฝ๋ ์ฌ์ฌ์ฉ
- ๋น์ฆ๋์ค ๋ก์ง ๋ถ๋ฆฌ
- ์ค์ผ๋ ํค UI ์์ฑ
๊น์ฑ๊ฒธ
์์ฌ์ ๋ ๋ถ๋ถ์ ์ด๋ฒ KPT๊ธฐ๊ฐ์ ํ์ฉํ์ฌ ๋ณด์ํ์์ต๋๋ค. ์๊ฐ์ด ์์ด์ ์งํํ์ง ๋ชปํ๋ ๋ชจ๋ฐ์ผ ๋ฐ์ํ์ ์งํํ์์ผ๋ฉฐ, ๊ธฐํํ ๋น์ ๋ฃ์ด๋ณด๊ณ ์ถ์๋ ๊ธฐ๋ฅ์ด์์ง๋ง ์๊ฐ์ ์ด๋ ค์ ์งํํ์ง ์์๋ ์์ ๊ณต์ ๊ธฐ๋ฅ, ์ ์ค์์ ์๋ฆผ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์์ต๋๋ค.
- ์ ์ฒด ํ์ด์ง ๋ฐ์ํ ์ ์ฉ
- ๊ธฐ์กด pc๊ธฐ๋ฐ์ผ๋ก ์งํ๋์๋ ๋์์ธ์ ์ ์ฒด์ ์ผ๋ก ๋ชจ๋ฐ์ผ ํ๊ฒฝ์์๋ ์ ๋ณด์ด๊ฒ ๋ฐ์ํ์ ์์ ํ์ต๋๋ค.
- ๋งํฌ/์นด์นด์คํก ๊ณต์ ๊ธฐ๋ฅ
- ๋ค๋ฅธ์ฌ๋์๊ฒ ์์ ์ ๋ณด๋ฅผ ๊ณต์ ํ๊ณ ์ถ์ ๋ ๋งํฌ๋ฅผ ์์ ๋กญ๊ฒ ๊ณต์ ํ๊ฑฐ๋, ์นดํก์ผ๋ก ๋ฉ์์ง๋ฅผ ๋ณด๋ด ๊ณต์ ํ ์์๋ ๊ธฐ๋ฅ์ ์ถ๊ฐํ์์ต๋๋ค.
- ์
์ค์์ ์๋ฆผ ๊ธฐ๋ฅ
- ์ค์ ์ผ๋์์ ์๋ ์ ์ค์์ ์๋ฆผ๊ธฐ๋ฅ์ ๋ชจํฐ๋ธ๋ก ํด์ Web Notification API๋ฅผ ์ฐธ๊ณ ํด์ ๋ธ๋ผ์ฐ์ ์๋ฆผ์ผ๋ก ๊ตฌํํด๋ณด์์ต๋๋ค.
์์ฌํ
- ๋ก๊ทธ์ธ, ํ์๊ฐ์ ์๋ฌ ํธ๋ค๋ง ๋ก์ง ์์
- axios ์ธ์คํด์ค ๋ถ๋ฆฌ
- ๋ง์ดํ์ด์ง ์ธํฐํ์ด์ค ๋ถ๋ฆฌ
์ ํจ์ฃผ
- ํจ์ ์ปดํฌ๋ํธ์ Props ํ์ ์ React.FC ๋์ ์ง์ ๋ช ์ํ์ฌ ์์
- ํ์ ์คํฌ๋ฆฝํธ ๋ถ๋ชจ์ ์์ ๊ฐ์ Props ํ์ ์ ์ผ์น
- ์ค์ผ๋ ํค UI ์์ฑ
๊น์ง๋ฏผ
- ์ด์ ํ๋ก์ ํธ์์๋ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํด ๋ณผ ์ฌ์ ๊ฐ ์์๋๋ฐ ์กฐ๊ธ์ด๋๋ง jest๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํด ๋ณผ ์ ์์ด์ ์ข์์ต๋๋ค.
- Recoil์ ํตํ ์ํ๊ด๋ฆฌ๋ฅผ ๋ณด๋ค ๋ ๊น์ด ์ดํดํ ์ ์์์ต๋๋ค.
- ํ์ฅ์ผ๋ก์ ํ์ ์ด๋ป๊ฒ ์ด๋์ด ๋๊ฐ์ผ ํ๋์ง ์ ์ ์์์ต๋๋ค. ๋ฆฌ๋์ฝ์ ๋ฐฐ์ธ ์ ์์๋ ์ข์ ๊ธฐํ์์ต๋๋ค.
- ๋ฐฑ์๋ ๋ถ๋ค๊ณผ ํ์ ํ์ฌ ์ํตํ๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ธ ์ ์์์ต๋๋ค. ๋งค์ผ ํ์๋ฅผ ํตํด ์ง์ฒ ์ฌํญ์ ์๊ธฐํ๊ณ ๊ณต์ ํ๋ ๋ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐ์ ๋ง๋ฌด๋ฆฌ ํ ์ ์์์ต๋๋ค.
- ์ฝ๋๋ฅผ ์์ฑํ ๋ ์๊ฐ๋ณด๋ค ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋๋ค์ด ๋ง์๋๋ฐ ์ด๋ฅผ ๋์น๊ณ ์ฝ๋๋ฅผ ์์ฑํ๋ ์ ์ด ์์ฌ์ ์ต๋๋ค. ์ดํ ๋ฆฌํฉํ ๋ง์ ์งํํ๋ฉด์ ์ปค์คํ ํ ์ผ๋ก ๋ถ๋ฆฌํ์์ง๋ง ๋ค์ ํ๋ก์ ํธ์์๋ ์ฒ์ ๊ฐ๋ฐ ๋จ๊ณ์์ ๋ ๋์ ์ฝ๋๋ฅผ ์ํด ๊ณ ๋ฏผํด ๋ณด์์ผ ๊ฒ ๋ค๊ณ ์๊ฐํ์ต๋๋ค.
- ์๋ฌด๋๋ ์ ์ ์ธ์์ด๋ค ๋ณด๋ ์ผ๋จ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ ์ถฉ์คํ๊ฒ ์งํํ๊ณ ์ ํ์์ง๋ง ๋์ด์ผ์ ์๊ฐํด๋ณด๋๊น ๋ ๊ธฐ๋ฅ๋ค์ ๋ถ์ฌ์ ์๋ฒฝํ ํ๋ก์ ํธ๋ฅผ ๋ง๋ค์์ผ๋ฉด ํ๋ ์์ฌ์์ด ๋จ์์ต๋๋ค.
- ๊ณตํต ์ปดํฌ๋ํธ๋ฅผ ์ฒ์์ ๋ถ๋ฆฌํ์ง ๋ชปํ๊ฒ์ด ์์ฌ์ ์ต๋๋ค.
๊น์ฑ๊ฒธ
- ์ค๋ฌด์์๋ ์ต์ ๋ฒ์ ์ ์๋ ๊ธฐ๋ฅ์ ์ฌ์ฉ๋ชปํ ์๋ ์๊ธฐ์ ๋ฏธ๋ ํ๋ก์ ํธ๋ฅผ ํตํด์ React ์ต์ ๋ฒ์ ์ ์ถ๊ฐ๋ ๊ธฐ๋ฅ์ ๋์ ํด๋ณธ์ ์ด ์ข์์ต๋๋ค.
- ๋ฐฑ์๋์์ ํ์ ์ ํตํด์ ์ค๋ฌด์ ๊ฐ์ ๋ฐฑ์๋ ๊ฐ๋ฐ์์ ์ํตํ๊ณ ์ํ๋๊ฒ์ ์๊ตฌํ๋ ์ฐ์ต์ ๊ฐ์ ์ ์ผ๋ก ํด๋ณธ ๊ฒฝํ์ ์ป์ด๊ฐ๊ฒ๊ฐ์ต๋๋ค.
- ์ค์ ์์ฝ ์์คํ ์ ๊ตฌ์ถํ ๋ ์ด๋ ํ ์ค๋ฅ๋ ๋ฒ๊ทธ๊ฐ ๋ฐ์ํ๋์ง ๊ฒฝํํด๋ณด๊ณ ์ด๋ป๊ฒ ํด๊ฒฐํด์ผ ํ ์ง ๊ณ ๋ฏผํ๋ ์ข์ ๊ฒฝํ์ด ์๊ธด๊ฒ๊ฐ์ต๋๋ค. ๋ํ ๋ค๋ฅธ์กฐ์ ์ฌ๋ก๋ฅผ ํตํด์ ๊ฐ์ ์ ์ผ๋ก ํธ๋ฌ๋ธ ์ํ ์ ๋ฐฉ๋ฒ์ ๋ํด ์ข๋ ์๊ฒ๋๊ฒ๊ฐ์ต๋๋ค.
- ์ธ์์ด ๋ค๋ฅธ์กฐ์ ๋นํด ์ ์ด์ ์๊ฐ์ ์ด๋ ค์ ํฌ๊ธฐํ๋ ๊ธฐ๋ฅ์ด ๋ช๊ฐ ์์๋ ์ ์ด ๋งค์ฐ ์์ฌ์ ์ต๋๋ค.
- ๊ธฐํํ ๋น์ ์๊ฐํ์ง ๋ชปํ ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ผ ํ๊ฑฐ๋, ์ค๋ฅ๊ฐ ๋์ ์๊ฐ์ ๋ง์ด ์ด ๊ธฐ๋ฅ์ผ๋ก ์ธํด ์๊ฐ์ ์ซ๊ธฐ๋ฉฐ ์์ ํ ์ ์ด ์์ฌ์ ์ต๋๋ค.
์์ฌํ
- ๋ฐฑ์๋์์ ํ์ ์ผ๋ก ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ตฌ์กฐ๋ฅผ ์ดํดํ ์ ์์ด ์ข์์ต๋๋ค.
- ๋ฆฌ์กํธ ์ฟผ๋ฆฌ์ ๋ฅ์ํด ์ง ์ ์์ด์ ์ข์์ต๋๋ค.
- Jira๋ฅผ ์ฌ์ฉํ์ฌ agileํ ํ ํ๋ก์ ํธ๋ฅผ ์งํํ ์ ์์ด ์ ์ตํ์ต๋๋ค.
- ๋ค๋ค ์ด์ฌํ ์ ํด์ฃผ์ จ์ง๋ง, ์ธ์ ๋ถ์กฑ์ผ๋ก ์ถ๊ฐ ๊ธฐ๋ฅ์ ์๊ฐํ์ง ๋ชปํ๋ ์ ์ด ์์ฝ์ต๋๋ค.
- HTTP ๋ฉ์๋ ํ ์คํธ ์ธ ๋ค๋ฅธ ํ ์คํธ๋ฅผ ์งํํ์ง ๋ชปํ๋ ๋ถ๋ถ์ด ์์ฝ์ต๋๋ค.
- ๋ฆฌํ๋์ ํ ํฐ์ผ๋ก ํธ๋ค๋ง ํ์ง ๋ชปํ ๋ถ๋ถ์ด ์์ฝ์ต๋๋ค.
์ ํจ์ฃผ
- Recoil ์ ์ญ ์ํ๊ด๋ฆฌ๋ฅผ ํ์ตํ๊ณ react-query๋ฅผ ์ด์ฉํ์ฌ ๋ฐ์ดํฐ๋ฅผ ์บ์ฑํด ๋ถ๋ฌ์ค๋ ์๋ฅผ ์ต์ํํ์ฌ ์ฌ์ ๊ทผ ์๋๋ฅผ ๋ํ๋๊ฒ์ ๋ํด ๊ณ ๋ฏผํ๋ ์๊ฐ์ ๊ฐ์ง ์ ์์ด์ ์ข์์ต๋๋ค.
- ๋ค๋ฅธ ํ์์ด ๋ง๋ ์ปค์คํ ํ ๊ณผ util ํจ์๋ฅผ ์ด์ฉํ์ฌ ๋ฐ๋ณต๋๋ ๋ก์ง์ ํ๋์ ํจ์๋ก ๋ฌถ์ด์ ์ฌ์ฌ์ฉํ์์ต๋๋ค. ์ด๋ฌํ ๊ฒฝํ์ ํตํด ์ฝ๋๋ฅผ ๊ตฌ์กฐํ ์ํค๊ณ ์ ์ง๋ณด์์ฑ์ ํฅ์์์ผ ์ฝ๋๋ฅผ ๊ฐ๋ ์ฑ ์๊ฒ ๊ตฌํํ ์ ์์ด ์ข์์ต๋๋ค.
- ํ๋ก์ ํธ ๊ธฐ๊ฐ๋์ ๋์ค์ฝ๋๋ฅผ ํ์ฉํ์ฌ ๋ฐ์ผ๋ฆฌ ์คํฌ๋ผ์ ๊ฑฐ์ณ ๋งค์ผ ๋ชจ๊ฐ์ฝ๋ฅผ ์งํํ๊ณ , ํ์๊ฐ ์๋ ์๊ฐ์๋ ๋ฐฑ์๋์ ํ์ํ ๋ถ๋ถ์ ๋ํด ์์ํ๋ฉด์ ๋์์์ด ์ ๋ณด๋ฅผ ๊ณต์ ํ์ต๋๋ค. ์ด๋ฐ ์ํํ ์ํต์ผ๋ก ๋ฒ๊ทธ๋ฅผ ํด๊ฒฐํ๊ณ ํ๋ก์ ํธ๋ฅผ ์์๋ณด๋ค ์ฌ์ ๋กญ๊ฒ ๋ง๋ฌด๋ฆฌํ ์ ์์ด ์ด์์ ์ธ ํ์ ์ ๊ฒฝํ์ ์ป์ด๊ฐ ์ ์์์ต๋๋ค.
- ์ธ์์ด ์ ๋ค๋ ์ด์ ๋ก ์ถ๊ฐ ๊ธฐ๋ฅ์ ์๊ฐ๋ชปํ๊ณ ๊ธฐํ์ ํ๋ ์ ์ด ์์ฌ์ ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ํ ์ปจ์ ์ ๊ตญํ๋๋๊ฒ ์๋ ํญ๋๊ฒ ์๋น์ค์ ๋ํด ๊ธฐํ์ ํ์ผ๋ฉด ์กฐ๊ธ ๋ ๋ง๊ณ ์๋ก์ด ๊ธฐ๋ฅ๋ค์ ๊ตฌํ ํ ์ ์์์ ๊ฑฐ๋ผ๋ ์์ฌ์์ด ๋จ์ต๋๋ค.
- ์ฒ์ ๊ธฐํ ํ ๋ ๊ณตํต ์ปดํฌ๋ํธ๋ฅผ ์๊ฐํ์ง ๋ชป ํ์ต๋๋ค. ๊ทธ๋์ ๋ฉ์ธํ์ด์ง์ ์์ ์กฐํ ํ์ด์ง์ ๊ฐ์ ๋์์ธ ๋ ์ด์์์ด ์์์์๋ ๋ถ๊ตฌํ๊ณ , ๊ฐ์ ๊ตฌํํ ํ ๋์ค์ ํ๋๋ก ํต์ผํ๊ธฐ ๋๋ฌธ์ ์๊ฐ์ ์ผ๋ก ๋ญ๋นํ์ฌ ์์ฌ์ ์ต๋๋ค. ๋ค์ ํ๋ก์ ํธ์์๋ ๊ณตํต ์ปดํฌ๋ํธ๋ฅผ ๋จผ์ ์๊ฐํด๋ณด๋ ๊ณ๊ธฐ๊ฐ ๋์์ต๋๋ค.
๐ฆMiniProject
โฃ ๐src
โ โฃ ๐apis
โ โฃ ๐assets
โ โฃ ๐componets
โ โฃ ๐hooks
โ โฃ ๐pages
โ โฃ ๐recoil
โ โฃ ๐types
โ โฃ ๐utils
โ โฃ ๐App.css
โ โฃ ๐App.tsx
โ โฃ ๐index.tsx
โ โฃ ๐index.css
โฃ ๐test
โฃ ๐.env
โฃ ๐.eslintrc.js
โฃ ๐.eslintignore
โฃ ๐.gitignore
โฃ ๐.prettierrc
โฃ ๐README.md
โฃ ๐package-lock.json
โฃ ๐package.json
โฃ ๐tailwindcss.config.js
โ ๐tsconfig.json
id : fast@naver.com
pw : test123!
git clone https://github.com/YBE-7/MiniProject_FE
npm i
npm run start
ํ์๊ณ .env ํ์ผ์
ํ๊ฒฝ๋ณ์
REACT_APP_KAKAO_API_KEY = 769c2ff03a8fe204a09397ad6b385a5d REACT_APP_KAKAO_SHARE_API_KEY = 8066a8630f3bf26042823994bf8ce2deํน์
https://mini-team-7.vercel.app/
๋ฐฐํฌ ์ฌ์ดํธ ๋ฐฉ๋ฌธํด์ฃผ์๋ฉด ๋ฉ๋๋ค!
๊ฐ์ฌํฉ๋๋ค :)
































