UMC 8th Project - Front
์์ ๋กญ๊ฒ, ๊ทธ๋ฆฌ๊ณ ์ฆ๊ฒ๊ฒ. ๋ฐด๋ ์์ ์ถ์ฒ ์๋น์ค ๋ฐด๋
์๋
ํ์ธ์! ๐
โBandโ + โ๋(๋๋ค)โ์ ํฉ์ฑ์ด,
๋ฐด๋์ ๋ฐด๋ ์์
์ ์์ ๋กญ๊ณ ์ฆ๊ฒ๊ฒ ์ถ์ฒํ๊ณ ๋ฐ๊ฒฌํ ์ ์๋ ๊ณต๊ฐ์
๋๋ค.
git clone https://github.com/Bandnol/Bandnol-Front.git
cd Bandnol-Front
yarn installnpx expo start --tunnelBandnol
โโapi/ # ์๋ฒ ํต์ ๋ชจ๋ (Axios ๊ธฐ๋ฐ)
โ โโreplies.ts # ๋ต๊ธ ๊ด๋ จ API
โ โโspotifySearch.ts # ์คํฌํฐํ์ด ๊ฒ์ API
โ โโaiRecommend.ts # AI ์ถ์ฒ API
โ โโ... # ๊ธฐํ API ๋ชจ๋
โ
โโapp/ # Expo Router ๋ผ์ฐํ
์ํธ๋ฆฌ
โ โโ(auth)/ # ์ธ์ฆ ํ๋ก์ฐ
โ โโ(onboarding)/ # ์จ๋ณด๋ฉ ๋จ๊ณ ํ๋ฉด
โ โโ(tabs)/ # ํ๋จ ํญ ๋ค๋น๊ฒ์ด์
๊ทธ๋ฃน
โ โ โโmusic-recommend/ # ์์
์ถ์ฒ ๊ด๋ จ ํ์ด์ง
โ โ โโmyPage/ # ๋ง์ดํ์ด์ง & ์ค์ ํ๋ฉด
โ โ โโpost-tab/ # ๊ฒ์๊ธ ํญ ํ๋ฉด
โ โ โโrecommend-tab/ # ์ถ์ฒ ํญ ํ๋ฉด
โ โโ+not-found.tsx # 404 ํ์ด์ง
โ โโ_layout.tsx # ๊ธ๋ก๋ฒ ๋ ์ด์์
โ โโindex.tsx # ์ด๊ธฐ ์ง์
ํ๋ฉด
โ
โโassets/ # ์ ์ ์์ฐ
โ โโfonts/
โ โโicons/
โ โโimages/
โ
โโcomponents/ # ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ปดํฌ๋ํธ
โ โโcommon/ # ํ๋ก์ ํธ ์ ์ญ ๊ณตํต UI
โ โโui/ # ์์ ๋จ์ UI ์ปดํฌ๋ํธ
โ
โโconstants/ # ์์, ๋์์ธ ํ ํฐ
โ โโColors.ts
โ โโtypography.ts
โ
โโhooks/ # ์ปค์คํ
ํ
โ โโuseAuthContext.tsx
โ โโuseThemeColor.ts
โ โโ...
โ
โโstore/ # Zustand ์ ์ญ ์ํ
Commit Convention
- ์ปค๋ฐ ์ ๋ชฉ์ ๋ช ๋ น๋ฌธ ํํ๋ก ์์ฑํฉ๋๋ค.
- ์ปค๋ฐ ๋ฉ์์ง๋ ๋ฐ๋์ ํ๊ธ๋ก ์์ฑํฉ๋๋ค.
- ์ปค๋ฐ ์ ํ(TYPE)์ ๋ฐ๋์ ์์ด ๋๋ฌธ์๋ก ์์ฑํฉ๋๋ค.
- ์ฌ๋ฌ ์์ ์ ํ ์ปค๋ฐ์ ๋ฌถ์ง ์์ต๋๋ค. (ํ๋์ ์ปค๋ฐ์๋ ํ๋์ ์์ ๋ง ํฌํจ)
- ์ปค๋ฐ ์ ํ ๋ค์๋ ์ฝ๋ก (:)๊ณผ ๊ณต๋ฐฑ์ ์ถ๊ฐํฉ๋๋ค.
[TYPE] ์์
ํ ๋ด์ฉ ์์ฝ| ํ์ | ์ค๋ช |
|---|---|
FEAT |
์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ |
MOD |
๊ธฐ์กด ์ฝ๋ ์์ |
ADD |
๋ถ์์ ์ธ ์ฝ๋/๋ผ์ด๋ธ๋ฌ๋ฆฌ/ํ์ผ ์ถ๊ฐ |
CHORE |
๋น๋ ์ค์ , ํ์ , ๋ณ์๋ช , ํจํค์ง ๋ณ๊ฒฝ ๋ฑ ์ฌ์ํ ์์ |
DEL |
์ฌ์ฉํ์ง ์๋ ์ฝ๋๋ ํ์ผ ์ญ์ |
UI |
UI ์คํ์ผ ๋ฐ ๋ ์ด์์ ์์ |
FIX |
๋ฒ๊ทธ๋ ์ค๋ฅ ํด๊ฒฐ |
HOTFIX |
QA๋ ๊ธด๊ธํ ์ด์์ ๋ํ ๋น ๋ฅธ ์์ |
MERGE |
๋ค๋ฅธ ๋ธ๋์น์์ ๋ณํฉ |
MOVE |
ํ์ผ์ด๋ ์ฝ๋์ ์์น ์ด๋ |
RENAME |
ํ์ผ ์ด๋ฆ ๋๋ ํด๋ ์ด๋ฆ ๋ณ๊ฒฝ |
REFACTOR |
์ฝ๋ ์ ๋ฉด ์์ ๋๋ ๋ฆฌํฉํ ๋ง |
DOCS |
๋ฌธ์ ๊ด๋ จ ์์ (README, WIKI, ์ฃผ์ ๋ฑ) |
Branch Convention
- [์ ํ] where / what
- ์ ํ/#๋ฒํธ-what
- [์ ํ/#๋ฒํธ] what
- [์ ํ/#๋ฒํธ] where / what
- 4๋ช ์ค ์ต์ 2๋ช ์๊ฒ ํผ๋๋ฐฑ(Approve) ๋ฐ์ ํ ๋จธ์ง ๊ฐ๋ฅ
์ฝ์ด ํ์ & ํ์
- ์ฃผ 1ํ ์ฝ์ด ํ์: ๋งค์ฃผ ํ์์ผ ์ ๋
- ํ์ ์ ์งํ ๋ด์ฉ:
- ์งํ ์ํฉ ๊ณต์
- ์ด์ ๋ฐ PR ๋ฆฌ๋ทฐ
- ๋ค์ ์ฃผ ๊ณํ ๋ ผ์
- ๊ธฐ๋ฅ ๊ฐ์: ์ถ์ฒ ์์ ์ ๋ํ AI ๊ธฐ๋ฐ ์ฝ๋ฉํธ๋ฅผ ์๋ ์์ฑํ์ฌ ์ฌ์ฉ์ ๊ฒฝํ์ ํ์ฅ
- ๊ตฌํ ๋ฐฉ์:
- ์๋ฒ์์ AI ๋ชจ๋ธ์ ํ์ฉํ ์ฝ๋ฉํธ ์์ฑ API๋ฅผ ๊ตฌ์ถ
- ํ๋ก ํธ์๋์์ Axios๋ฅผ ์ด์ฉํด API ํธ์ถ
- API ์๋ต์ผ๋ก ์ ๋ฌ๋ ์ฝ๋ฉํธ๋ฅผ UI์ ๋ฐ์ํ์ฌ ์ค์๊ฐ ํ์
- ๋ฌธ์ ํด๊ฒฐ: Expo ํ๊ฒฝ ์ค์ , React Native ๋น๋ ์ค๋ฅ, Git ์ถฉ๋ ํด๊ฒฐ ๊ณผ์ ์์ AI๋ฅผ ํตํ ํด๊ฒฐ์ฑ ํ์
- ๋ฆฌํฉํ ๋ง: ์ฝ๋ ๊ตฌ์กฐ ์ต์ ํ, ์ฌ์ฌ์ฉ ์ปดํฌ๋ํธํ ๊ณผ์ ์์ AI์ ๊ตฌ์กฐ ์ ์ ์ฐธ๊ณ
๊ฐ์ง ๋ฐ์ดํฐ์ ์ค์ API ํผ์ฉ์ผ๋ก ์ธํ UI ์ํ ๋ถ์ผ์น ๋ฌธ์
- ์์ธ ๋ถ์: replycomment ์ ๋ฌด๋ก ๋ฒํผ ์ํ๋ฅผ ์ ์ดํ์๋๋ฐ, ๊ฐ์ง ๋ฐ์ดํฐ์ ์ค์ API ํธ์ถ์ด ์์ฌ ์์ด ์ ์์ ์ผ๋ก ๋์ํ๋์ง ํ์ธ์ด ์ด๋ ค์ ์
- ํด๊ฒฐ๋ฐฉ์: ๊ฐ์ง ๋ฐ์ดํฐ ์ฝ๋๋ฅผ ์ญ์ ํ๊ณ useEffect์์ fetchReplycomment๋ง ํธ์ถํ๋๋ก ๋ณ๊ฒฝํ๊ณ reply.content์ reply.nickname์ ๋ชจ๋ฌ์ ์ ์ฅํด์ ๋์
ํ๋ฉด์ ๋ ธ์ถ๋์ง ์๋ ์ด๋ฏธ์ง๋ฅผ viewshot์ผ๋ก ๊ฐ์ ธ์์ผ ํ๋ ๋ฌธ์
- ์์ธ ๋ถ์ : ํฌ๋ช ๋๋ฅผ 100์ผ๋ก ํ๋ ๋ฐฉ๋ฒ โ ์บก์ณ๊ฐ ํฌ๋ช ํ๊ฒ ๋จ. : ๋ชจ๋ฌ์ 0.01์ด๋์ ๋์ฐ๊ณ ๊ทธ๋์ ์บก์ณํ๋ ๋ฐฉ๋ฒ โ ์์ ์ ์ด์ง ์์.
- ํด๊ฒฐ ๋ฐฉ์: ๋ชจ๋ฌ์ ์ขํ๋ฅผ -10000, -10000๋งํผ ์ด๋ํด ๋ณด์ด์ง ์๋ ๊ณณ์์ ๋ชจ๋ฌ์ ๋ณด์ฌ์ฃผ๊ณ ์บก์ณํจ.