aiwf 0.3.16 → 0.3.18
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/README.ko.md +1 -1
- package/README.md +88 -229
- package/docs/ADR_MANAGEMENT_GUIDE.ko.md +602 -0
- package/docs/ADR_MANAGEMENT_GUIDE.md +602 -0
- package/docs/API_REFERENCE_FULL.ko.md +160 -4
- package/docs/API_REFERENCE_FULL.md +160 -4
- package/docs/EXAMPLES.ko.md +695 -0
- package/docs/EXAMPLES.md +12 -12
- package/docs/GETTING_STARTED.md +19 -25
- package/docs/MODULE_MANAGEMENT_GUIDE.ko.md +289 -0
- package/docs/MODULE_MANAGEMENT_GUIDE.md +289 -0
- package/docs/PRD.ko.md +2 -2
- package/docs/PRD.md +2 -2
- package/docs/YOLO_SYSTEM_GUIDE.ko.md +542 -0
- package/docs/YOLO_SYSTEM_GUIDE.md +542 -0
- package/package.json +1 -1
- package/src/config/file-lists.js +5 -5
- package/templates/README.md +0 -78
- package/templates/api-server/config.json +0 -64
- package/templates/api-server/template/.aiwf/config.json +0 -56
- package/templates/api-server/template/.aiwf/feature-ledger.json +0 -42
- package/templates/api-server/template/.aiwf/personas/backend-engineer.json +0 -40
- package/templates/api-server/template/.aiwf/scripts/cli.js +0 -111
- package/templates/api-server/template/.env.example +0 -29
- package/templates/api-server/template/.eslintrc.json +0 -23
- package/templates/api-server/template/README.md +0 -171
- package/templates/api-server/template/jest.config.js +0 -26
- package/templates/api-server/template/nodemon.json +0 -9
- package/templates/api-server/template/package.json +0 -61
- package/templates/api-server/template/src/app.ts +0 -60
- package/templates/api-server/template/src/config/swagger.ts +0 -38
- package/templates/api-server/template/src/controllers/aiwfController.ts +0 -54
- package/templates/api-server/template/src/controllers/authController.ts +0 -128
- package/templates/api-server/template/src/controllers/statusController.ts +0 -28
- package/templates/api-server/template/src/index.ts +0 -28
- package/templates/api-server/template/src/middleware/aiwfMiddleware.ts +0 -50
- package/templates/api-server/template/src/middleware/authMiddleware.ts +0 -41
- package/templates/api-server/template/src/middleware/errorHandler.ts +0 -42
- package/templates/api-server/template/src/middleware/notFoundHandler.ts +0 -14
- package/templates/api-server/template/src/middleware/requestLogger.ts +0 -20
- package/templates/api-server/template/src/routes/aiwf.ts +0 -31
- package/templates/api-server/template/src/routes/index.ts +0 -13
- package/templates/api-server/template/src/routes/v1/index.ts +0 -67
- package/templates/api-server/template/src/utils/logger.ts +0 -37
- package/templates/api-server/template/tests/app.test.ts +0 -40
- package/templates/api-server/template/tsconfig.json +0 -43
- package/templates/npm-library/config.json +0 -61
- package/templates/npm-library/template/LICENSE +0 -21
- package/templates/npm-library/template/README.md +0 -201
- package/templates/npm-library/template/package.json +0 -78
- package/templates/web-app/config.json +0 -53
- package/templates/web-app/template/.aiwf/config.json +0 -54
- package/templates/web-app/template/.aiwf/feature-ledger.json +0 -37
- package/templates/web-app/template/.aiwf/personas/fullstack-developer.json +0 -40
- package/templates/web-app/template/.aiwf/scripts/cli.js +0 -110
- package/templates/web-app/template/.eslintrc.cjs +0 -20
- package/templates/web-app/template/README.md +0 -151
- package/templates/web-app/template/index.html +0 -14
- package/templates/web-app/template/package.json +0 -44
- package/templates/web-app/template/postcss.config.js +0 -6
- package/templates/web-app/template/public/vite.svg +0 -1
- package/templates/web-app/template/src/App.tsx +0 -21
- package/templates/web-app/template/src/components/Layout.tsx +0 -57
- package/templates/web-app/template/src/components/aiwf/ContextStatus.tsx +0 -107
- package/templates/web-app/template/src/components/aiwf/TokenUsage.tsx +0 -71
- package/templates/web-app/template/src/index.css +0 -60
- package/templates/web-app/template/src/main.tsx +0 -10
- package/templates/web-app/template/src/pages/AiwfDashboard.tsx +0 -57
- package/templates/web-app/template/src/pages/HomePage.tsx +0 -89
- package/templates/web-app/template/src/pages/NotFound.tsx +0 -25
- package/templates/web-app/template/src/stores/aiwfStore.ts +0 -126
- package/templates/web-app/template/src/types/global.d.ts +0 -9
- package/templates/web-app/template/src/vite-env.d.ts +0 -1
- package/templates/web-app/template/tailwind.config.js +0 -30
- package/templates/web-app/template/tsconfig.json +0 -37
- package/templates/web-app/template/tsconfig.node.json +0 -10
- package/templates/web-app/template/vite.config.ts +0 -23
- /package/rules/global/{code-style-guide.md → aiwf-code-style-guide.md} +0 -0
- /package/rules/global/{coding-principles.md → aiwf-coding-principles.md} +0 -0
- /package/rules/global/{development-process.md → aiwf-development-process.md} +0 -0
- /package/rules/global/{global-rules.md → aiwf-global-rules.md} +0 -0
- /package/rules/manual/{generate-plan-docs.md → aiwf-generate-plan-docs.md} +0 -0
|
@@ -0,0 +1,542 @@
|
|
|
1
|
+
# AIWF YOLO 시스템 가이드
|
|
2
|
+
|
|
3
|
+
> AIWF의 자율 실행 시스템(YOLO 모드)에 대한 종합 가이드
|
|
4
|
+
|
|
5
|
+
[한국어](YOLO_SYSTEM_GUIDE.ko.md) | [English](YOLO_SYSTEM_GUIDE.md)
|
|
6
|
+
|
|
7
|
+
## 목차
|
|
8
|
+
|
|
9
|
+
1. [개요](#개요)
|
|
10
|
+
2. [시스템 구성 요소](#시스템-구성-요소)
|
|
11
|
+
3. [엔지니어링 가드](#엔지니어링-가드)
|
|
12
|
+
4. [체크포인트 매니저](#체크포인트-매니저)
|
|
13
|
+
5. [YOLO 설정](#yolo-설정)
|
|
14
|
+
6. [사용 패턴](#사용-패턴)
|
|
15
|
+
7. [안전 메커니즘](#안전-메커니즘)
|
|
16
|
+
8. [성능 최적화](#성능-최적화)
|
|
17
|
+
9. [문제 해결](#문제-해결)
|
|
18
|
+
10. [모범 사례](#모범-사례)
|
|
19
|
+
|
|
20
|
+
## 개요
|
|
21
|
+
|
|
22
|
+
YOLO(You Only Live Once) 모드는 Claude Code가 최소한의 인간 개입으로 독립적으로 작업할 수 있게 하는 AIWF의 자율 실행 시스템입니다. 이 시스템은 신뢰할 수 있는 자율 운영을 보장하기 위해 정교한 안전 메커니즘, 진행률 추적, 품질 제어를 포함합니다.
|
|
23
|
+
|
|
24
|
+
### 주요 기능
|
|
25
|
+
|
|
26
|
+
- **자율 태스크 실행**: 스프린트나 마일스톤을 자동으로 완료
|
|
27
|
+
- **오버엔지니어링 방지**: 불필요한 복잡성에 대한 내장 가드
|
|
28
|
+
- **진행률 추적**: 포괄적인 체크포인트 및 복구 시스템
|
|
29
|
+
- **품질 제어**: 실시간 코드 품질 모니터링
|
|
30
|
+
- **복구 메커니즘**: 강력한 오류 처리 및 상태 복원
|
|
31
|
+
|
|
32
|
+
## 시스템 구성 요소
|
|
33
|
+
|
|
34
|
+
### 아키텍처 개요
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
YOLO 모드
|
|
38
|
+
├── Engineering Guard (오버엔지니어링 방지)
|
|
39
|
+
├── Checkpoint Manager (진행률 추적 & 복구)
|
|
40
|
+
├── Configuration System (동작 커스터마이징)
|
|
41
|
+
├── Sprint Manager (태스크 조직화)
|
|
42
|
+
└── Recovery System (실패 처리)
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 핵심 모듈
|
|
46
|
+
|
|
47
|
+
1. **`utils/engineering-guard.js`**: 품질 제어 및 복잡성 방지
|
|
48
|
+
2. **`utils/checkpoint-manager.js`**: 진행률 추적 및 복구
|
|
49
|
+
3. **`src/config/yolo-config-template.yaml`**: 설정 템플릿
|
|
50
|
+
4. **`src/commands/yolo-config.js`**: 설정 관리
|
|
51
|
+
5. **`src/cli/checkpoint-cli.js`**: 전용 체크포인트 CLI
|
|
52
|
+
|
|
53
|
+
## 엔지니어링 가드
|
|
54
|
+
|
|
55
|
+
엔지니어링 가드는 자율 실행 중 오버엔지니어링을 방지하고 코드 품질을 유지합니다.
|
|
56
|
+
|
|
57
|
+
### 핵심 기능
|
|
58
|
+
|
|
59
|
+
#### 복잡성 모니터링
|
|
60
|
+
- **파일 크기 제한**: 파일이 너무 커지는 것을 방지
|
|
61
|
+
- **함수 크기 제어**: 함수를 관리 가능한 크기로 유지
|
|
62
|
+
- **중첩 깊이**: 과도한 들여쓰기 제한
|
|
63
|
+
- **패턴 감지**: 디자인 패턴의 과도한 사용 식별
|
|
64
|
+
|
|
65
|
+
#### 설정 옵션
|
|
66
|
+
|
|
67
|
+
```yaml
|
|
68
|
+
overengineering_prevention:
|
|
69
|
+
max_file_lines: 300
|
|
70
|
+
max_function_lines: 50
|
|
71
|
+
max_nesting_depth: 4
|
|
72
|
+
max_abstraction_layers: 3
|
|
73
|
+
limit_design_patterns: true
|
|
74
|
+
no_future_proofing: true
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### 사용 예제
|
|
78
|
+
|
|
79
|
+
#### 프로그래밍 방식 사용
|
|
80
|
+
```javascript
|
|
81
|
+
import { EngineeringGuard } from 'aiwf/utils/engineering-guard';
|
|
82
|
+
|
|
83
|
+
const guard = new EngineeringGuard('.aiwf/yolo-config.yaml');
|
|
84
|
+
|
|
85
|
+
// 단일 파일 검사
|
|
86
|
+
await guard.checkFileComplexity('src/app.js');
|
|
87
|
+
const report = guard.generateReport();
|
|
88
|
+
|
|
89
|
+
// 전체 프로젝트 검사
|
|
90
|
+
const projectReport = await guard.checkProject('./src');
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
#### 실시간 피드백
|
|
94
|
+
```javascript
|
|
95
|
+
// 개발 중 즉각적인 피드백 받기
|
|
96
|
+
const feedback = await guard.provideFeedback('src/new-feature.js');
|
|
97
|
+
console.log(feedback);
|
|
98
|
+
// 출력: [
|
|
99
|
+
// { level: 'warning', message: '파일이 너무 커지고 있습니다...' },
|
|
100
|
+
// { level: 'suggestion', message: '복잡한 조건문을 별도 함수로 추출 고려...' }
|
|
101
|
+
// ]
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### 감지 기능
|
|
105
|
+
|
|
106
|
+
#### 디자인 패턴 감지
|
|
107
|
+
- Factory 패턴
|
|
108
|
+
- Singleton 사용
|
|
109
|
+
- Observer 구현
|
|
110
|
+
- Strategy 패턴
|
|
111
|
+
- Decorator 패턴
|
|
112
|
+
- Adapter 패턴
|
|
113
|
+
|
|
114
|
+
#### 미래 대비 코드 감지
|
|
115
|
+
- 미래 참조가 있는 TODO 주석
|
|
116
|
+
- 조건부 FIXME 항목
|
|
117
|
+
- 추측성 주석
|
|
118
|
+
- 예약/플레이스홀더 코드
|
|
119
|
+
- 버전별 검사
|
|
120
|
+
|
|
121
|
+
## 체크포인트 매니저
|
|
122
|
+
|
|
123
|
+
체크포인트 매니저는 진행률 추적, 상태 지속성, 복구 메커니즘을 처리합니다.
|
|
124
|
+
|
|
125
|
+
### 핵심 기능
|
|
126
|
+
|
|
127
|
+
#### 세션 관리
|
|
128
|
+
```javascript
|
|
129
|
+
import { CheckpointManager } from 'aiwf/utils/checkpoint-manager';
|
|
130
|
+
|
|
131
|
+
const manager = new CheckpointManager('./project-root');
|
|
132
|
+
|
|
133
|
+
// YOLO 세션 시작
|
|
134
|
+
await manager.startSession('S01', 'sprint');
|
|
135
|
+
|
|
136
|
+
// 태스크 진행률 추적
|
|
137
|
+
await manager.startTask('T001_setup_api');
|
|
138
|
+
await manager.completeTask('T001_setup_api', { files_created: 5 });
|
|
139
|
+
|
|
140
|
+
// 수동 체크포인트 생성
|
|
141
|
+
await manager.createCheckpoint('manual', { milestone: 'API setup complete' });
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
#### 복구 작업
|
|
145
|
+
```javascript
|
|
146
|
+
// 사용 가능한 체크포인트 목록
|
|
147
|
+
const checkpoints = await manager.listCheckpoints();
|
|
148
|
+
|
|
149
|
+
// 체크포인트에서 복구
|
|
150
|
+
await manager.restoreFromCheckpoint('cp_1234567890');
|
|
151
|
+
|
|
152
|
+
// 진행률 리포트 생성
|
|
153
|
+
const report = await manager.generateProgressReport();
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
### 체크포인트 유형
|
|
157
|
+
|
|
158
|
+
1. **session_start**: YOLO 세션 시작 시 생성
|
|
159
|
+
2. **task_complete**: 각 태스크 완료 후 생성
|
|
160
|
+
3. **auto**: 일정 간격으로 자동 생성
|
|
161
|
+
4. **manual**: 사용자 요청에 의해 생성
|
|
162
|
+
5. **session_end**: 세션 종료 시 생성
|
|
163
|
+
|
|
164
|
+
### 상태 구조
|
|
165
|
+
|
|
166
|
+
```json
|
|
167
|
+
{
|
|
168
|
+
"session_id": "1703123456789",
|
|
169
|
+
"started_at": "2025-01-27T10:00:00Z",
|
|
170
|
+
"sprint_id": "S01",
|
|
171
|
+
"mode": "sprint",
|
|
172
|
+
"completed_tasks": [
|
|
173
|
+
{
|
|
174
|
+
"id": "T001_setup_api",
|
|
175
|
+
"completed_at": "2025-01-27T10:15:00Z",
|
|
176
|
+
"duration": 900000,
|
|
177
|
+
"attempts": 1
|
|
178
|
+
}
|
|
179
|
+
],
|
|
180
|
+
"current_task": null,
|
|
181
|
+
"metrics": {
|
|
182
|
+
"completed_tasks": 1,
|
|
183
|
+
"failed_tasks": 0,
|
|
184
|
+
"total_time": 900000,
|
|
185
|
+
"avg_task_time": 900000
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## YOLO 설정
|
|
191
|
+
|
|
192
|
+
### 설정 템플릿
|
|
193
|
+
|
|
194
|
+
YOLO 설정 시스템은 YAML 파일을 사용하여 자율 동작을 제어합니다:
|
|
195
|
+
|
|
196
|
+
```yaml
|
|
197
|
+
# 엔지니어링 레벨 (minimal/balanced/complete)
|
|
198
|
+
engineering_level: minimal
|
|
199
|
+
|
|
200
|
+
# 범위 확산 방지를 위한 포커스 규칙
|
|
201
|
+
focus_rules:
|
|
202
|
+
requirement_first: true
|
|
203
|
+
simple_solution: true
|
|
204
|
+
no_gold_plating: true
|
|
205
|
+
stay_on_track: true
|
|
206
|
+
|
|
207
|
+
# 실행 설정
|
|
208
|
+
execution:
|
|
209
|
+
fast_mode: true
|
|
210
|
+
run_tests: true
|
|
211
|
+
auto_commit: false
|
|
212
|
+
branch_strategy: feature
|
|
213
|
+
|
|
214
|
+
# 안전 중단점
|
|
215
|
+
breakpoints:
|
|
216
|
+
critical_files:
|
|
217
|
+
- .env
|
|
218
|
+
- database/migrations/*
|
|
219
|
+
test_failure_threshold: 10
|
|
220
|
+
schema_changes: true
|
|
221
|
+
|
|
222
|
+
# 체크포인트 설정
|
|
223
|
+
checkpoint:
|
|
224
|
+
enabled: true
|
|
225
|
+
interval: 5
|
|
226
|
+
recovery_mode: auto
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
### 설정 관리
|
|
230
|
+
|
|
231
|
+
#### CLI 명령어
|
|
232
|
+
```bash
|
|
233
|
+
# 설정 초기화
|
|
234
|
+
aiwf yolo-config init
|
|
235
|
+
|
|
236
|
+
# 대화형 설정 마법사
|
|
237
|
+
aiwf yolo-config wizard
|
|
238
|
+
|
|
239
|
+
# 현재 설정 표시
|
|
240
|
+
aiwf yolo-config show
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
#### 프로그래밍 방식 설정
|
|
244
|
+
```javascript
|
|
245
|
+
import { createYoloConfig, createInteractiveYoloConfig } from 'aiwf/commands/yolo-config';
|
|
246
|
+
|
|
247
|
+
// 기본값으로 생성
|
|
248
|
+
await createYoloConfig();
|
|
249
|
+
|
|
250
|
+
// 대화형 설정
|
|
251
|
+
await createInteractiveYoloConfig();
|
|
252
|
+
```
|
|
253
|
+
|
|
254
|
+
## 사용 패턴
|
|
255
|
+
|
|
256
|
+
### 기본 YOLO 실행
|
|
257
|
+
|
|
258
|
+
#### 스프린트 레벨 실행
|
|
259
|
+
```bash
|
|
260
|
+
# 특정 스프린트 실행
|
|
261
|
+
/aiwf_yolo S02
|
|
262
|
+
|
|
263
|
+
# 모든 스프린트 실행
|
|
264
|
+
/aiwf_yolo sprint-all
|
|
265
|
+
|
|
266
|
+
# 모든 마일스톤 실행
|
|
267
|
+
/aiwf_yolo milestone-all
|
|
268
|
+
```
|
|
269
|
+
|
|
270
|
+
#### CLI 기반 스프린트 생성
|
|
271
|
+
```bash
|
|
272
|
+
# README에서 독립 스프린트 생성
|
|
273
|
+
aiwf sprint independent --from-readme --minimal
|
|
274
|
+
|
|
275
|
+
# GitHub 이슈에서 생성
|
|
276
|
+
aiwf sprint independent --from-issue 123
|
|
277
|
+
|
|
278
|
+
# 대화형 생성
|
|
279
|
+
aiwf sprint independent "Quick Feature" --balanced
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
### 체크포인트 작업
|
|
283
|
+
|
|
284
|
+
#### aiwf-checkpoint CLI 사용
|
|
285
|
+
```bash
|
|
286
|
+
# 체크포인트 목록
|
|
287
|
+
aiwf-checkpoint list
|
|
288
|
+
|
|
289
|
+
# 진행률 리포트 표시
|
|
290
|
+
aiwf-checkpoint report
|
|
291
|
+
|
|
292
|
+
# 체크포인트에서 복구
|
|
293
|
+
aiwf checkpoint restore cp_1234567890
|
|
294
|
+
|
|
295
|
+
# 수동 체크포인트 생성
|
|
296
|
+
aiwf checkpoint create "주요 리팩토링 전"
|
|
297
|
+
|
|
298
|
+
# 오래된 체크포인트 정리
|
|
299
|
+
aiwf checkpoint clean --keep 10
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### 복구 시나리오
|
|
303
|
+
|
|
304
|
+
#### 세션 중단 복구
|
|
305
|
+
```bash
|
|
306
|
+
# 현재 세션 상태 확인
|
|
307
|
+
aiwf-checkpoint status
|
|
308
|
+
|
|
309
|
+
# 사용 가능한 복구 지점 목록
|
|
310
|
+
aiwf-checkpoint list --limit 10
|
|
311
|
+
|
|
312
|
+
# 마지막 안정 상태로 복구
|
|
313
|
+
aiwf checkpoint restore cp_latest
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
## 안전 메커니즘
|
|
317
|
+
|
|
318
|
+
### 오버엔지니어링 방지
|
|
319
|
+
|
|
320
|
+
#### 자동 검사
|
|
321
|
+
- **파일 크기 모니터링**: 파일이 제한을 초과할 때 경고
|
|
322
|
+
- **복잡성 감지**: 지나치게 복잡한 코드 구조 식별
|
|
323
|
+
- **패턴 과용**: 불필요한 디자인 패턴 방지
|
|
324
|
+
- **미래 대비**: 추측성 구현 차단
|
|
325
|
+
|
|
326
|
+
#### 수동 재정의
|
|
327
|
+
```yaml
|
|
328
|
+
# 특정 검사 비활성화
|
|
329
|
+
overengineering_prevention:
|
|
330
|
+
max_file_lines: 500 # 제한 증가
|
|
331
|
+
limit_design_patterns: false # 패턴 허용
|
|
332
|
+
```
|
|
333
|
+
|
|
334
|
+
### 실행 안전장치
|
|
335
|
+
|
|
336
|
+
#### 중요 파일 보호
|
|
337
|
+
```yaml
|
|
338
|
+
breakpoints:
|
|
339
|
+
critical_files:
|
|
340
|
+
- .env
|
|
341
|
+
- package.json
|
|
342
|
+
- database/schema.sql
|
|
343
|
+
```
|
|
344
|
+
|
|
345
|
+
#### 테스트 실패 처리
|
|
346
|
+
```yaml
|
|
347
|
+
breakpoints:
|
|
348
|
+
test_failure_threshold: 10 # 10% 이상 테스트 실패 시 중단
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
#### 스키마 변경 확인
|
|
352
|
+
```yaml
|
|
353
|
+
breakpoints:
|
|
354
|
+
schema_changes: true # DB 변경에 대한 확인 필요
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
## 성능 최적화
|
|
358
|
+
|
|
359
|
+
### 체크포인트 최적화
|
|
360
|
+
|
|
361
|
+
#### 자동 정리
|
|
362
|
+
```javascript
|
|
363
|
+
// 오래된 체크포인트 자동 정리
|
|
364
|
+
await manager.cleanup(keepLast: 10);
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
#### 스토리지 효율성
|
|
368
|
+
- 증분 상태 스냅샷
|
|
369
|
+
- 압축된 체크포인트 데이터
|
|
370
|
+
- 자동 오래된 체크포인트 제거
|
|
371
|
+
|
|
372
|
+
### 실행 최적화
|
|
373
|
+
|
|
374
|
+
#### 병렬 태스크 실행
|
|
375
|
+
```yaml
|
|
376
|
+
performance:
|
|
377
|
+
parallel_tasks: false # 실험적 기능
|
|
378
|
+
use_cache: true
|
|
379
|
+
skip_unchanged: true
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
#### 메모리 관리
|
|
383
|
+
- 지연 모듈 로딩
|
|
384
|
+
- 리소스 풀링
|
|
385
|
+
- 자동 가비지 컬렉션
|
|
386
|
+
|
|
387
|
+
## 문제 해결
|
|
388
|
+
|
|
389
|
+
### 일반적인 문제
|
|
390
|
+
|
|
391
|
+
#### 엔지니어링 가드가 작동하지 않음
|
|
392
|
+
```bash
|
|
393
|
+
# 모듈 존재 확인
|
|
394
|
+
ls -la src/utils/engineering-guard.js
|
|
395
|
+
|
|
396
|
+
# 동적 import 테스트
|
|
397
|
+
node -e "import('./src/utils/engineering-guard.js').then(console.log)"
|
|
398
|
+
|
|
399
|
+
# 설정 확인
|
|
400
|
+
cat .aiwf/yolo-config.yaml
|
|
401
|
+
```
|
|
402
|
+
|
|
403
|
+
#### 체크포인트 시스템 실패
|
|
404
|
+
```bash
|
|
405
|
+
# 체크포인트 디렉토리 확인
|
|
406
|
+
ls -la .aiwf/checkpoints/
|
|
407
|
+
|
|
408
|
+
# 권한 확인
|
|
409
|
+
chmod 755 .aiwf/checkpoints/
|
|
410
|
+
|
|
411
|
+
# 체크포인트 생성 테스트
|
|
412
|
+
aiwf checkpoint create "test-checkpoint"
|
|
413
|
+
```
|
|
414
|
+
|
|
415
|
+
#### 설정 문제
|
|
416
|
+
```bash
|
|
417
|
+
# 설정 재생성
|
|
418
|
+
aiwf yolo-config init --force
|
|
419
|
+
|
|
420
|
+
# 설정 검증
|
|
421
|
+
aiwf yolo-config show
|
|
422
|
+
|
|
423
|
+
# 기본값으로 재설정
|
|
424
|
+
rm .aiwf/yolo-config.yaml && aiwf yolo-config init
|
|
425
|
+
```
|
|
426
|
+
|
|
427
|
+
### 복구 절차
|
|
428
|
+
|
|
429
|
+
#### 손상된 상태 복구
|
|
430
|
+
```bash
|
|
431
|
+
# 사용 가능한 체크포인트 목록
|
|
432
|
+
aiwf-checkpoint list
|
|
433
|
+
|
|
434
|
+
# 알려진 정상 상태로 복구
|
|
435
|
+
aiwf checkpoint restore cp_last_known_good
|
|
436
|
+
|
|
437
|
+
# 필요시 재초기화
|
|
438
|
+
aiwf yolo-config init --force
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
#### Git 상태 불일치
|
|
442
|
+
```bash
|
|
443
|
+
# 체크포인트의 Git 상태 확인
|
|
444
|
+
aiwf-checkpoint show cp_1234567890
|
|
445
|
+
|
|
446
|
+
# 필요시 Git 상태 복원
|
|
447
|
+
git checkout checkpoint_branch_name
|
|
448
|
+
git reset --hard checkpoint_commit_hash
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
## 모범 사례
|
|
452
|
+
|
|
453
|
+
### 설정 관리
|
|
454
|
+
|
|
455
|
+
1. **보수적으로 시작**: 최소 엔지니어링 레벨로 시작
|
|
456
|
+
2. **점진적 커스터마이징**: 프로젝트 요구에 따라 설정 조정
|
|
457
|
+
3. **결과 모니터링**: 메트릭 추적 및 임계값 조정
|
|
458
|
+
4. **변경 문서화**: 설정 변경을 버전 제어에 보관
|
|
459
|
+
|
|
460
|
+
### 세션 관리
|
|
461
|
+
|
|
462
|
+
1. **정기적 체크포인트**: 논리적 마일스톤에서 체크포인트 생성
|
|
463
|
+
2. **진행률 모니터링**: 주기적으로 세션 상태 확인
|
|
464
|
+
3. **정리**: 오래된 체크포인트 정기적 제거
|
|
465
|
+
4. **복구 계획**: 복구 절차 준비
|
|
466
|
+
|
|
467
|
+
### 품질 제어
|
|
468
|
+
|
|
469
|
+
1. **적절한 제한 설정**: 프로젝트에 맞는 복잡성 제한 구성
|
|
470
|
+
2. **위반 모니터링**: 엔지니어링 가드 리포트 검토
|
|
471
|
+
3. **조기 문제 해결**: 복잡성 문제가 누적되기 전에 수정
|
|
472
|
+
4. **속도 vs 품질 균형**: 요구에 따라 엔지니어링 레벨 조정
|
|
473
|
+
|
|
474
|
+
### 성능 최적화
|
|
475
|
+
|
|
476
|
+
1. **캐싱 사용**: 반복 작업에 캐싱 활성화
|
|
477
|
+
2. **체크포인트 최적화**: 오래된 체크포인트 정기적 정리
|
|
478
|
+
3. **리소스 모니터링**: 메모리 및 디스크 사용량 추적
|
|
479
|
+
4. **성능 프로파일링**: 자율 실행의 병목 지점 식별
|
|
480
|
+
|
|
481
|
+
## 통합 예제
|
|
482
|
+
|
|
483
|
+
### 커스텀 YOLO 워크플로
|
|
484
|
+
|
|
485
|
+
```javascript
|
|
486
|
+
import { CheckpointManager } from 'aiwf/utils/checkpoint-manager';
|
|
487
|
+
import { EngineeringGuard } from 'aiwf/utils/engineering-guard';
|
|
488
|
+
|
|
489
|
+
class CustomYoloWorkflow {
|
|
490
|
+
constructor(projectRoot) {
|
|
491
|
+
this.checkpointManager = new CheckpointManager(projectRoot);
|
|
492
|
+
this.engineeringGuard = new EngineeringGuard('.aiwf/yolo-config.yaml');
|
|
493
|
+
}
|
|
494
|
+
|
|
495
|
+
async executeWithGuards(tasks) {
|
|
496
|
+
await this.checkpointManager.startSession('custom', 'workflow');
|
|
497
|
+
|
|
498
|
+
for (const task of tasks) {
|
|
499
|
+
await this.checkpointManager.startTask(task.id);
|
|
500
|
+
|
|
501
|
+
// 태스크 실행...
|
|
502
|
+
const result = await this.executeTask(task);
|
|
503
|
+
|
|
504
|
+
// 품질 확인
|
|
505
|
+
const report = await this.engineeringGuard.checkProject('./src');
|
|
506
|
+
if (!report.passed) {
|
|
507
|
+
console.warn('품질 문제 감지:', report.violations);
|
|
508
|
+
}
|
|
509
|
+
|
|
510
|
+
await this.checkpointManager.completeTask(task.id, result);
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
return await this.checkpointManager.endSession();
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
## 관련 명령어
|
|
519
|
+
|
|
520
|
+
### Claude Code 명령어
|
|
521
|
+
- `/project:aiwf:yolo` - 메인 YOLO 실행 명령어
|
|
522
|
+
- `/aiwf_yolo` - 자율 태스크 실행
|
|
523
|
+
- `/aiwf_checkpoint_status` - 현재 진행률 확인
|
|
524
|
+
|
|
525
|
+
### CLI 명령어
|
|
526
|
+
- `aiwf yolo-config` - 설정 관리
|
|
527
|
+
- `aiwf checkpoint` - 체크포인트 작업
|
|
528
|
+
- `aiwf-checkpoint` - 전용 체크포인트 CLI
|
|
529
|
+
- `aiwf sprint independent` - 독립 스프린트 생성
|
|
530
|
+
|
|
531
|
+
## 관련 문서
|
|
532
|
+
|
|
533
|
+
- [CLI_USAGE_GUIDE.md](CLI_USAGE_GUIDE.ko.md) - CLI 명령어 참조
|
|
534
|
+
- [COMMANDS_GUIDE.md](COMMANDS_GUIDE.ko.md) - Claude Code 명령어 가이드
|
|
535
|
+
- [MODULE_MANAGEMENT_GUIDE.md](MODULE_MANAGEMENT_GUIDE.ko.md) - 모듈 아키텍처
|
|
536
|
+
- [Independent Sprint Guide](guides/independent-sprint-guide-ko.md) - 스프린트 관리
|
|
537
|
+
- [Checkpoint System Guide](guides/checkpoint-system-guide-ko.md) - 체크포인트 세부사항
|
|
538
|
+
|
|
539
|
+
---
|
|
540
|
+
|
|
541
|
+
**마지막 업데이트**: 2025-01-27
|
|
542
|
+
**버전**: AIWF v0.3.16+ 호환
|