aiwf
Version:
AI Workflow Framework for Claude Code with multi-language support (Korean/English)
314 lines (242 loc) • 12.5 kB
Markdown
# AIWF 아키텍처
> AI 워크플로우 프레임워크의 시스템 아키텍처에 대한 종합적인 개요
[한국어](ARCHITECTURE.ko.md) | [English](ARCHITECTURE.md)
## 목차
1. [시스템 개요](#시스템-개요)
2. [아키텍처 레이어](#아키텍처-레이어)
3. [핵심 컴포넌트](#핵심-컴포넌트)
4. [데이터 흐름](#데이터-흐름)
5. [플러그인 아키텍처](#플러그인-아키텍처)
6. [보안 고려사항](#보안-고려사항)
7. [성능 아키텍처](#성능-아키텍처)
8. [확장성과 향후 확장](#확장성과-향후-확장)
## 시스템 개요
AIWF(AI 워크플로우 프레임워크)는 AI 지원 소프트웨어 개발 워크플로우를 위한 유연하고 확장 가능한 플랫폼을 제공하도록 설계된 모듈식 계층 아키텍처를 기반으로 구축되었습니다.
### 아키텍처 다이어그램
```
┌─────────────────────────────────────────────────────────────────┐
│ CLI 인터페이스 레이어 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ aiwf CLI │ │ aiwf-lang │ │ 훅 │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
└─────────┼─────────────────┼─────────────────┼──────────────────┘
│ │ │
┌─────────┼─────────────────┼─────────────────┼──────────────────┐
│ │ 코어 엔진 레이어 │ │
│ ┌──────▼──────┐ ┌──────▼──────┐ ┌──────▼──────┐ │
│ │ 명령어 │ │ 리소스 │ │ 상태 │ │
│ │ 프로세서 │ │ 로더 │ │ 관리자 │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
│ │ │ │ │
│ ┌──────▼──────┐ ┌──────▼──────┐ ┌──────▼──────┐ │
│ │ 템플릿 │ │ 플러그인 │ │ 토큰 │ │
│ │ 엔진 │ │ 시스템 │ │ 관리자 │ │
│ └──────┬──────┘ └──────┬──────┘ └──────┬──────┘ │
└─────────┼─────────────────┼─────────────────┼──────────────────┘
│ │ │
┌─────────┼─────────────────┼─────────────────┼──────────────────┐
│ │ 저장소 및 영속성 레이어 │ │
│ ┌──────▼──────┐ ┌──────▼──────┐ ┌──────▼──────┐ │
│ │ 파일 │ │ JSON │ │ Git │ │
│ │ 시스템 │ │ 저장소 │ │ 통합 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
│ │ │
┌─────────▼─────────────────▼─────────────────▼──────────────────┐
│ AI 통합 레이어 │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ 페르소나 │ │ 압축 │ │ 평가 │ │
│ │ 관리자 │ │ 엔진 │ │ 시스템 │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
## 아키텍처 레이어
### 1. CLI 인터페이스 레이어
AIWF와의 모든 사용자 상호작용을 위한 진입점입니다.
- **aiwf CLI**: Commander.js로 구축된 주요 명령줄 인터페이스
- **aiwf-lang**: 국제화를 위한 언어 관리 CLI
- **훅**: Git 훅 및 시스템 통합 지점
### 2. 코어 엔진 레이어
AIWF 기능의 핵심입니다.
- **명령어 프로세서**: 명령어 라우팅 및 실행
- **리소스 로더**: 번들 및 사용자 리소스 관리
- **상태 관리자**: 워크플로우 상태 및 전환 처리
- **템플릿 엔진**: 프로젝트 템플릿 처리
- **플러그인 시스템**: 확장성 지원
- **토큰 관리자**: AI 토큰 사용량 추적 및 최적화
### 3. 저장소 및 영속성 레이어
모든 데이터 저장 및 검색을 관리합니다.
- **파일 시스템**: 직접 파일 작업 및 캐싱
- **JSON 저장소**: 구조화된 데이터 영속성
- **Git 통합**: 버전 관리 시스템 통합
### 4. AI 통합 레이어
지능형 기능과 AI 지원을 제공합니다.
- **페르소나 관리자**: AI 동작 사용자 정의
- **압축 엔진**: AI 모델을 위한 컨텍스트 최적화
- **평가 시스템**: 코드 및 응답 품질 평가
## 핵심 컴포넌트
### 리소스 로더
리소스 로더는 개발 및 프로덕션 환경 모두에서 리소스를 관리하는 중요한 컴포넌트입니다.
```javascript
// 리소스 로딩 우선순위
1. 사용자 리소스 (~/.aiwf/)
2. 프로젝트 리소스 (./.aiwf/)
3. 번들 리소스 (npm 패키지)
```
주요 기능:
- 동적 리소스 검색
- 폴백 메커니즘
- 템플릿 및 페르소나 관리
- 개발 중 핫 리로딩
### 상태 관리자
정교한 워크플로우 기반 상태 관리 시스템을 구현합니다.
```javascript
// 상태 구조
{
"version": "1.0.0",
"lastUpdated": "ISO-8601 타임스탬프",
"workflow": {
"currentPhase": "development",
"currentTask": "task-id",
"transitions": []
},
"tasks": {
"task-id": {
"status": "in-progress",
"dependencies": [],
"priority": 0.8
}
}
}
```
기능:
- 의존성 추적
- 우선순위 계산
- 순환 의존성 감지
- 상태 검증
- 전환 관리
### 명령어 프로세서
모듈식 설계로 명령어 라우팅 및 실행을 처리합니다.
```javascript
// 명령어 구조
export default async function commandName(options) {
// 검증
// 실행
// 상태 업데이트
// 결과 포맷팅
}
```
### 템플릿 엔진
AIWF 통합이 내장된 프로젝트 스캐폴딩을 제공합니다.
지원되는 템플릿:
- `api-server`: TypeScript를 사용한 Express.js API
- `npm-library`: Rollup을 사용한 NPM 패키지
- `web-app`: Vite를 사용한 React 애플리케이션
### 플러그인 시스템
훅 기반 아키텍처를 통해 확장성을 지원합니다.
```javascript
// 플러그인 인터페이스
export interface AIWFPlugin {
name: string;
version: string;
hooks: {
beforeCommand?: (command: string, args: any) => void;
afterCommand?: (command: string, result: any) => void;
beforeStateChange?: (oldState: State, newState: State) => State;
afterStateChange?: (state: State) => void;
};
}
```
## 데이터 흐름
### 명령어 실행 흐름
```
사용자 입력 → CLI 파서 → 명령어 프로세서 → 명령어 구현
↓ ↓
토큰 추적 ← 상태 업데이트 ← 결과 처리 ← 실행
↓
사용자 출력
```
### 리소스 로딩 흐름
```
리소스 요청 → 사용자 리소스 확인 → 발견? → 반환
↓ 미발견
프로젝트 리소스 확인 → 발견? → 반환
↓ 미발견
번들 리소스 로드 → 반환
```
### 상태 관리 흐름
```
명령어 실행 → 사전 검증 → 상태 잠금 → 상태 업데이트
↓
사후 검증
↓
구독자 알림
↓
잠금 해제
```
## 플러그인 아키텍처
AIWF의 플러그인 시스템은 코어 코드를 수정하지 않고도 기능을 확장할 수 있게 합니다.
### 플러그인 로딩
1. 다음 위치에서 플러그인 스캔:
- `~/.aiwf/plugins/`
- `./node_modules/aiwf-plugin-*/`
- 명시적 플러그인 경로
2. 플러그인 구조 검증
3. 훅 등록
4. 플러그인 초기화
### 훅 포인트
- **라이프사이클 훅**: `init`, `destroy`
- **명령어 훅**: `beforeCommand`, `afterCommand`
- **상태 훅**: `beforeStateChange`, `afterStateChange`
- **리소스 훅**: `beforeResourceLoad`, `afterResourceLoad`
## 보안 고려사항
### 입력 검증
모든 사용자 입력은 처리 전에 검증됩니다:
- 명령어 인수 살균
- 경로 순회 방지
- 인젝션 공격 방지
### 리소스 격리
- 사용자 리소스는 시스템 리소스와 격리됨
- 샌드박스 템플릿 실행
- 제한된 파일 시스템 접근
### 토큰 보안
- 토큰 수는 로컬에만 저장
- 토큰 추적에 민감한 데이터 없음
- 구성 가능한 개인정보 설정
## 성능 아키텍처
### 최적화 전략
1. **지연 로딩**: 명령어와 리소스를 필요시 로드
2. **캐싱**: 자주 접근하는 리소스를 메모리에 캐시
3. **병렬 처리**: 독립적인 작업을 동시에 실행
4. **증분 업데이트**: 변경된 상태 부분만 업데이트
### 메모리 관리
- 템플릿을 위한 리소스 풀링
- 자동 캐시 제거
- 메모리 사용량 모니터링
- 가비지 컬렉션 최적화
### 성능 모니터링
내장 성능 추적:
- 명령어 실행 시간
- 리소스 로딩 시간
- 상태 작업 메트릭
- 토큰 사용 효율성
## 확장성과 향후 확장
### 계획된 확장
1. **클라우드 동기화**: 기기 간 상태 동기화
2. **팀 협업**: 공유 워크플로우 및 상태
3. **커스텀 AI 모델**: 자체 호스팅 모델 지원
4. **고급 분석**: 상세한 생산성 메트릭
### 확장 포인트
- 사용자 정의 명령어 개발
- 새로운 템플릿 유형
- 추가 AI 페르소나
- 대체 저장소 백엔드
- 사용자 정의 압축 전략
### API 안정성
AIWF는 시맨틱 버전 관리를 따릅니다:
- v1.0.0부터 코어 API 안정화
- 플러그인 API는 별도로 버전 관리
- 주요 변경사항에 대한 사용 중단 알림
- 주요 버전에 대한 마이그레이션 가이드
## 결론
AIWF의 아키텍처는 모듈식, 확장 가능, 고성능으로 설계되었습니다. 계층화된 접근 방식은 관심사의 분리를 보장하며, 플러그인 시스템은 코어 안정성을 손상시키지 않으면서 사용자 정의를 가능하게 합니다. 이 아키텍처는 역호환성을 유지하면서 현재 기능과 향후 확장을 모두 지원합니다.