โMuse + Reviewโ : ๋ฎค์ฆ(์๊ฐ)๋ฅผ ๋ฆฌ๋ทฐํ๋ค.
๋์ ์ฐ์ฃผ ์ต๊ด๊ณผ ํ์ฑํ์ ์๋๋ฅผ ์ ๋ฐ ๋ถ์ํ์ฌ, ๋ ํ ์ค์๋ ๋ ์จ์ ๋ฐ๋ ๋ฏํ ์ฑ์ฅ์ ๊ฒฝํํ๊ฒ ๋๋ AI ์์ ๋ฉํ ๋ง ํ๋ซํผ
"๋ด๊ฐ ๋ฐฉ๊ธ ์ด ์์ ์ณค์ง?"๋ผ๋ ๋ฌผ์์ AI๊ฐ ํ์ฑํ์ ๋ต๋ณ์ ๋ค๋ ค์ฃผ๋ ๊ณผ์
๋ฌด์ฌ์ฝ ์ฐ์ฃผํ ์๋ค์ ์๋ฏธ๋ฅผ ๊นจ๋ซ๊ฒ ๋๋ฉด, ์์ ์ ์ฐ์ฃผ๋ฅผ ๊ฐ๊ด์ ์ผ๋ก ๋ฐ๋ผ๋ณด๋ ๋์ด ์๊ธฐ๊ณ ์ค์ค๋ก๋ฅผ ๊ฐ๋ฅด์น ์ ์๋ โ์์๋ ฅโ์ด ์๊น๋๋ค.
ํผ์ ์ฐ์ตํ๊ฑฐ๋ ๋ ์จ์ ๋ฐ์ ๋ ๋์น๊ธฐ ์ฌ์ด โ๋ด๊ฐ ๋ชจ๋ฅด๋ ๋์ ๋จ์ โ์ ์ ํํ ์ฐพ์๋ด๋ ๋จ๊ณ
๋จ์ํ โ์ฐ์ตํ์ธ์โ๊ฐ ์๋๋ผ, ๋ฌด์์ด ๋ถ์กฑํ์ง ์ธ์ง์ํค๊ณ ๊ทธ๊ฒ์ ์ฑ์ธ ์ ์๋ ๋ช ํํ ํ์ต ์ง๋(Roadmap)๋ฅผ ์ ์ํ์ฌ ์ฐ์ต์ ํจ์จ์ ๊ทน๋ํํฉ๋๋ค.
์ฆํฅ ์ฐ์ฃผ๋ฅผ โ์ฒ์ฌ๋ค์ ์ ์ ๋ฌผโ์ด ์๋๋ผ, ๋๊ตฌ๋ ๋์ ํ๊ณ ์ฆ๊ธธ ์ ์๋ โ๋์ดโ๋ก ๋ง๋๋ ์ต์ข ๋ชฉํ
์์ ์ ์๋ฆฌ๋ฅผ ์ดํดํ๊ณ ๋ถ์กฑํจ์ ์ฑ์๊ฐ๋ ์์ ์ฑ๊ณต ๊ฒฝํ๋ค์ด ์์ฌ, ๋ง์ฐํ ๋๋ ค์์ ์์ ๊ฐ์ผ๋ก ๋ฐ๊ฟ์ค๋๋ค.
-
Node ๋ฒ์
- v22.20.0
-
npm ๋ช ๋ น์ด ์์
npm install # ์ ์ฒด ์ค์น
npm install ๋ผ์ด๋ธ๋ฌ๋ฆฌ # ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น
npm run dev # ๊ฐ๋ฐ ์๋ฒ ์คํ
npm run build # ํ์
์ฒดํฌ + ํ๋ก๋์
๋น๋
npm run preview # ๋น๋ ๊ฒฐ๊ณผ ๋ก์ปฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ
npm run lint # ESLint ๊ฒ์ฌ
npm run stylelint # ์คํ์ผ ๋ฆฐํธ ๊ฒ์ฌ
npm run format # Prettier ํฌ๋งทํ
npm run format:check # ํฌ๋งท ๊ฒ์ฌ๋ง ์ํ
MuseReview๋ Web MIDI API๋ก ๊ฑด๋ฐ ์ ๋ ฅ์ ๋ฐ์ต๋๋ค.
| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| ๋ธ๋ผ์ฐ์ | Chrome ๋๋ Edge (Safari ยท Firefox๋ Web MIDI ๋ฏธ์ง์) |
| ๊ถํ | ์ต์ด ์ ์ ์ MIDI ๊ธฐ๊ธฐ ์ ๊ทผ ํ์ฉ ํ์ ์์ "ํ์ฉ" |
| ๊ธฐ๊ธฐ ์ ํ | ์ค์ โ MIDI ๊ธฐ๊ธฐ์์ ์ฌ์ฉํ ๊ธฐ๊ธฐ๋ฅผ ํด๋ฆญํด ์ ํ |
| ๋ ์ดํด์ | ์ฐ์ฃผ ์์ ์ ๋ ์ดํด์ ์ฒดํฌ ์คํ |
- ์ ์ ํผ์๋ ธ โ USB ์ผ์ด๋ธ๋ก ์ฐ๊ฒฐ ํ ์ ์์ ์ผ๋ฉด ์๋ ์ธ์๋ฉ๋๋ค. ์ฑ์ด ์์ฒด ์ฌ์ด๋๋ฅผ ์ฌ์ํ๋ฏ๋ก ์๋ฆฌ๊ฐ ๊ฒน์น๋ฉด ํผ์๋ ธ ๋ณผ๋ฅจ์ ์ค์ฌ ์ฃผ์ธ์.
- ์ ์ ํผ์๋ ธ๊ฐ ์๋ค๋ฉด โ ๊ฐ์ MIDI ๊ฑด๋ฐ์ผ๋ก ์์ฐํ ์ ์์ต๋๋ค โ ๊ฐ์ ๊ฑด๋ฐ ์์ฐ ๊ฐ์ด๋
develop โ ์์
๋ธ๋์น
-
main branch: ๋ฐฐํฌ ๋ธ๋์น -
develop branch: ๊ฐ๋ฐ ๋ธ๋์น, feature ๋ธ๋์น๊ฐ merge๋จ -
feature / chore / refactor branch: ๊ฐ๋ฐ ๋ธ๋์น
-
์ด์ ์์ฑ
-
์ด์ ๋ฒํธ์ ๋ง๊ฒ
develop๋ธ๋์น์์ ์๋ก์ด ๋ธ๋์น ์์ฑ -
์์ ์๋ฃ ํ ์ปค๋ฐ ์ปจ๋ฒค์ ์ ๋ง๊ฒ ์ปค๋ฐ
-
PR ์์ฑ
-
์ฝ๋ ๋ฆฌ๋ทฐ ํ
develop๋ธ๋์น๋ก ๋ณํฉ- ์ต์ 1๋ช
์น์ธ ํ
develop๋ธ๋์น๋ก ๋จธ์ง
- ์ต์ 1๋ช
์น์ธ ํ
- ๊ตฌ์กฐ:
๋ธ๋์น์ข ๋ฅ/#์ด์๋ฒํธ-๊ธฐ๋ฅ์ค๋ช - ๊ตฌ๋ถ์: ํ์ดํ(
-) ์ฌ์ฉ
| Prefix | ์ค๋ช |
|---|---|
init |
์ด๊ธฐ ํ๋ก์ ํธ ์ธํ |
feat |
์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ |
fix |
๋ฒ๊ทธ ์์ |
docs |
๋ฌธ์ ๋ณ๊ฒฝ |
style |
UI ์์ |
refactor |
์ฝ๋ ๋ฆฌํฉํ ๋ง |
test |
ํ ์คํธ ์ฝ๋ ๊ด๋ จ |
chore |
์ค์ ํ์ผ ๋ณ๊ฒฝ |
hotfix |
๊ธด๊ธํ ๋ฒ๊ทธ ์์ |
deploy |
๋ฐฐํฌ ๊ด๋ จ ์์ |
- ๊ตฌ์กฐ:
prefix: ์์ธ์ค๋ช (#์ด์๋ฒํธ) - ์์
init: ํ๋ก์ ํธ ์ด๊ธฐ ์ธํ (#1)feat: ๋ก๊ทธ์ธ ํ์ด์ง ๊ฐ๋ฐ (#2)
| Prefix | ์ค๋ช |
|---|---|
init |
์ด๊ธฐ ํ๋ก์ ํธ ์ธํ |
feat |
์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ |
fix |
๋ฒ๊ทธ ์์ |
docs |
๋ฌธ์ ๋ณ๊ฒฝ |
style |
UI ์์ |
refactor |
์ฝ๋ ๋ฆฌํฉํ ๋ง |
test |
ํ ์คํธ ์ฝ๋ ๊ด๋ จ |
chore |
์ค์ ํ์ผ ๋ณ๊ฒฝ |
hotfix |
๊ธด๊ธํ ๋ฒ๊ทธ ์์ |
deploy |
๋ฐฐํฌ ๊ด๋ จ ์์ |
๐ฆ MuseReview
โฃ ๐ .github # ์ด์ ยท PR ํ
ํ๋ฆฟ
โฃ ๐ .husky # ์ปค๋ฐ ํ
(lint-staged)
โฃ ๐ public # ํฐํธ ยท ์ฌ์ด๋ ยท ์ํ MusicXML
โฃ ๐ src
โ โฃ ๐ apis # axios ์ธ์คํด์ค, ๋๋ฉ์ธ๋ณ API ํจ์
โ โฃ ๐ assets # ๋๋ฉ์ธ๋ณ ์ ์ ์์
โ โฃ ๐ components # ์ฌ์ฌ์ฉ ์ปดํฌ๋ํธ (common / history / learn / main / mentor / metronome / piano / practice / score / settings)
โ โฃ ๐ constants # ๋๋ฉ์ธ ์์
โ โฃ ๐ hooks # ์ปค์คํ
ํ
(MIDI ยท ๋ฉํธ๋ก๋ ยท ์
๋ณด ์ฑํฌ ยท ์๋ฒ ์ํ)
โ โฃ ๐ layout # ๊ณตํต ๋ ์ด์์
โ โฃ ๐ pages # ๋๋ฉ์ธ๋ณ ๋ผ์ฐํ
ํ์ด์ง
โ โ โฃ ๐ admin # โ ๏ธ MVP ์ ์ธ โ ๊ด๋ฆฌ์ (๋์๋ณด๋ / ๋ง์ดํ์ด์ง / ์๊ฐ์ / ๊ฐ์ฌ / ํธ๋)
โ โ โฃ ๐ auth # ๋ก๊ทธ์ธ ยท ์์
๋ก๊ทธ์ธ ์ฝ๋ฐฑ
โ โ โฃ ๐ common # ๊ณตํต ํ์ด์ง (๋ก๋ฉ / 404)
โ โ โฃ ๐ history # ๊ธฐ๋ก
โ โ โฃ ๐ landing # ๋๋ฉ ยท ์ธํธ๋ก
โ โ โฃ ๐ latency # ๋ ์ดํด์ ์ธก์
โ โ โฃ ๐ learn # ํ์ต (์ปค๋ฆฌํ๋ผ / ๋จ๊ณํ์ต / ์ด๋ก / ์ ์)
โ โ โฃ ๐ main # ๋ฉ์ธ ๋์๋ณด๋
โ โ โฃ ๐ onboarding # ์จ๋ณด๋ฉ (์ฝ๊ด / ์ญํ / ํ๋ / ํ๋กํ ์ค์ )
โ โ โฃ ๐ practice # ์ฐ์ต (์์ฑ / ์์ธ / ํธ์ง / ํ๋ ์ด / ๋ถ์)
โ โ โ ๐ profile # ํ๋กํ
โ โฃ ๐ routes # ๋ผ์ฐํ
์ ์
โ โฃ ๐ stores # Zustand ์ ์ญ ์ํ
โ โฃ ๐ types # TypeScript ํ์
โ โ ๐ utils # ์ ์ญ ์ ํธ
โ ๐ ์ค์ ํ์ผ # .coderabbit.yaml, .prettierrc, .stylelintrc, eslint.config.js, tsconfig.*, vite.config.ts, vercel.json
โ ๏ธ src/pages/admin(๋ฐ/admin๋ผ์ฐํธ)์ MVP ๋ฒ์์์ ์ ์ธ๋ ๊ธฐ๋ฅ์ ๋๋ค.



