"Potion Mixer" ํผ์ฆ ๊ฒ์ ํ๊ธฐ: https://posion-mixer.vercel.app/
์๊ฐ
์ง๋ ์คํฐ๋ ์ดํ ์คํฐ๋์ฅ๋์ฒ๋ผ ๊ฒ์์ ๋ง๋ค๊ณ ์ถ๋ค๋ ์๋ง์ผ๋ก ์์ํ์ต๋๋ค. ๋ฌธ์ ๋ ์ ๊ฐ ๊ฒ์์ ํด๋ณธ ์ ์ด ์๋ค๋ ๊ฑฐ์์. ๐ ๊ณ ๋ฏผ ๋์ ๊ทธ๋๋ง ์ ๊ฐ ํ ์ ์๋ Water Sort ํผ์ฆ์ ์ ํํ์ฌ ๋ง๋ค์ด ๋ณด์์ต๋๋ค.
์ฌ์ฉ๋๊ตฌ ๋ฐ ์ํฌํ๋ก์ฐ
ChatGPT O3 : ํผ์ฆ ๊ฒ์ ๊ตฌํ์ ์ํ ๋ธ๋ ์ธ ์คํ ๋ฐ, ๊ธฐํ ๋ด์ฉ ์ ๋ฆฌ
Task Master MCP : ์คํฐ๋์์ ๋ฐฐ์ด๋๋ก Cursor์์ PRD์ Task ์์ฑ
Cursor : PRD์ ๋ง์ถ์ด Task์ ๋ฐ๋ผ ์์ฐจ์ ์ผ๋ก ์ฝ๋ ๊ฐ๋ฐ
Sequential Thinking MCP : ํผ์ฆ ๊ฒ์ ์ ์ ๋ฐ ์์ ๋จ๊ณ์์ Cursor๊ฐ ์๋์ผ๋ก ํ์ฉ
Midjourney & Hailuo : ์ฌ์ดํธ์ ํฌํจ๋ ๋์์ ์์ฑ
Github : Cursor์ ์ฐ๋ํ์ฌ ์ฌ์ดํธ ํ์ผ ๊ด๋ฆฌ
Vercel : Github์ ์ฐ๋ํ์ฌ ์ฌ์ดํธ ๋ฐฐํฌ
Claude : Github์ Vercel์ ์ฌ์ฉ์ ์ํ ์ง์์๋ต
Potion Mixer ๊ฒ์ ๊ฐ๋ฐ ๊ณผ์
1. ๊ฐ๋ฐ๋ชฉํ
์ง๊ด์ ์ธ ํผ์ฆ ๊ฒ์: ๋ชจ๋ ์ฐ๋ น๋๊ฐ ์ฝ๊ฒ ์ฆ๊ธธ ์ ์๋ ๋ฌผ์ฝ ์ ๋ ฌ ํผ์ฆ ๊ฒ์ ๊ฐ๋ฐ
์ฑ๋ฅ ์ต์ ํ: ๋น ๋ฅธ ๋ก๋ฉ๊ณผ ๋ถ๋๋ฌ์ด ์ฌ์ฉ์ ๊ฒฝํ ์ ๊ณต
๋ฐ์ํ ๋์์ธ: ๋ชจ๋ ๋๋ฐ์ด์ค์์ ์ต์ ํ๋ ๊ฒ์ ํ๋ ์ด ํ๊ฒฝ ๊ตฌ์ถ
๋ธ๋๋ ์์ด๋ดํฐํฐ: "Gpters Wizard & Co." ๋ง๋ฒ์ฌ ํ ๋ง์ ๋ ์ฐฝ์ ๋ธ๋๋ฉ
2. ์ฃผ์๊ธฐ๋ฅ
1) ํต์ฌ ๊ฒ์ ๊ธฐ๋ฅ
๋ฌผ์ฝ ์ ๋ ฌ ํผ์ฆ: ํ๋ธ ๊ฐ ์ก์ฒด ์ด๋์ ํตํ ์์๋ณ ๋ถ๋ฅ
4๋จ๊ณ ๋์ด๋: Easy(4ํ๋ธ) โ Medium(10ํ๋ธ) โ Hard(12ํ๋ธ) โ Extra Hard(514ํ๋ธ)
์ปฌ๋ฌ ์์คํ : ๋ค์ํ ๋ฌผ์ฝ ์์์ผ๋ก ์๊ฐ์ ์ฌ๋ฏธ ์ ๊ณต
์ค์๊ฐ ์ ํจ์ฑ ๊ฒ์ฌ: ์ด๋ ๊ฐ๋ฅํ ์ก์ฒด์ ํ๋ธ ์๋ ํ๋ณ
2) ์ฌ์ฉ์ ๊ฒฝํ ๊ธฐ๋ฅ
์ฌ์ด๋ ์์คํ : ๊ฒ์ ํจ๊ณผ์ ์ง์
ํญ์ฃฝ ์ ๋๋ฉ์ด์ : ๊ฒ์ ์๋ฃ ์ ์ถํ ํจ๊ณผ
ํ๋ ์ด์ด ์์คํ : ๊ฐ์ธํ๋ ์ด๋ฆ ์ ๋ ฅ ๋ฐ ๊ฒ์ ์งํ
๋น๋์ค ๋ฐฐ๊ฒฝ: ๊ฒ์ ์ปจ์ ์ ๋ง๋ ๋ก๊ทธ์ธ ๊ฒฝํ
3. ๊ฒ์ ๊ธฐํ (ChatGPT O3)
์์ ์ ํ ๋ชฉํ์ ์ฃผ์๊ธฐ๋ฅ์ ๊ธฐ๋ฐ์ผ๋ก ๊ฒ์ ๊ธฐํ
๊ฒ์ ๊ตฌํ ๋ฐฉ๋ฒ ๋ ผ์
์น์ฌ์ดํธ๋ก ๊ตฌํํ๊ธฐ๋ก ๊ฒฐ์ ํ๊ณ ๊ธฐํ์ ์์ฑ
4. PRD ์์ฑํ๊ณ Task ์์ฑ (Cursor์ Task Master MCP)
Cursor์ MCP ์๋ฒ ์ค์
(์คํฐ๋์ฅ๋ ์ฌ๋ก ์ฐธ์กฐ: https://www.gpters.org/nocode/post/task-master-mcp-hagseub-hamyeonseo-mini-geim-mandeuleo-bogi-xa1ZCrQoaLKocff)Task Master ํ์ฉํ์ฌ PRD์ task ์์ฑํ๊ธฐ
ํ๋ก์ ํธ์ taskmaster-ai๋ฅผ ์ด๊ธฐํํด์ฃผ์ธ์ ๊ธฐํ์์ ๋ง์ถ์ด PRD.md ํ์ผ์ ์์ฑํด์ฃผ์ธ์ Task ์์์ ๋ฐ๋ผ ์์ฐจ์ ์ผ๋ก ๊ฐ๋ฐ์ ์งํํด์ฃผ์ธ์
5. ๊ธฐ์ ์คํ (Cursor)
1) ํ๋ก ํธ ์๋
React 18: ์ต์ ๋ฆฌ์กํธ ํ ๊ธฐ๋ฐ ์ปดํฌ๋ํธ ๊ฐ๋ฐ
TypeScript: ํ์ ์์ ์ฑ๊ณผ ๊ฐ๋ฐ ์์ฐ์ฑ ํฅ์
Vite: ๋น ๋ฅธ ๊ฐ๋ฐ ์๋ฒ์ ์ต์ ํ๋ ๋น๋ ์์คํ
2) ์คํ์ผ๋ง & UI
Tailwind CSS: ์ ํธ๋ฆฌํฐ ๊ธฐ๋ฐ CSS ํ๋ ์์ํฌ
CSS Grid & Flexbox: ๋ฐ์ํ ๋ ์ด์์ ๊ตฌํ
PostCSS: CSS ์ ์ฒ๋ฆฌ ๋ฐ ์ต์ ํ
3) ์ํ ๊ด๋ฆฌ & ๋ฐ์ดํฐ
Zustand: ๊ฒฝ๋ ํด๋ผ์ด์ธํธ ์ํ ๊ด๋ฆฌ
Local Storage: ๊ฒ์ ์ค์ ๋ฐ ์์ ๋ฐ์ดํฐ ์ ์ฅ
4) ๊ฐ๋ฐ ๋๊ตฌ
ESLint & Prettier: ์ฝ๋ ํ์ง ๋ฐ ํฌ๋งทํ ๊ด๋ฆฌ
Hot Module Replacement: ๊ฐ๋ฐ ์ค ์ค์๊ฐ ์ ๋ฐ์ดํธ
6. ๋์์ธ์์คํ (Cursor)
1) ์ปฌ๋ฌ ํ๋ ํธ
๋คํฌ ํ ๋ง: ์ฃผ ๋ฐฐ๊ฒฝ์ dark-800, dark-700, dark-600
๋ฌผ์ฝ ์์คํ : ๋ฌผ์ฝ๋ณ ๊ณ ์ ์์ (๋นจ๊ฐ, ํ๋, ๋ ธ๋, ์ด๋ก ๋ฑ)
๋ค์จ ํจ๊ณผ: ์ ํ๋ ํ๋ธ ํ์ด๋ผ์ดํธ ๋ฐ ํธ๋ฒ ํจ๊ณผ
2) ๋ ์ด์์ ์์คํ
์ค์ ์ ๋ ฌ: ๋ชจ๋ ๊ฒ์ ์์์ ์๋ฒฝํ ์ค์ ๋ฐฐ์น
๊ทธ๋ฆฌ๋ ์์คํ : CSS Grid ๊ธฐ๋ฐ ํ๋ธ ๋ฐฐ์ด
๊ฐ๊ฒฉ ํ์คํ: 1rem ๊ธฐ๋ณธ ๊ฐ๊ฒฉ, ๊ท ๋ฑํ ์์ ๋ฐฐ์น
https://ui.shadcn.com/ ์ฌ์ดํธ๋ฅผ ์บก์ณํ์ฌ ์ ๊ณต (feat. ์ ์ํ ๋๋)
3) ์ ๋๋ฉ์ด์
CSS Transitions: ๋ถ๋๋ฌ์ด ์ํ ๋ณํ
ํธ๋ฒ ํจ๊ณผ: scale(1.05) ๊ธฐ๋ฐ ์ํธ์์ฉ ํผ๋๋ฐฑ
ํญ์ฃฝ ํจ๊ณผ: ๊ฒ์ ์๋ฃ ์ ํํฐํด ์ ๋๋ฉ์ด์
5. ์ฌ์ดํธ๊ตฌ์กฐ (Cursor)
### ํ์ด์ง ๊ตฌ์กฐ
/
โโโ Dashboard (๋์๋ณด๋)
โ โโโ PlayerNameModal (ํ๋ ์ด์ด ์ด๋ฆ ์
๋ ฅ)
โ โโโ DifficultySelector (๋์ด๋ ์ ํ)
โ โโโ GameStats (๊ฒ์ ํต๊ณ)
โโโ Game (๊ฒ์ ํ๋ฉด)
โ โโโ GameBoard (๊ฒ์ ๋ณด๋)
โ โโโ TubeContainer (ํ๋ธ ์ปจํ
์ด๋)
โ โโโ GameControls (๊ฒ์ ์ปจํธ๋กค)
โโโ Settings (์ค์ )
โโโ SoundSettings (์ฌ์ด๋ ์ค์ )
โโโ GameSettings (๊ฒ์ ์ค์ )
### ์ปดํฌ๋ํธ ๊ตฌ์กฐ
src/
โโโ components/
โ โโโ Tube.tsx (ํ๋ธ ์ปดํฌ๋ํธ)
โ โโโ FireworksEffect.tsx (ํญ์ฃฝ ํจ๊ณผ)
โ โโโ Button.tsx (๊ณต์ฉ ๋ฒํผ)
โ โโโ Card.tsx (์นด๋ ๋ ์ด์์)
โ โโโ Modal.tsx (๋ชจ๋ฌ ๊ณตํต)
โโโ pages/
โ โโโ Dashboard.tsx
โ โโโ Game.tsx
โ โโโ Settings.tsx
โโโ hooks/
โ โโโ useGameStore.ts (๊ฒ์ ์ํ ๊ด๋ฆฌ)
โโโ utils/
โ โโโ gameLogic.ts (๊ฒ์ ๋ก์ง)
โ โโโ soundManager.ts (์ฌ์ด๋ ๊ด๋ฆฌ)
โโโ types/
โโโ game.ts (ํ์
์ ์)6. ๊ฒ์์์คํ /๊ธฐ๋ฅ (Cursor)
๋์๋ณด๋ ๊ตฌ์ฑ: ๋ฉ์ธ ํต๊ณ, ๊ฒ์ ์ ํ, ํ๋ ์ด์ด ๊ณ์ , ์ค์ , ๋ก๊ทธ ์์
๊ฒ์ ๋ก์ง: ์ก์ฒด ์ด๋ ๊ท์น, ํ๋ธ ์ฉ๋ ์ ํ, ์๋ฃ ์กฐ๊ฑด, ์คํ ์ทจ์, ํํธ ๊ธฐ๋ฅ
๋์ด๋ ์์คํ : Easy, Medium, Hard, Extra Hard
์ํธ์์ฉ ์์คํ : ํ๋ธ ์ ํ, ์ก์ฒด ์ด๋, ์๊ฐ์ ํผ๋๋ฐฑ, ์ ๋๋ฉ์ด์
7. ๊ฐ๋ฐ ๊ฒฐ๊ณผ ์์ (Cursor์ Sequential Thinking MCP)
๋์์ธ์ ์์ ํ ๋๋ ์ฌ๋ฌ ์ฐจ๋ก ์ด์ ๋ฒ์ ์ผ๋ก ๋์๊ฐ๊ธฐ๋ฅผ ์์ฒญ
๋ถ๋ถ์ ์ผ๋ก ๊ณ ์น๋ ๊ฒ๋ณด๋ค ์ ๋๋ก ๋ ์ด์ ๋ฒ์ ์์ ๋ค์ ์์ํ๋ ๊ฒ์ด ํธ๋ฆฌ
์ฌ๋ฌ ์ฐจ๋ก ์์ ์ ๊ฑฐ์น๋ฉด์ "์คํ๊ฒํฐ ์ฝ๋"๊ฐ ๋๋ ๋ฌธ์ ๋ฐ์
์ ์ฒด ํ๋ก์ ํธ๋ฅผ ์ ๊ฒํ์ฌ ํ์์๋ ์ฝ๋๋ฅผ ์ญ์ ํ๊ณ ๋ชฉ์ ์ ๋ง๊ฒ ์ ๋ฆฌํ ๊ฒ์ ์์ฒญ
๋ฌธ์ ์ ์ ์ ๊ฒํ๊ณ ์์ ํ๋ ๊ณผ์ ์์ ํนํ ๋ฐ๋ก ๋ช ์ํ์ง ์์๋ Cursor๊ฐ Sequential Thinking MCP๋ฅผ ํ์ฉํ์ฌ ์ฒ๋ฆฌ
8. ๊ฒ์ ์ฌ์ดํธ ๋ฒ์ ๊ด๋ฆฌ (Github)
Github์ ์๋ก์ด Repository "flora-bota" ์์ฑ
Cursor์ ํฐ๋ฏธ๋์์ Github์ ์ฐ๋ ๋ฐ ์ ๋ก๋
9. ๊ฒ์ ์ฌ์ดํธ ๋ฐฐํฌ (Vercel)
Vercel์ GitHub ๊ณ์ ๊ณผ ์ฐ๋
ํ๋ก์ ํธ ์ค์ ์ ๋ง์น ํ "Deploy"ํ๋ฉด ์๋ ๋ฐฐํฌ
(์ด์ ์ฌ๋ก ์ฐธ์กฐ: https://www.gpters.org/nocode/post/flora-bota-2qWP1XtxpzNITEB)
10. ์์ฑ ๊ฒ์ ๋ณด๊ธฐ: "Potion Mixer" https://posion-mixer.vercel.app/
๊ฒฐ๊ณผ์ ๋ฐฐ์ด ์
์ค๋๋ฅ ์์ DeepLearning.AI ์ฌ์ดํธ ๊ฐ์์ธ Vibe Coding 101์ ๋์ค๋ ์์น์ (์ต์ง๋ก ๐คฃ)์ ์ฉํ์ฌ ๋ฐฐ์ด ์ ์ ์ ๋ฆฌํด๋ณด์์ต๋๋ค.
ํ๋ง๋๋ก ํ์๋ฉด, "์ธ๊ฐ์ vibe(๋ฐฉํฅ๊ณผ ๊ฐ๊ฐ)๋ฅผ ์ฃผ๊ณ , ์ฝ๋๋ AI๊ฐ ๋ง๋ค์ง๋ง, ๊ฑฐ๊ธฐ์ ๋๋๋ ๊ฒ์ด ์๋๋ ๊ฑฐ์ฃ !" ๐คฉ
Vibe ์ฝ๋ฉ์ ํต์ฌ ์์น
์ด๊ธฐ์ ์ง๊ด์ ์ผ๋ก ๋น ๋ฅด๊ฒ, ์ดํ์ ๊ตฌ์กฐ์ ์ผ๋ก ๋ค๋ฌ์ต๋๋ค.
๋ฌธ์ ๋ฅผ ๋ช ํํ๊ฒ ์ ์ํ๊ณ , ๊ตฌ์ฒด์ ํ๋กฌํํธ๋ฅผ ์์ฑํฉ๋๋ค.
AI๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ํ ์คํธยท๊ฒํ ํฉ๋๋ค.
๊ฐ๋ฐ์๋ ์ ๋ต๊ฐ๋ก์ ์ ํ ๋ฐฉํฅ๊ณผ ํ์ง ๊ด๋ฆฌ์ ์ง์คํฉ๋๋ค.
๋น ๋ฅธ ์คํ๊ณผ ํ๋กํ ํ์ ์ ์์ ์ ๊ทน ํ์ฉํฉ๋๋ค.
๋ช ํํ ํ๋กฌํํธ ์์ฑ์ ์ค์์ฑ
ChatGPT O3๋ก ๊ฒ์ ๊ธฐํ ์ ๊ตฌ์ฒด์ ์ธ ๋ชฉํ์ ๊ธฐ๋ฅ ๋ช ์ํ์ต๋๋ค.
Task Master MCP๋ก PRD ์์ฑ ์ ๋จ๊ณ๋ณ ๋ช ํํ ์๊ตฌ์ฌํญ์ ์ ์ํ ์ ์์์ด์.
์์ ์ชผ๊ฐ๊ธฐ์ ํจ๊ณผ
Cursor๊ฐ ์ ์ฒด ๊ฒ์์ ํ์ด์ง๋ณ, ์ปดํฌ๋ํธ๋ณ๋ก ์ธ๋ถํํ์ฌ ๊ฐ๋ฐํ์ต๋๋ค.
PRD โ Task ์์ฑ โ ์์ฐจ์ ๊ฐ๋ฐ์ ์ฒด๊ณ์ ์ ๊ทผ์ด ํจ๊ณผ์ ์ ๋๋ค.
๋ณต์กํ ๊ฒ์ ๋ก์ง์ ๋จ๊ณ๋ณ๋ก ๊ตฌํํ์ฌ์ผ ์ค๋ฅ ์ต์ํ๊ฐ ๊ฐ๋ฅํ ๊ฒ์ ๋๋ค.
Revert ์ต๊ดํ์ ์ ์ฉ
๋์์ธ ์์ ๊ณผ์ ์์ "์คํ๊ฒํฐ ์ฝ๋" ๋ฌธ์ ๋ฐ์ ์ ์ด์ ๋ฒ์ ์ผ๋ก ๋๋๋ฆฌ๊ธฐ ์ ๊ทน ํ์ฉํ์ต๋๋ค.
๋ถ๋ถ ์์ ๋ณด๋ค ์์ ์ ์ธ ์ด์ ๋ฒ์ ์์ ์ฌ์์ํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์์ ์ฒดํํ์ด์.
Github ๋ฒ์ ๊ด๋ฆฌ๋ ์ธ์ ๋ ๋๋๋ฆด ์ ์๋ ํ๊ฒฝ ๊ตฌ์ถํ๋ ๊ฒ์์ ์๊ฒ ๋์์ด์.
๋ฐ๋ณต์ ์คํ๊ณผ ๊ฐ์
Sequential Thinking MCP๊ฐ ์๋์ผ๋ก ๋ฌธ์ ์ ์ ์ ๊ฒํ๊ณ ์์ ํ๋ ๊ณผ์ ๊ฒฝํํ์ต๋๋ค. ์ด๋์ ์ฌ์ฉํ๋ ๊ฒ์ด๊ตฐ์!
์ฌ๋ฌ ์ฐจ๋ก ํ ์คํธ๋ฅผ ํตํด ๊ฒ์ ๋ก์ง๊ณผ UI/UX ๊ฐ์ ํ์ต๋๋ค.
AI ์ ์์ ๊ฒํ ํ๋ฉฐ ์ ์ฐจ ์์ฑ๋๋ฅผ ํฅ์ํ ์ ์์์ด์!