aiwf
Version:
AI Workflow Framework for Claude Code with multi-language support (Korean/English)
542 lines (408 loc) • 13.7 kB
Markdown
# AIWF YOLO 시스템 가이드
> AIWF의 자율 실행 시스템(YOLO 모드)에 대한 종합 가이드
[한국어](YOLO_SYSTEM_GUIDE.ko.md) | [English](YOLO_SYSTEM_GUIDE.md)
## 목차
1. [개요](#개요)
2. [시스템 구성 요소](#시스템-구성-요소)
3. [엔지니어링 가드](#엔지니어링-가드)
4. [체크포인트 매니저](#체크포인트-매니저)
5. [YOLO 설정](#yolo-설정)
6. [사용 패턴](#사용-패턴)
7. [안전 메커니즘](#안전-메커니즘)
8. [성능 최적화](#성능-최적화)
9. [문제 해결](#문제-해결)
10. [모범 사례](#모범-사례)
## 개요
YOLO(You Only Live Once) 모드는 Claude Code가 최소한의 인간 개입으로 독립적으로 작업할 수 있게 하는 AIWF의 자율 실행 시스템입니다. 이 시스템은 신뢰할 수 있는 자율 운영을 보장하기 위해 정교한 안전 메커니즘, 진행률 추적, 품질 제어를 포함합니다.
### 주요 기능
- **자율 태스크 실행**: 스프린트나 마일스톤을 자동으로 완료
- **오버엔지니어링 방지**: 불필요한 복잡성에 대한 내장 가드
- **진행률 추적**: 포괄적인 체크포인트 및 복구 시스템
- **품질 제어**: 실시간 코드 품질 모니터링
- **복구 메커니즘**: 강력한 오류 처리 및 상태 복원
## 시스템 구성 요소
### 아키텍처 개요
```
YOLO 모드
├── Engineering Guard (오버엔지니어링 방지)
├── Checkpoint Manager (진행률 추적 & 복구)
├── Configuration System (동작 커스터마이징)
├── Sprint Manager (태스크 조직화)
└── Recovery System (실패 처리)
```
### 핵심 모듈
1. **`utils/engineering-guard.js`**: 품질 제어 및 복잡성 방지
2. **`utils/checkpoint-manager.js`**: 진행률 추적 및 복구
3. **`src/config/yolo-config-template.yaml`**: 설정 템플릿
4. **`src/commands/yolo-config.js`**: 설정 관리
5. **`src/cli/checkpoint-cli.js`**: 전용 체크포인트 CLI
## 엔지니어링 가드
엔지니어링 가드는 자율 실행 중 오버엔지니어링을 방지하고 코드 품질을 유지합니다.
### 핵심 기능
#### 복잡성 모니터링
- **파일 크기 제한**: 파일이 너무 커지는 것을 방지
- **함수 크기 제어**: 함수를 관리 가능한 크기로 유지
- **중첩 깊이**: 과도한 들여쓰기 제한
- **패턴 감지**: 디자인 패턴의 과도한 사용 식별
#### 설정 옵션
```yaml
overengineering_prevention:
max_file_lines: 300
max_function_lines: 50
max_nesting_depth: 4
max_abstraction_layers: 3
limit_design_patterns: true
no_future_proofing: true
```
### 사용 예제
#### 프로그래밍 방식 사용
```javascript
import { EngineeringGuard } from 'aiwf/utils/engineering-guard';
const guard = new EngineeringGuard('.aiwf/yolo-config.yaml');
// 단일 파일 검사
await guard.checkFileComplexity('src/app.js');
const report = guard.generateReport();
// 전체 프로젝트 검사
const projectReport = await guard.checkProject('./src');
```
#### 실시간 피드백
```javascript
// 개발 중 즉각적인 피드백 받기
const feedback = await guard.provideFeedback('src/new-feature.js');
console.log(feedback);
// 출력: [
// { level: 'warning', message: '파일이 너무 커지고 있습니다...' },
// { level: 'suggestion', message: '복잡한 조건문을 별도 함수로 추출 고려...' }
// ]
```
### 감지 기능
#### 디자인 패턴 감지
- Factory 패턴
- Singleton 사용
- Observer 구현
- Strategy 패턴
- Decorator 패턴
- Adapter 패턴
#### 미래 대비 코드 감지
- 미래 참조가 있는 TODO 주석
- 조건부 FIXME 항목
- 추측성 주석
- 예약/플레이스홀더 코드
- 버전별 검사
## 체크포인트 매니저
체크포인트 매니저는 진행률 추적, 상태 지속성, 복구 메커니즘을 처리합니다.
### 핵심 기능
#### 세션 관리
```javascript
import { CheckpointManager } from 'aiwf/utils/checkpoint-manager';
const manager = new CheckpointManager('./project-root');
// YOLO 세션 시작
await manager.startSession('S01', 'sprint');
// 태스크 진행률 추적
await manager.startTask('T001_setup_api');
await manager.completeTask('T001_setup_api', { files_created: 5 });
// 수동 체크포인트 생성
await manager.createCheckpoint('manual', { milestone: 'API setup complete' });
```
#### 복구 작업
```javascript
// 사용 가능한 체크포인트 목록
const checkpoints = await manager.listCheckpoints();
// 체크포인트에서 복구
await manager.restoreFromCheckpoint('cp_1234567890');
// 진행률 리포트 생성
const report = await manager.generateProgressReport();
```
### 체크포인트 유형
1. **session_start**: YOLO 세션 시작 시 생성
2. **task_complete**: 각 태스크 완료 후 생성
3. **auto**: 일정 간격으로 자동 생성
4. **manual**: 사용자 요청에 의해 생성
5. **session_end**: 세션 종료 시 생성
### 상태 구조
```json
{
"session_id": "1703123456789",
"started_at": "2025-01-27T10:00:00Z",
"sprint_id": "S01",
"mode": "sprint",
"completed_tasks": [
{
"id": "T001_setup_api",
"completed_at": "2025-01-27T10:15:00Z",
"duration": 900000,
"attempts": 1
}
],
"current_task": null,
"metrics": {
"completed_tasks": 1,
"failed_tasks": 0,
"total_time": 900000,
"avg_task_time": 900000
}
}
```
## YOLO 설정
### 설정 템플릿
YOLO 설정 시스템은 YAML 파일을 사용하여 자율 동작을 제어합니다:
```yaml
# 엔지니어링 레벨 (minimal/balanced/complete)
engineering_level: minimal
# 범위 확산 방지를 위한 포커스 규칙
focus_rules:
requirement_first: true
simple_solution: true
no_gold_plating: true
stay_on_track: true
# 실행 설정
execution:
fast_mode: true
run_tests: true
auto_commit: false
branch_strategy: feature
# 안전 중단점
breakpoints:
critical_files:
- .env
- database/migrations/*
test_failure_threshold: 10
schema_changes: true
# 체크포인트 설정
checkpoint:
enabled: true
interval: 5
recovery_mode: auto
```
### 설정 관리
#### CLI 명령어
```bash
# 설정 초기화
aiwf yolo-config init
# 대화형 설정 마법사
aiwf yolo-config wizard
# 현재 설정 표시
aiwf yolo-config show
```
#### 프로그래밍 방식 설정
```javascript
import { createYoloConfig, createInteractiveYoloConfig } from 'aiwf/commands/yolo-config';
// 기본값으로 생성
await createYoloConfig();
// 대화형 설정
await createInteractiveYoloConfig();
```
## 사용 패턴
### 기본 YOLO 실행
#### 스프린트 레벨 실행
```bash
# 특정 스프린트 실행
/aiwf_yolo S02
# 모든 스프린트 실행
/aiwf_yolo sprint-all
# 모든 마일스톤 실행
/aiwf_yolo milestone-all
```
#### CLI 기반 스프린트 생성
```bash
# README에서 독립 스프린트 생성
aiwf sprint independent --from-readme --minimal
# GitHub 이슈에서 생성
aiwf sprint independent --from-issue 123
# 대화형 생성
aiwf sprint independent "Quick Feature" --balanced
```
### 체크포인트 작업
#### aiwf-checkpoint CLI 사용
```bash
# 체크포인트 목록
aiwf-checkpoint list
# 진행률 리포트 표시
aiwf-checkpoint report
# 체크포인트에서 복구
aiwf checkpoint restore cp_1234567890
# 수동 체크포인트 생성
aiwf checkpoint create "주요 리팩토링 전"
# 오래된 체크포인트 정리
aiwf checkpoint clean --keep 10
```
### 복구 시나리오
#### 세션 중단 복구
```bash
# 현재 세션 상태 확인
aiwf-checkpoint status
# 사용 가능한 복구 지점 목록
aiwf-checkpoint list --limit 10
# 마지막 안정 상태로 복구
aiwf checkpoint restore cp_latest
```
## 안전 메커니즘
### 오버엔지니어링 방지
#### 자동 검사
- **파일 크기 모니터링**: 파일이 제한을 초과할 때 경고
- **복잡성 감지**: 지나치게 복잡한 코드 구조 식별
- **패턴 과용**: 불필요한 디자인 패턴 방지
- **미래 대비**: 추측성 구현 차단
#### 수동 재정의
```yaml
# 특정 검사 비활성화
overengineering_prevention:
max_file_lines: 500 # 제한 증가
limit_design_patterns: false # 패턴 허용
```
### 실행 안전장치
#### 중요 파일 보호
```yaml
breakpoints:
critical_files:
- .env
- package.json
- database/schema.sql
```
#### 테스트 실패 처리
```yaml
breakpoints:
test_failure_threshold: 10 # 10% 이상 테스트 실패 시 중단
```
#### 스키마 변경 확인
```yaml
breakpoints:
schema_changes: true # DB 변경에 대한 확인 필요
```
## 성능 최적화
### 체크포인트 최적화
#### 자동 정리
```javascript
// 오래된 체크포인트 자동 정리
await manager.cleanup(keepLast: 10);
```
#### 스토리지 효율성
- 증분 상태 스냅샷
- 압축된 체크포인트 데이터
- 자동 오래된 체크포인트 제거
### 실행 최적화
#### 병렬 태스크 실행
```yaml
performance:
parallel_tasks: false # 실험적 기능
use_cache: true
skip_unchanged: true
```
#### 메모리 관리
- 지연 모듈 로딩
- 리소스 풀링
- 자동 가비지 컬렉션
## 문제 해결
### 일반적인 문제
#### 엔지니어링 가드가 작동하지 않음
```bash
# 모듈 존재 확인
ls -la src/utils/engineering-guard.js
# 동적 import 테스트
node -e "import('./src/utils/engineering-guard.js').then(console.log)"
# 설정 확인
cat .aiwf/yolo-config.yaml
```
#### 체크포인트 시스템 실패
```bash
# 체크포인트 디렉토리 확인
ls -la .aiwf/checkpoints/
# 권한 확인
chmod 755 .aiwf/checkpoints/
# 체크포인트 생성 테스트
aiwf checkpoint create "test-checkpoint"
```
#### 설정 문제
```bash
# 설정 재생성
aiwf yolo-config init --force
# 설정 검증
aiwf yolo-config show
# 기본값으로 재설정
rm .aiwf/yolo-config.yaml && aiwf yolo-config init
```
### 복구 절차
#### 손상된 상태 복구
```bash
# 사용 가능한 체크포인트 목록
aiwf-checkpoint list
# 알려진 정상 상태로 복구
aiwf checkpoint restore cp_last_known_good
# 필요시 재초기화
aiwf yolo-config init --force
```
#### Git 상태 불일치
```bash
# 체크포인트의 Git 상태 확인
aiwf-checkpoint show cp_1234567890
# 필요시 Git 상태 복원
git checkout checkpoint_branch_name
git reset --hard checkpoint_commit_hash
```
## 모범 사례
### 설정 관리
1. **보수적으로 시작**: 최소 엔지니어링 레벨로 시작
2. **점진적 커스터마이징**: 프로젝트 요구에 따라 설정 조정
3. **결과 모니터링**: 메트릭 추적 및 임계값 조정
4. **변경 문서화**: 설정 변경을 버전 제어에 보관
### 세션 관리
1. **정기적 체크포인트**: 논리적 마일스톤에서 체크포인트 생성
2. **진행률 모니터링**: 주기적으로 세션 상태 확인
3. **정리**: 오래된 체크포인트 정기적 제거
4. **복구 계획**: 복구 절차 준비
### 품질 제어
1. **적절한 제한 설정**: 프로젝트에 맞는 복잡성 제한 구성
2. **위반 모니터링**: 엔지니어링 가드 리포트 검토
3. **조기 문제 해결**: 복잡성 문제가 누적되기 전에 수정
4. **속도 vs 품질 균형**: 요구에 따라 엔지니어링 레벨 조정
### 성능 최적화
1. **캐싱 사용**: 반복 작업에 캐싱 활성화
2. **체크포인트 최적화**: 오래된 체크포인트 정기적 정리
3. **리소스 모니터링**: 메모리 및 디스크 사용량 추적
4. **성능 프로파일링**: 자율 실행의 병목 지점 식별
## 통합 예제
### 커스텀 YOLO 워크플로
```javascript
import { CheckpointManager } from 'aiwf/utils/checkpoint-manager';
import { EngineeringGuard } from 'aiwf/utils/engineering-guard';
class CustomYoloWorkflow {
constructor(projectRoot) {
this.checkpointManager = new CheckpointManager(projectRoot);
this.engineeringGuard = new EngineeringGuard('.aiwf/yolo-config.yaml');
}
async executeWithGuards(tasks) {
await this.checkpointManager.startSession('custom', 'workflow');
for (const task of tasks) {
await this.checkpointManager.startTask(task.id);
// 태스크 실행...
const result = await this.executeTask(task);
// 품질 확인
const report = await this.engineeringGuard.checkProject('./src');
if (!report.passed) {
console.warn('품질 문제 감지:', report.violations);
}
await this.checkpointManager.completeTask(task.id, result);
}
return await this.checkpointManager.endSession();
}
}
```
## 관련 명령어
### Claude Code 명령어
- `/project:aiwf:yolo` - 메인 YOLO 실행 명령어
- `/aiwf_yolo` - 자율 태스크 실행
- `/aiwf_checkpoint_status` - 현재 진행률 확인
### CLI 명령어
- `aiwf yolo-config` - 설정 관리
- `aiwf checkpoint` - 체크포인트 작업
- `aiwf-checkpoint` - 전용 체크포인트 CLI
- `aiwf sprint independent` - 독립 스프린트 생성
## 관련 문서
- [CLI_USAGE_GUIDE.md](CLI_USAGE_GUIDE.ko.md) - CLI 명령어 참조
- [COMMANDS_GUIDE.md](COMMANDS_GUIDE.ko.md) - Claude Code 명령어 가이드
- [MODULE_MANAGEMENT_GUIDE.md](MODULE_MANAGEMENT_GUIDE.ko.md) - 모듈 아키텍처
- [Independent Sprint Guide](guides/independent-sprint-guide-ko.md) - 스프린트 관리
- [Checkpoint System Guide](guides/checkpoint-system-guide-ko.md) - 체크포인트 세부사항
---
**마지막 업데이트**: 2025-01-27
**버전**: AIWF v0.3.16+ 호환