create-ax-project 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/template/.claude/CLAUDE.md +0 -7
- package/template/.claude/commands/CLAUDE.md +0 -0
- package/template/.claude/hooks/CLAUDE.md +0 -0
- package/template/.claude/skills/ai-collaboration/CLAUDE.md +0 -0
- package/template/.claude/skills/auto-checkpoint/CLAUDE.md +0 -0
- package/template/.claude/skills/context-compression/CLAUDE.md +0 -0
- package/template/.claude/skills/context-compression/prompts/CLAUDE.md +0 -0
- package/template/.claude/skills/output-validator/CLAUDE.md +0 -0
- package/template/.claude/skills/smart-handoff/CLAUDE.md +0 -0
- package/template/.claude/skills/stage-transition/CLAUDE.md +0 -0
- package/template/.claude/skills/stage-transition/prompts/CLAUDE.md +0 -0
- package/template/config/CLAUDE.md +0 -0
- package/template/scripts/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/HANDOFF.md +0 -110
- package/template/stages/01-brainstorm/inputs/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/inputs/project_brief.md +0 -40
- package/template/stages/01-brainstorm/outputs/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/outputs/ideas.md +0 -159
- package/template/stages/01-brainstorm/outputs/requirements_analysis.md +0 -222
- package/template/stages/01-brainstorm/prompts/CLAUDE.md +0 -0
- package/template/stages/01-brainstorm/templates/CLAUDE.md +0 -0
- package/template/stages/02-research/HANDOFF.md +0 -158
- package/template/stages/02-research/outputs/CLAUDE.md +0 -0
- package/template/stages/02-research/outputs/feasibility_report.md +0 -176
- package/template/stages/02-research/outputs/tech_research.md +0 -403
- package/template/stages/02-research/prompts/CLAUDE.md +0 -0
- package/template/stages/03-planning/HANDOFF.md +0 -168
- package/template/stages/03-planning/outputs/CLAUDE.md +0 -0
- package/template/stages/03-planning/outputs/architecture.md +0 -400
- package/template/stages/03-planning/outputs/implementation.yaml +0 -209
- package/template/stages/03-planning/outputs/project_plan.md +0 -204
- package/template/stages/03-planning/outputs/tech_stack.md +0 -176
- package/template/stages/03-planning/prompts/CLAUDE.md +0 -0
- package/template/stages/04-ui-ux/HANDOFF.md +0 -165
- package/template/stages/04-ui-ux/outputs/CLAUDE.md +0 -0
- package/template/stages/04-ui-ux/outputs/design_system.md +0 -449
- package/template/stages/04-ui-ux/outputs/user_flows.md +0 -321
- package/template/stages/04-ui-ux/outputs/wireframes.md +0 -241
- package/template/stages/04-ui-ux/prompts/CLAUDE.md +0 -0
- package/template/stages/05-task-management/HANDOFF.md +0 -187
- package/template/stages/05-task-management/outputs/CLAUDE.md +0 -0
- package/template/stages/05-task-management/outputs/milestones.md +0 -253
- package/template/stages/05-task-management/outputs/sprint_plan.md +0 -203
- package/template/stages/05-task-management/outputs/tasks.md +0 -402
- package/template/stages/05-task-management/prompts/CLAUDE.md +0 -0
- package/template/stages/05-task-management/templates/CLAUDE.md +0 -0
- package/template/stages/06-implementation/HANDOFF.md +0 -184
- package/template/stages/06-implementation/prompts/CLAUDE.md +0 -0
- package/template/stages/07-refactoring/HANDOFF.md +0 -82
- package/template/stages/07-refactoring/outputs/refactoring_report.md +0 -102
- package/template/stages/07-refactoring/prompts/CLAUDE.md +0 -0
- package/template/stages/08-qa/HANDOFF.md +0 -114
- package/template/stages/08-qa/outputs/qa_report.md +0 -138
- package/template/stages/08-qa/prompts/CLAUDE.md +0 -0
- package/template/stages/09-testing/HANDOFF.md +0 -118
- package/template/stages/09-testing/outputs/test_report.md +0 -146
- package/template/stages/09-testing/prompts/CLAUDE.md +0 -0
- package/template/stages/10-deployment/HANDOFF.md +0 -141
- package/template/stages/10-deployment/prompts/CLAUDE.md +0 -0
- package/template/stages/10-deployment/templates/CLAUDE.md +0 -0
- package/template/state/templates/CLAUDE.md +0 -0
|
@@ -1,187 +0,0 @@
|
|
|
1
|
-
# HANDOFF: 05-task-management → 06-implementation
|
|
2
|
-
|
|
3
|
-
> 생성일: 2026-01-21
|
|
4
|
-
> 프로젝트: snake-game
|
|
5
|
-
> 현재 스테이지: 05-task-management (완료)
|
|
6
|
-
> 다음 스테이지: 06-implementation
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## ✅ 완료된 작업
|
|
11
|
-
|
|
12
|
-
- [x] 25개 태스크 분해 (6개 에픽)
|
|
13
|
-
- [x] 4개 스프린트 계획
|
|
14
|
-
- [x] 4개 마일스톤 정의
|
|
15
|
-
- [x] 의존성 그래프 작성
|
|
16
|
-
- [x] 우선순위 지정 (MoSCoW)
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## 📁 생성된 산출물
|
|
21
|
-
|
|
22
|
-
| 파일 | 설명 |
|
|
23
|
-
|------|------|
|
|
24
|
-
| `outputs/tasks.md` | 25개 태스크 상세 목록 |
|
|
25
|
-
| `outputs/sprint_plan.md` | 4개 스프린트 계획 |
|
|
26
|
-
| `outputs/milestones.md` | 4개 마일스톤 정의 |
|
|
27
|
-
| `HANDOFF.md` | 이 문서 |
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## 🚀 06-implementation 즉시 실행 태스크
|
|
32
|
-
|
|
33
|
-
### Sprint 1 태스크 (순서대로)
|
|
34
|
-
|
|
35
|
-
| 순서 | ID | 태스크 | 예상 시간 |
|
|
36
|
-
|------|-----|--------|----------|
|
|
37
|
-
| 1 | TASK-001 | Vite + React + TS 프로젝트 초기화 | 10분 |
|
|
38
|
-
| 2 | TASK-002 | 타입 정의 (types/index.ts) | 15분 |
|
|
39
|
-
| 3 | TASK-003 | 상수 정의 (constants/config.ts) | 10분 |
|
|
40
|
-
| 4 | TASK-004 | 글로벌 스타일 (styles/index.css) | 15분 |
|
|
41
|
-
| 5 | TASK-005 | useGameLoop 훅 | 20분 |
|
|
42
|
-
| 6 | TASK-007 | collision.ts | 15분 |
|
|
43
|
-
| 7 | TASK-009 | random.ts | 10분 |
|
|
44
|
-
| 8 | TASK-008 | renderer.ts | 25분 |
|
|
45
|
-
| 9 | TASK-006 | gameReducer | 30분 |
|
|
46
|
-
| 10 | TASK-016 | useKeyboard 훅 | 20분 |
|
|
47
|
-
|
|
48
|
-
---
|
|
49
|
-
|
|
50
|
-
## 📐 프로젝트 구조 (목표)
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
snake-game/
|
|
54
|
-
├── public/
|
|
55
|
-
│ └── favicon.svg
|
|
56
|
-
├── src/
|
|
57
|
-
│ ├── components/
|
|
58
|
-
│ │ ├── CanvasLayer.tsx
|
|
59
|
-
│ │ ├── CanvasLayer.module.css
|
|
60
|
-
│ │ ├── ScoreBoard.tsx
|
|
61
|
-
│ │ ├── ScoreBoard.module.css
|
|
62
|
-
│ │ ├── StartScreen.tsx
|
|
63
|
-
│ │ ├── GameOverModal.tsx
|
|
64
|
-
│ │ └── MobileControls.tsx
|
|
65
|
-
│ │
|
|
66
|
-
│ ├── hooks/
|
|
67
|
-
│ │ ├── useGameLoop.ts
|
|
68
|
-
│ │ ├── useKeyboard.ts
|
|
69
|
-
│ │ ├── useSwipe.ts
|
|
70
|
-
│ │ └── useHighScore.ts
|
|
71
|
-
│ │
|
|
72
|
-
│ ├── engine/
|
|
73
|
-
│ │ ├── gameReducer.ts
|
|
74
|
-
│ │ ├── collision.ts
|
|
75
|
-
│ │ └── renderer.ts
|
|
76
|
-
│ │
|
|
77
|
-
│ ├── types/
|
|
78
|
-
│ │ └── index.ts
|
|
79
|
-
│ │
|
|
80
|
-
│ ├── constants/
|
|
81
|
-
│ │ └── config.ts
|
|
82
|
-
│ │
|
|
83
|
-
│ ├── utils/
|
|
84
|
-
│ │ └── random.ts
|
|
85
|
-
│ │
|
|
86
|
-
│ ├── styles/
|
|
87
|
-
│ │ └── index.css
|
|
88
|
-
│ │
|
|
89
|
-
│ ├── App.tsx
|
|
90
|
-
│ ├── GameEngine.tsx
|
|
91
|
-
│ └── main.tsx
|
|
92
|
-
│
|
|
93
|
-
├── index.html
|
|
94
|
-
├── package.json
|
|
95
|
-
├── tsconfig.json
|
|
96
|
-
└── vite.config.ts
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
---
|
|
100
|
-
|
|
101
|
-
## 🎯 핵심 구현 사항
|
|
102
|
-
|
|
103
|
-
### 1. 타입 정의 (TASK-002)
|
|
104
|
-
|
|
105
|
-
```typescript
|
|
106
|
-
// 필수 타입
|
|
107
|
-
export interface Point { x: number; y: number; }
|
|
108
|
-
export type Direction = 'UP' | 'DOWN' | 'LEFT' | 'RIGHT';
|
|
109
|
-
export type GameStatus = 'IDLE' | 'PLAYING' | 'PAUSED' | 'GAME_OVER';
|
|
110
|
-
export interface GameState { ... }
|
|
111
|
-
export type GameAction = { type: '...' } | ...;
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
### 2. 게임 설정 (TASK-003)
|
|
115
|
-
|
|
116
|
-
```typescript
|
|
117
|
-
export const GAME_CONFIG = {
|
|
118
|
-
boardSize: 20,
|
|
119
|
-
cellSize: 20,
|
|
120
|
-
initialSpeed: 150,
|
|
121
|
-
speedDecrement: 10,
|
|
122
|
-
minSpeed: 50,
|
|
123
|
-
pointsPerFood: 10,
|
|
124
|
-
pointsForLevelUp: 50,
|
|
125
|
-
};
|
|
126
|
-
```
|
|
127
|
-
|
|
128
|
-
### 3. 디자인 토큰 (TASK-004)
|
|
129
|
-
|
|
130
|
-
```css
|
|
131
|
-
:root {
|
|
132
|
-
--color-primary: #00ff88;
|
|
133
|
-
--color-secondary: #ff6b6b;
|
|
134
|
-
--color-bg: #1a1a2e;
|
|
135
|
-
--color-surface: #16213e;
|
|
136
|
-
}
|
|
137
|
-
```
|
|
138
|
-
|
|
139
|
-
---
|
|
140
|
-
|
|
141
|
-
## ⚠️ 주의사항
|
|
142
|
-
|
|
143
|
-
1. **순서 준수**: 의존성 순서대로 구현
|
|
144
|
-
2. **타입 우선**: 모든 코드에 타입 적용
|
|
145
|
-
3. **함수형 컴포넌트**: Class 컴포넌트 금지
|
|
146
|
-
4. **CSS Modules**: 스타일 스코프 격리
|
|
147
|
-
5. **외부 엔진 금지**: 순수 React + Canvas
|
|
148
|
-
|
|
149
|
-
---
|
|
150
|
-
|
|
151
|
-
## 📊 예상 시간
|
|
152
|
-
|
|
153
|
-
| 항목 | 시간 |
|
|
154
|
-
|------|------|
|
|
155
|
-
| Sprint 1 (MVP 기반) | ~2시간 50분 |
|
|
156
|
-
| Sprint 2 (MVP 완성) | ~2시간 25분 |
|
|
157
|
-
| **06-implementation 총계** | ~5시간 15분 |
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
## 🔗 참조 문서
|
|
162
|
-
|
|
163
|
-
| 문서 | 경로 |
|
|
164
|
-
|------|------|
|
|
165
|
-
| 아키텍처 | `stages/03-planning/outputs/architecture.md` |
|
|
166
|
-
| 기술 스택 | `stages/03-planning/outputs/tech_stack.md` |
|
|
167
|
-
| 구현 규칙 | `stages/03-planning/outputs/implementation.yaml` |
|
|
168
|
-
| 와이어프레임 | `stages/04-ui-ux/outputs/wireframes.md` |
|
|
169
|
-
| 디자인 시스템 | `stages/04-ui-ux/outputs/design_system.md` |
|
|
170
|
-
|
|
171
|
-
---
|
|
172
|
-
|
|
173
|
-
## 🚀 다음 단계
|
|
174
|
-
|
|
175
|
-
```bash
|
|
176
|
-
# 다음 스테이지 실행
|
|
177
|
-
/run-stage 06-implementation
|
|
178
|
-
|
|
179
|
-
# 또는
|
|
180
|
-
/implement
|
|
181
|
-
```
|
|
182
|
-
|
|
183
|
-
---
|
|
184
|
-
|
|
185
|
-
**생성자**: ClaudeCode
|
|
186
|
-
**검토자**: -
|
|
187
|
-
**승인**: 대기
|
|
File without changes
|
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
# 🎯 Snake Game - 마일스톤 정의
|
|
2
|
-
|
|
3
|
-
> 생성일: 2026-01-21
|
|
4
|
-
> 스테이지: 05-task-management
|
|
5
|
-
> 프로젝트: snake-game
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 마일스톤 개요
|
|
10
|
-
|
|
11
|
-
| ID | 마일스톤 | 목표 | 완료 스테이지 |
|
|
12
|
-
|----|---------|------|-------------|
|
|
13
|
-
| M1 | MVP 기반 | 게임 코어 로직 완성 | 06-implementation (전반) |
|
|
14
|
-
| M2 | MVP 완성 | 플레이 가능한 게임 | 06-implementation (완료) |
|
|
15
|
-
| M3 | 품질 개선 | 모바일 지원 + 버그 수정 | 08-qa |
|
|
16
|
-
| M4 | 배포 | 프로덕션 배포 | 10-deployment |
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## M1: MVP 기반 (Foundation)
|
|
21
|
-
|
|
22
|
-
### 목표
|
|
23
|
-
게임의 핵심 로직과 인프라를 구축합니다.
|
|
24
|
-
|
|
25
|
-
### 포함 태스크
|
|
26
|
-
- TASK-001 ~ TASK-009, TASK-016
|
|
27
|
-
|
|
28
|
-
### 산출물
|
|
29
|
-
|
|
30
|
-
| 산출물 | 위치 | 설명 |
|
|
31
|
-
|--------|------|------|
|
|
32
|
-
| 프로젝트 구조 | `snake-game/` | Vite + React + TS |
|
|
33
|
-
| 타입 정의 | `src/types/index.ts` | 모든 게임 타입 |
|
|
34
|
-
| 상수 | `src/constants/config.ts` | 게임 설정값 |
|
|
35
|
-
| 게임 루프 훅 | `src/hooks/useGameLoop.ts` | rAF 기반 |
|
|
36
|
-
| 키보드 훅 | `src/hooks/useKeyboard.ts` | 방향키 처리 |
|
|
37
|
-
| 충돌 감지 | `src/engine/collision.ts` | 벽/몸통/먹이 |
|
|
38
|
-
| 렌더러 | `src/engine/renderer.ts` | Canvas 렌더링 |
|
|
39
|
-
| 리듀서 | `src/engine/gameReducer.ts` | 상태 관리 |
|
|
40
|
-
| 유틸리티 | `src/utils/random.ts` | 랜덤 위치 |
|
|
41
|
-
|
|
42
|
-
### 성공 기준
|
|
43
|
-
|
|
44
|
-
```
|
|
45
|
-
[ ] TypeScript 컴파일 성공 (tsc --noEmit)
|
|
46
|
-
[ ] ESLint 경고 0개
|
|
47
|
-
[ ] 콘솔에서 게임 루프 틱 확인
|
|
48
|
-
[ ] 빈 Canvas에 그리드 렌더링
|
|
49
|
-
[ ] 키보드 입력 감지 (콘솔 로그)
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
### 검증 방법
|
|
53
|
-
|
|
54
|
-
```bash
|
|
55
|
-
# 타입 체크
|
|
56
|
-
npm run typecheck
|
|
57
|
-
|
|
58
|
-
# 린트
|
|
59
|
-
npm run lint
|
|
60
|
-
|
|
61
|
-
# 개발 서버 실행 후 콘솔 확인
|
|
62
|
-
npm run dev
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
---
|
|
66
|
-
|
|
67
|
-
## M2: MVP 완성 (Playable)
|
|
68
|
-
|
|
69
|
-
### 목표
|
|
70
|
-
사용자가 실제로 플레이할 수 있는 게임을 완성합니다.
|
|
71
|
-
|
|
72
|
-
### 포함 태스크
|
|
73
|
-
- TASK-010 ~ TASK-014, TASK-018 ~ TASK-021
|
|
74
|
-
|
|
75
|
-
### 산출물
|
|
76
|
-
|
|
77
|
-
| 산출물 | 위치 | 설명 |
|
|
78
|
-
|--------|------|------|
|
|
79
|
-
| GameEngine | `src/GameEngine.tsx` | 게임 통합 컴포넌트 |
|
|
80
|
-
| CanvasLayer | `src/components/CanvasLayer.tsx` | Canvas 래퍼 |
|
|
81
|
-
| ScoreBoard | `src/components/ScoreBoard.tsx` | 점수판 |
|
|
82
|
-
| GameOverModal | `src/components/GameOverModal.tsx` | 게임 오버 |
|
|
83
|
-
| useHighScore | `src/hooks/useHighScore.ts` | 최고 점수 |
|
|
84
|
-
| 스타일 | `src/styles/` | CSS Modules |
|
|
85
|
-
|
|
86
|
-
### 성공 기준
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
[ ] 방향키로 뱀 조작 가능
|
|
90
|
-
[ ] 먹이 먹으면 뱀 성장 + 점수 증가
|
|
91
|
-
[ ] 벽/몸통 충돌 시 게임 오버
|
|
92
|
-
[ ] 게임 오버 모달에서 재시작 가능
|
|
93
|
-
[ ] 최고 점수 localStorage 저장/불러오기
|
|
94
|
-
[ ] 레벨업 시 속도 증가
|
|
95
|
-
[ ] 일시정지/재개 동작
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
### 검증 방법
|
|
99
|
-
|
|
100
|
-
```bash
|
|
101
|
-
# 개발 서버에서 직접 플레이
|
|
102
|
-
npm run dev
|
|
103
|
-
|
|
104
|
-
# 체크리스트
|
|
105
|
-
# 1. 방향키로 이동
|
|
106
|
-
# 2. 먹이 먹기
|
|
107
|
-
# 3. 벽에 부딪히기
|
|
108
|
-
# 4. 재시작
|
|
109
|
-
# 5. 최고 점수 확인
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
---
|
|
113
|
-
|
|
114
|
-
## M3: 품질 개선 (Quality)
|
|
115
|
-
|
|
116
|
-
### 목표
|
|
117
|
-
모바일 지원, 코드 품질, 버그 수정을 완료합니다.
|
|
118
|
-
|
|
119
|
-
### 포함 태스크
|
|
120
|
-
- TASK-015, TASK-017, TASK-013
|
|
121
|
-
- 07-refactoring, 08-qa 태스크
|
|
122
|
-
|
|
123
|
-
### 산출물
|
|
124
|
-
|
|
125
|
-
| 산출물 | 위치 | 설명 |
|
|
126
|
-
|--------|------|------|
|
|
127
|
-
| useSwipe | `src/hooks/useSwipe.ts` | 터치 스와이프 |
|
|
128
|
-
| MobileControls | `src/components/MobileControls.tsx` | D-Pad |
|
|
129
|
-
| StartScreen | `src/components/StartScreen.tsx` | 시작 화면 |
|
|
130
|
-
| 리팩토링 결과 | - | 코드 개선 |
|
|
131
|
-
| 버그 수정 | - | 이슈 해결 |
|
|
132
|
-
|
|
133
|
-
### 성공 기준
|
|
134
|
-
|
|
135
|
-
```
|
|
136
|
-
[ ] 모바일에서 스와이프로 조작 가능
|
|
137
|
-
[ ] 모바일에서 D-Pad로 조작 가능
|
|
138
|
-
[ ] 시작 화면 표시
|
|
139
|
-
[ ] 코드 중복 제거
|
|
140
|
-
[ ] 60fps 유지 (Chrome DevTools)
|
|
141
|
-
[ ] 알려진 버그 0개
|
|
142
|
-
[ ] 반응형 레이아웃 동작
|
|
143
|
-
```
|
|
144
|
-
|
|
145
|
-
### 검증 방법
|
|
146
|
-
|
|
147
|
-
```bash
|
|
148
|
-
# 모바일 에뮬레이션
|
|
149
|
-
# Chrome DevTools > Device Toolbar
|
|
150
|
-
|
|
151
|
-
# 성능 확인
|
|
152
|
-
# Chrome DevTools > Performance Tab
|
|
153
|
-
|
|
154
|
-
# 버그 체크리스트
|
|
155
|
-
# - 빠른 방향 전환
|
|
156
|
-
# - 경계 조건 (벽 바로 앞에서 방향 전환)
|
|
157
|
-
# - 긴 플레이 시 메모리 누수
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
---
|
|
161
|
-
|
|
162
|
-
## M4: 배포 (Deployment)
|
|
163
|
-
|
|
164
|
-
### 목표
|
|
165
|
-
프로덕션 환경에 배포하고 테스트를 완료합니다.
|
|
166
|
-
|
|
167
|
-
### 포함 태스크
|
|
168
|
-
- TASK-022 ~ TASK-025
|
|
169
|
-
|
|
170
|
-
### 산출물
|
|
171
|
-
|
|
172
|
-
| 산출물 | 위치 | 설명 |
|
|
173
|
-
|--------|------|------|
|
|
174
|
-
| 단위 테스트 | `src/__tests__/` | Vitest |
|
|
175
|
-
| E2E 테스트 | `e2e/` | Playwright |
|
|
176
|
-
| 빌드 | `dist/` | 프로덕션 빌드 |
|
|
177
|
-
| 배포 URL | - | 공개 URL |
|
|
178
|
-
|
|
179
|
-
### 성공 기준
|
|
180
|
-
|
|
181
|
-
```
|
|
182
|
-
[ ] 단위 테스트 커버리지 80%+
|
|
183
|
-
[ ] E2E 테스트 통과 (선택)
|
|
184
|
-
[ ] 빌드 성공
|
|
185
|
-
[ ] 번들 크기 < 200KB
|
|
186
|
-
[ ] 배포 URL 접근 가능
|
|
187
|
-
[ ] 프로덕션에서 게임 플레이 가능
|
|
188
|
-
[ ] 모바일 브라우저에서 동작
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
### 검증 방법
|
|
192
|
-
|
|
193
|
-
```bash
|
|
194
|
-
# 테스트
|
|
195
|
-
npm run test
|
|
196
|
-
npm run test:coverage
|
|
197
|
-
|
|
198
|
-
# 빌드
|
|
199
|
-
npm run build
|
|
200
|
-
|
|
201
|
-
# 빌드 크기 확인
|
|
202
|
-
ls -la dist/
|
|
203
|
-
|
|
204
|
-
# 프리뷰
|
|
205
|
-
npm run preview
|
|
206
|
-
|
|
207
|
-
# 배포 후 URL 테스트
|
|
208
|
-
```
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
## 마일스톤 타임라인
|
|
213
|
-
|
|
214
|
-
```
|
|
215
|
-
M1: MVP 기반 M2: MVP 완성
|
|
216
|
-
[======|======] [======|======]
|
|
217
|
-
Sprint 1 Sprint 2
|
|
218
|
-
|
|
219
|
-
M3: 품질 개선 M4: 배포
|
|
220
|
-
[======|======] [======|====]
|
|
221
|
-
Sprint 3 Sprint 4
|
|
222
|
-
|
|
223
|
-
────────────────────────────────────────
|
|
224
|
-
06-impl 07-ref 09-test
|
|
225
|
-
08-qa 10-deploy
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
---
|
|
229
|
-
|
|
230
|
-
## 체크포인트 정책
|
|
231
|
-
|
|
232
|
-
| 마일스톤 | 체크포인트 | 설명 |
|
|
233
|
-
|---------|-----------|------|
|
|
234
|
-
| M1 완료 | checkpoint_m1 | 코어 로직 완성 시점 |
|
|
235
|
-
| M2 완료 | checkpoint_m2 | MVP 완성 시점 (중요) |
|
|
236
|
-
| M3 완료 | checkpoint_m3 | 품질 개선 완료 |
|
|
237
|
-
| M4 완료 | checkpoint_final | 최종 배포 |
|
|
238
|
-
|
|
239
|
-
```bash
|
|
240
|
-
# 체크포인트 생성 예시
|
|
241
|
-
/checkpoint --name "m2_mvp_complete" --description "MVP 게임 완성"
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
---
|
|
245
|
-
|
|
246
|
-
## ✅ 마일스톤 체크리스트
|
|
247
|
-
|
|
248
|
-
- [x] 4개 마일스톤 정의
|
|
249
|
-
- [x] 각 마일스톤 산출물 명시
|
|
250
|
-
- [x] 성공 기준 정의
|
|
251
|
-
- [x] 검증 방법 제공
|
|
252
|
-
- [x] 타임라인 작성
|
|
253
|
-
- [x] 체크포인트 정책 수립
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
# 🏃 Snake Game - 스프린트 계획
|
|
2
|
-
|
|
3
|
-
> 생성일: 2026-01-21
|
|
4
|
-
> 스테이지: 05-task-management
|
|
5
|
-
> 프로젝트: snake-game
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 스프린트 개요
|
|
10
|
-
|
|
11
|
-
| 스프린트 | 기간 | 목표 | 태스크 수 |
|
|
12
|
-
|---------|------|------|----------|
|
|
13
|
-
| Sprint 1 | 06-implementation (전반) | MVP 기반 구축 | 10 |
|
|
14
|
-
| Sprint 2 | 06-implementation (후반) | MVP 완성 | 8 |
|
|
15
|
-
| Sprint 3 | 07-refactoring ~ 08-qa | 품질 개선 | 4 |
|
|
16
|
-
| Sprint 4 | 09-testing ~ 10-deployment | 테스트 & 배포 | 3 |
|
|
17
|
-
|
|
18
|
-
---
|
|
19
|
-
|
|
20
|
-
## Sprint 1: MVP 기반 구축
|
|
21
|
-
|
|
22
|
-
**목표**: 프로젝트 설정 + 게임 코어 로직 구현
|
|
23
|
-
|
|
24
|
-
**스테이지**: 06-implementation (전반)
|
|
25
|
-
|
|
26
|
-
### 태스크 목록
|
|
27
|
-
|
|
28
|
-
| 순서 | ID | 태스크 | 우선순위 | 예상 시간 |
|
|
29
|
-
|------|-----|--------|---------|----------|
|
|
30
|
-
| 1 | TASK-001 | Vite + React + TS 초기화 | Must | 10분 |
|
|
31
|
-
| 2 | TASK-002 | 타입 정의 | Must | 15분 |
|
|
32
|
-
| 3 | TASK-003 | 상수 정의 | Must | 10분 |
|
|
33
|
-
| 4 | TASK-004 | 글로벌 스타일 | Must | 15분 |
|
|
34
|
-
| 5 | TASK-005 | useGameLoop 훅 | Must | 20분 |
|
|
35
|
-
| 6 | TASK-007 | collision.ts | Must | 15분 |
|
|
36
|
-
| 7 | TASK-009 | random.ts | Must | 10분 |
|
|
37
|
-
| 8 | TASK-008 | renderer.ts | Must | 25분 |
|
|
38
|
-
| 9 | TASK-006 | gameReducer | Must | 30분 |
|
|
39
|
-
| 10 | TASK-016 | useKeyboard 훅 | Must | 20분 |
|
|
40
|
-
|
|
41
|
-
**예상 총 시간**: ~2시간 50분
|
|
42
|
-
|
|
43
|
-
### 완료 기준
|
|
44
|
-
|
|
45
|
-
- [ ] 프로젝트 빌드 및 실행 가능
|
|
46
|
-
- [ ] 타입 정의 완료 (tsc --noEmit 통과)
|
|
47
|
-
- [ ] 게임 루프 동작 (콘솔에서 확인)
|
|
48
|
-
- [ ] 충돌 감지 함수 동작
|
|
49
|
-
- [ ] 렌더러 함수 동작 (빈 Canvas에 그리드 표시)
|
|
50
|
-
- [ ] 키보드 입력 감지
|
|
51
|
-
|
|
52
|
-
---
|
|
53
|
-
|
|
54
|
-
## Sprint 2: MVP 완성
|
|
55
|
-
|
|
56
|
-
**목표**: UI 컴포넌트 + 통합 + 확장 기능
|
|
57
|
-
|
|
58
|
-
**스테이지**: 06-implementation (후반)
|
|
59
|
-
|
|
60
|
-
### 태스크 목록
|
|
61
|
-
|
|
62
|
-
| 순서 | ID | 태스크 | 우선순위 | 예상 시간 |
|
|
63
|
-
|------|-----|--------|---------|----------|
|
|
64
|
-
| 1 | TASK-011 | CanvasLayer 컴포넌트 | Must | 15분 |
|
|
65
|
-
| 2 | TASK-012 | ScoreBoard 컴포넌트 | Must | 15분 |
|
|
66
|
-
| 3 | TASK-014 | GameOverModal 컴포넌트 | Must | 20분 |
|
|
67
|
-
| 4 | TASK-010 | GameEngine 통합 | Must | 30분 |
|
|
68
|
-
| 5 | TASK-018 | 입력 통합 | Must | 15분 |
|
|
69
|
-
| 6 | TASK-020 | useHighScore 훅 | Should | 15분 |
|
|
70
|
-
| 7 | TASK-019 | 레벨 시스템 | Should | 20분 |
|
|
71
|
-
| 8 | TASK-021 | 일시정지 기능 | Should | 15분 |
|
|
72
|
-
|
|
73
|
-
**예상 총 시간**: ~2시간 25분
|
|
74
|
-
|
|
75
|
-
### 완료 기준
|
|
76
|
-
|
|
77
|
-
- [ ] 전체 게임 플레이 가능
|
|
78
|
-
- [ ] 점수 표시 및 증가
|
|
79
|
-
- [ ] 게임 오버 모달 동작
|
|
80
|
-
- [ ] 최고 점수 저장/불러오기
|
|
81
|
-
- [ ] 레벨업 시 속도 증가
|
|
82
|
-
- [ ] 일시정지/재개 동작
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## Sprint 3: 품질 개선
|
|
87
|
-
|
|
88
|
-
**목표**: 모바일 지원 + 코드 리팩토링 + QA
|
|
89
|
-
|
|
90
|
-
**스테이지**: 06-implementation (마무리) → 07-refactoring → 08-qa
|
|
91
|
-
|
|
92
|
-
### 태스크 목록
|
|
93
|
-
|
|
94
|
-
| 순서 | ID | 태스크 | 우선순위 | 예상 시간 | 스테이지 |
|
|
95
|
-
|------|-----|--------|---------|----------|---------|
|
|
96
|
-
| 1 | TASK-017 | useSwipe 훅 | Should | 25분 | 06 |
|
|
97
|
-
| 2 | TASK-015 | MobileControls | Should | 25분 | 06 |
|
|
98
|
-
| 3 | TASK-013 | StartScreen | Should | 20분 | 06 |
|
|
99
|
-
| 4 | - | 코드 리팩토링 | Should | 30분 | 07 |
|
|
100
|
-
| 5 | - | 성능 최적화 | Should | 20분 | 07 |
|
|
101
|
-
| 6 | - | 버그 수정 | Must | 20분 | 08 |
|
|
102
|
-
| 7 | - | 엣지 케이스 검증 | Should | 15분 | 08 |
|
|
103
|
-
|
|
104
|
-
**예상 총 시간**: ~2시간 35분
|
|
105
|
-
|
|
106
|
-
### 완료 기준
|
|
107
|
-
|
|
108
|
-
- [ ] 모바일 터치/스와이프 동작
|
|
109
|
-
- [ ] 모바일 D-Pad 컨트롤 동작
|
|
110
|
-
- [ ] 시작 화면 구현
|
|
111
|
-
- [ ] 코드 중복 제거
|
|
112
|
-
- [ ] 60fps 유지 확인
|
|
113
|
-
- [ ] 알려진 버그 0개
|
|
114
|
-
|
|
115
|
-
---
|
|
116
|
-
|
|
117
|
-
## Sprint 4: 테스트 & 배포
|
|
118
|
-
|
|
119
|
-
**목표**: 테스트 작성 + 프로덕션 배포
|
|
120
|
-
|
|
121
|
-
**스테이지**: 09-testing → 10-deployment
|
|
122
|
-
|
|
123
|
-
### 태스크 목록
|
|
124
|
-
|
|
125
|
-
| 순서 | ID | 태스크 | 우선순위 | 예상 시간 | 스테이지 |
|
|
126
|
-
|------|-----|--------|---------|----------|---------|
|
|
127
|
-
| 1 | TASK-022 | 단위 테스트 | Should | 30분 | 09 |
|
|
128
|
-
| 2 | TASK-023 | E2E 테스트 | Could | 30분 | 09 |
|
|
129
|
-
| 3 | TASK-024 | 빌드 설정 | Must | 15분 | 10 |
|
|
130
|
-
| 4 | TASK-025 | 배포 | Must | 20분 | 10 |
|
|
131
|
-
|
|
132
|
-
**예상 총 시간**: ~1시간 35분
|
|
133
|
-
|
|
134
|
-
### 완료 기준
|
|
135
|
-
|
|
136
|
-
- [ ] 테스트 커버리지 80%+
|
|
137
|
-
- [ ] E2E 테스트 통과
|
|
138
|
-
- [ ] 빌드 성공 (번들 < 200KB)
|
|
139
|
-
- [ ] 배포 URL 접근 가능
|
|
140
|
-
- [ ] 프로덕션에서 게임 플레이 가능
|
|
141
|
-
|
|
142
|
-
---
|
|
143
|
-
|
|
144
|
-
## 스프린트 타임라인
|
|
145
|
-
|
|
146
|
-
```
|
|
147
|
-
Sprint 1 (MVP 기반) Sprint 2 (MVP 완성)
|
|
148
|
-
[===================] [===================]
|
|
149
|
-
~2:50 ~2:25
|
|
150
|
-
|
|
151
|
-
Sprint 3 (품질 개선) Sprint 4 (테스트 & 배포)
|
|
152
|
-
[===================] [===============]
|
|
153
|
-
~2:35 ~1:35
|
|
154
|
-
|
|
155
|
-
────────────────────────────────────────────────
|
|
156
|
-
총 예상 시간: ~9시간 25분
|
|
157
|
-
```
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
## 버퍼 및 리스크 관리
|
|
162
|
-
|
|
163
|
-
### 버퍼 시간
|
|
164
|
-
|
|
165
|
-
| 스프린트 | 예상 시간 | 버퍼 (20%) | 총 시간 |
|
|
166
|
-
|---------|----------|-----------|--------|
|
|
167
|
-
| Sprint 1 | 2:50 | 34분 | 3:24 |
|
|
168
|
-
| Sprint 2 | 2:25 | 29분 | 2:54 |
|
|
169
|
-
| Sprint 3 | 2:35 | 31분 | 3:06 |
|
|
170
|
-
| Sprint 4 | 1:35 | 19분 | 1:54 |
|
|
171
|
-
|
|
172
|
-
**총 예상 시간 (버퍼 포함)**: ~11시간 18분
|
|
173
|
-
|
|
174
|
-
### 리스크 항목
|
|
175
|
-
|
|
176
|
-
| 리스크 | 확률 | 영향 | 대응 |
|
|
177
|
-
|--------|------|------|------|
|
|
178
|
-
| 모바일 터치 이슈 | 중 | 중 | Sprint 3에서 해결, 폴백으로 D-Pad만 사용 |
|
|
179
|
-
| 성능 이슈 | 낮 | 중 | requestAnimationFrame 최적화 |
|
|
180
|
-
| 테스트 지연 | 중 | 낮 | E2E는 Could로 분류, 필요시 스킵 |
|
|
181
|
-
|
|
182
|
-
---
|
|
183
|
-
|
|
184
|
-
## 마일스톤 매핑
|
|
185
|
-
|
|
186
|
-
| 마일스톤 | 완료 스프린트 | 검증 방법 |
|
|
187
|
-
|---------|-------------|----------|
|
|
188
|
-
| M1: MVP 기반 | Sprint 1 | 게임 루프 동작, 키보드 입력 |
|
|
189
|
-
| M2: MVP 완성 | Sprint 2 | 전체 게임 플레이 가능 |
|
|
190
|
-
| M3: 품질 개선 | Sprint 3 | 모바일 지원, 버그 0 |
|
|
191
|
-
| M4: 배포 | Sprint 4 | 프로덕션 URL 접근 |
|
|
192
|
-
|
|
193
|
-
---
|
|
194
|
-
|
|
195
|
-
## ✅ 스프린트 계획 체크리스트
|
|
196
|
-
|
|
197
|
-
- [x] 4개 스프린트 정의
|
|
198
|
-
- [x] 태스크 배분
|
|
199
|
-
- [x] 예상 시간 산정
|
|
200
|
-
- [x] 완료 기준 정의
|
|
201
|
-
- [x] 버퍼 시간 포함
|
|
202
|
-
- [x] 리스크 관리 계획
|
|
203
|
-
- [x] 마일스톤 매핑
|