UNPKG

aiwf

Version:

AI Workflow Framework for Claude Code with multi-language support (Korean/English)

289 lines (216 loc) 9.86 kB
# AIWF 모듈 관리 가이드 > AIWF의 모듈러 아키텍처와 의존성을 이해하고 관리하기 위한 종합 가이드 [한국어](MODULE_MANAGEMENT_GUIDE.ko.md) | [English](MODULE_MANAGEMENT_GUIDE.md) ## 목차 1. [개요](#개요) 2. [모듈 분류](#모듈-분류) 3. [의존성 매트릭스](#의존성-매트릭스) 4. [중요 모듈](#중요-모듈) 5. [안전한 모듈 관리](#안전한-모듈-관리) 6. [문제 해결](#문제-해결) 7. [모범 사례](#모범-사례) ## 개요 AIWF는 기능이 전문화된 모듈들에 분산되어 있는 모듈러 아키텍처를 따릅니다. 이러한 모듈들 간의 의존성 관계를 이해하는 것은 다음과 같은 작업에 중요합니다: - **안전한 리팩토링**: 다른 모듈을 깨뜨리지 않고 수정할 수 있는 모듈 파악 - **기능 개발**: 새로운 기능을 어디에 배치할지 이해 - **디버깅**: 의존성 체인을 통한 문제 추적 - **성능 최적화**: 모듈 로딩의 병목 지점 식별 ## 모듈 분류 ### 🔧 핵심 유틸리티 (중요 - 절대 삭제 금지) 시스템 전체에서 사용되는 기반 모듈들: #### `utils/paths.js` - **사용처**: CLI 및 명령어 전반 8개 이상 위치 - **목적**: 크로스 플랫폼 호환을 위한 중앙화된 경로 관리 - **의존성**: 없음 - **중요한 이유**: 모든 파일 작업, 템플릿 해결, 리소스 로딩 #### `utils/messages.js` - **사용처**: CLI 및 사용자 대면 명령어 5개 이상 위치 - **목적**: 다국어 메시지 시스템 - **의존성**: `language-utils.js` - **중요한 이유**: 사용자 인터페이스, 오류 메시지, 국제화 #### `utils/language-utils.js` - **사용처**: 언어 관리 3개 이상 위치 - **목적**: 언어 감지 및 설정 - **의존성**: `paths.js` - **중요한 이유**: 언어 전환, 로케일 감지 ### 🚀 YOLO 시스템 (중요 - 절대 삭제 금지) 자율 실행을 위한 전문 모듈들: #### `utils/engineering-guard.js` - **사용처**: YOLO 템플릿에서 동적 import - **목적**: 자율 실행 중 오버엔지니어링 방지 - **의존성**: 없음 (자체 포함) - **중요한 이유**: YOLO 모드 품질 제어 - **⚠️ 경고**: 동적 로딩 - 정적 분석에서 보이지 않음 #### `utils/checkpoint-manager.js` - **사용처**: YOLO 명령어 및 복구 시스템 - **목적**: 자율 실행을 위한 진행률 추적 및 복구 - **의존성**: 없음 - **중요한 이유**: YOLO 세션 관리, 진행률 복구 ### 🎯 명령어별 전용 모듈 #### AI 페르소나 시스템 ``` ai-persona-manager.js (메인) ├── context-engine.js ├── metrics-collector.js ├── task-analyzer.js └── token-optimizer.js (context-engine에서 사용) ``` #### 설치 및 백업 시스템 ``` installer.js (메인) ├── backup-manager.js ├── file-downloader.js ├── rollback-manager.js └── validator.js ``` #### 캐시 시스템 ``` template-cache-system.js (메인) ├── offline-detector.js ├── template-downloader.js └── template-version-manager.js ``` #### GitHub 통합 ``` github-integration.js (메인) ├── state/state-index.js ├── state/priority-calculator.js └── state/task-scanner.js ``` ### 🌐 공유 리소스 #### `lib/resource-loader.js` - **사용처**: 5개 이상 명령어 (compress, token, evaluate 등) - **목적**: 번들 및 사용자 리소스를 위한 통합 리소스 관리 - **의존성**: `paths.js` - **중요한 이유**: 템플릿 로딩, 페르소나 관리, 리소스 해결 ## 의존성 매트릭스 ### CLI 명령어 의존성 | 명령어 | 직접 의존성 | 간접 의존성 | 특수 사항 | |--------|-------------|-------------|-----------| | `aiwf install` | installer.js | backup-manager.js, file-downloader.js, rollback-manager.js, validator.js | - | | `aiwf persona` | persona.js, ai-persona-manager.js | context-engine.js, metrics-collector.js, task-analyzer.js, token-optimizer.js | - | | `aiwf compress` | compress.js, resource-loader.js | - | - | | `aiwf token` | token.js, resource-loader.js | - | - | | `aiwf evaluate` | evaluate.js, resource-loader.js | - | - | | `aiwf checkpoint` | checkpoint-manager.js | - | ⚠️ YOLO 전용 | | `aiwf-checkpoint` | checkpoint-manager.js | - | ⚠️ YOLO 전용 | | `aiwf cache` | cache-cli.js | template-cache-system.js, offline-detector.js, template-downloader.js, template-version-manager.js | - | | `YOLO 모드` | engineering-guard.js | - | ⚠️ 동적 import | ## 중요 모듈 ### ⚠️ 동적 로딩 모듈 런타임에 로드되며 정적 의존성 분석에서 나타나지 않는 모듈들: 1. **`engineering-guard.js`**: YOLO 템플릿에서 `import()` 사용 2. **상태 시스템 모듈들**: GitHub 통합에서 사용 3. **페르소나 하위 모듈들**: 활성 페르소나에 따라 로드 ### 삭제 위험도 평가 #### ❌ 절대 삭제 금지 - `paths.js`, `messages.js`, `language-utils.js` (핵심 유틸리티) - `engineering-guard.js`, `checkpoint-manager.js` (YOLO 시스템) - `resource-loader.js` (여러 명령어에서 공유) #### ⚠️ 주의해서 삭제 - AI 페르소나 시스템 모듈들 (페르소나 명령어 사용 여부 확인) - 캐시 시스템 모듈들 (오프라인 기능에 영향) - GitHub 통합 모듈들 (GitHub 명령어에 영향) #### ✅ 조건부 삭제 가능 - 명령어별 전용 모듈들 (해당 명령어가 사용되지 않는 경우) - 템플릿별 리소스들 (템플릿이 필요하지 않은 경우) ## 안전한 모듈 관리 ### 모듈 수정 전 확인 사항 1. **의존성 맵 확인**: `src/DEPENDENCY_MAP.md` 검토 2. **사용처 검색**: `grep -r "모듈명" src/`로 모든 참조 확인 3. **동적 import 확인**: `import()` 구문 검색 4. **CLI 통합 확인**: CLI 명령어에서의 모듈 사용 여부 확인 5. **YOLO 기능 검증**: YOLO 모듈 수정 시 YOLO 모드 작동 확인 ### 안전한 수정 단계 ```bash # 1. 정적 의존성 확인 grep -r "your-module.js" src/ # 2. 동적 import 확인 grep -r "import.*your-module" src/ # 3. YOLO 통합 확인 grep -r "your-module" claude-code/ # 4. CLI 명령어 매핑 확인 grep -r "your-module" src/cli/ # 5. 중요 기능 테스트 npm test aiwf install --force aiwf-checkpoint list ``` ### 모듈 추가 가이드라인 새 모듈 추가 시: 1. **의존성 맵 업데이트**: `src/DEPENDENCY_MAP.md`에 항목 추가 2. **경고 주석 추가**: 중요 모듈에 `@warning` 주석 포함 3. **사용처 문서화**: 어떤 명령어나 시스템에서 사용하는지 명시 4. **동적 로딩 고려**: `import()` 지연 로딩 사용 시 표시 5. **통합 테스트**: 개발 및 프로덕션 환경에서 모듈 작동 확인 ## 문제 해결 ### 일반적인 문제들 #### "Module not found" 오류 ```bash # 모듈 존재 확인 ls -la src/utils/your-module.js # import 경로 정확성 확인 grep -r "your-module" src/ # 모듈 export 확인 node -e "console.log(require('./src/utils/your-module.js'))" ``` #### YOLO 모드 실패 ```bash # engineering-guard 가용성 확인 ls -la src/utils/engineering-guard.js # 동적 import 테스트 node -e "import('./src/utils/engineering-guard.js').then(m => console.log('OK'))" # 체크포인트 시스템 확인 aiwf checkpoint status ``` #### 순환 의존성 ```bash # 순환 의존성 감지 npm install -g madge madge --circular src/ ``` ### 복구 절차 #### 핵심 유틸리티 실수로 삭제한 경우 1. git에서 복원: `git checkout HEAD -- src/utils/paths.js` 2. AIWF 재설치: `aiwf install --force` 3. 기능 확인: `aiwf --version` #### YOLO 시스템이 손상된 경우 1. YOLO 설정 확인: `cat .aiwf/yolo-config.yaml` 2. 체크포인트 매니저 복원: `git checkout HEAD -- src/utils/checkpoint-manager.js` 3. YOLO 모드 테스트: `aiwf-checkpoint status` ## 모범 사례 ### 모듈 개발 1. **단일 책임**: 각 모듈은 하나의 명확한 목적을 가져야 함 2. **최소 의존성**: 결합도를 줄이기 위해 불필요한 의존성 피하기 3. **명확한 인터페이스**: 필요한 함수/클래스만 export 4. **문서화**: 사용법 주석 및 의존성 정보 포함 5. **오류 처리**: 누락된 의존성을 우아하게 처리 ### 의존성 관리 1. **정기 감사**: 의존성 맵을 주기적으로 검토하고 업데이트 2. **영향 분석**: 변경 전 종속 모듈에 대한 잠재적 영향 분석 3. **테스트 전략**: 직접 및 간접 의존성 모두 테스트 4. **버전 제어**: git을 사용하여 모듈 변경 및 의존성 추적 5. **문서화**: 의존성 문서를 최신 상태로 유지 ### 성능 고려사항 1. **지연 로딩**: 중요하지 않은 모듈에 동적 import 사용 2. **캐싱**: 자주 액세스하는 모듈 캐시 3. **번들 최적화**: 의존성 추가 시 모듈 크기 고려 4. **트리 셰이킹**: 모듈이 데드 코드 제거를 지원하는지 확인 ## 모듈 통합 체크리스트 새 모듈 통합 또는 기존 모듈 수정 시: - [ ] `src/DEPENDENCY_MAP.md` 업데이트 - [ ] 적절한 경고 주석 추가 - [ ] 사용 패턴 문서화 - [ ] CLI 및 YOLO 모드에서 테스트 - [ ] 리소스 로딩 작동 확인 - [ ] 순환 의존성 확인 - [ ] 관련 문서 업데이트 - [ ] 필요 시 통합 테스트 추가 ## 관련 문서 - [DEPENDENCY_MAP.md](../src/DEPENDENCY_MAP.md) - 상세 의존성 매트릭스 - [ARCHITECTURE.md](ARCHITECTURE.ko.md) - 전체 시스템 아키텍처 - [DEVELOPMENT_GUIDE.md](DEVELOPMENT_GUIDE.ko.md) - 개발 가이드라인 - [YOLO_SYSTEM_GUIDE.md](YOLO_SYSTEM_GUIDE.ko.md) - YOLO 시스템 세부사항 --- **마지막 업데이트**: 2025-01-27 **검증 방법**: `grep -r "모듈명" src/`를 사용하여 사용 패턴 확인