aiwf
Version:
AI Workflow Framework for Claude Code with multi-language support (Korean/English)
602 lines (434 loc) • 14.8 kB
Markdown
AIWF Architecture Decision Record (ADR) 관리 가이드
AIWF 프로젝트에서 ADR을 사용하여 아키텍처 결정을 관리하는 종합 가이드
[한국어](ADR_MANAGEMENT_GUIDE.ko.md) | [English](ADR_MANAGEMENT_GUIDE.md)
# 목차
1. [ADR이란?](#adr이란)
2. [AIWF에서 ADR을 사용하는 이유](#aiwf에서-adr을-사용하는-이유)
3. [ADR 구조](#adr-구조)
4. [AIWF와의 통합](#aiwf와의-통합)
5. [ADR 생성](#adr-생성)
6. [ADR 관리](#adr-관리)
7. [ADR 템플릿](#adr-템플릿)
8. [모범 사례](#모범-사례)
9. [자동화 및 도구](#자동화-및-도구)
10. [예제](#예제)
# ADR이란?
Architecture Decision Record(ADR)는 프로젝트에서 내려진 중요한 아키텍처 결정을 컨텍스트와 결과와 함께 기록하는 짧은 텍스트 문서입니다. 특정 결정이 내려진 이유의 역사적 기록 역할을 하며, 미래의 개발자들이 아키텍처 선택의 배경을 이해하는 데 도움을 줍니다.
## 주요 특징
- **불변성**: 작성된 후에는 변경되지 않음 (대체만 가능)
- **번호 체계**: 쉬운 참조를 위한 순차적 번호 매기기
- **풍부한 컨텍스트**: 결정에 이르게 된 상황 포함
- **결과 인식**: 결과와 트레이드오프 문서화
# AIWF에서 ADR을 사용하는 이유
## AI 지원 개발의 이점
1. **AI 컨텍스트**: Claude Code에 결정의 역사적 컨텍스트 제공
2. **자율 가이던스**: YOLO 모드가 정보에 기반한 아키텍처 선택을 하도록 도움
3. **일관성**: AI가 확립된 아키텍처 패턴을 따르도록 보장
4. **문서화**: 개발 세션 간 아키텍처 지식 유지
## AIWF 특화 장점
- **스프린트 계획**: ADR이 태스크 생성과 우선순위에 정보 제공
- **페르소나 컨텍스트**: 다른 AI 페르소나가 관련 결정 참조 가능
- **품질 제어**: Engineering Guard가 결정 준수 여부 검증 가능
- **복구**: 체크포인트 시스템이 컨텍스트 복원을 위해 ADR 참조 가능
# ADR 구조
## 표준 ADR 형식
```markdown
ADR-001: 결정 제목
**날짜**: YYYY-MM-DD
**상태**: [제안됨 | 승인됨 | 폐기됨 | 대체됨]
**컨텍스트**: AIWF 프로젝트 컨텍스트
# 컨텍스트
이 결정을 촉발한 문제나 상황에 대한 설명.
# 결정
내려진 아키텍처 결정.
# 결과
## 긍정적
- 이 결정의 이점과 장점
## 부정적
- 단점과 트레이드오프
## 중립적
- 기타 효과와 고려사항
# 구현 참고사항
AIWF 내에서의 구현을 위한 구체적인 가이던스.
# 관련 결정
- 관련 ADR에 대한 링크
- 영향받는 AIWF 구성요소에 대한 참조
# 준수 검증
- 이 결정에 대한 준수 여부를 확인하는 방법
- 해당되는 경우 Engineering Guard 규칙
```
## AIWF 강화 구조
```markdown
ADR-001: 결정 제목
**날짜**: YYYY-MM-DD
**상태**: 승인됨
**컨텍스트**: AIWF v0.3.16+ 프로젝트
**영향 범위**: [CLI | YOLO | Personas | Templates]
**페르소나 관련성**: [architect | developer | security]
# 컨텍스트
[표준 컨텍스트 섹션]
# 결정
[표준 결정 섹션]
# AIWF 통합
## CLI 영향
이 결정이 CLI 명령어와 워크플로에 미치는 영향.
## YOLO 모드 고려사항
자율 실행과 안전 메커니즘에 대한 의미.
## 페르소나 가이드라인
다른 AI 페르소나를 위한 구체적인 가이던스.
## 템플릿 업데이트
프로젝트 템플릿에 필요한 변경사항.
# 결과
[표준 결과 섹션]
# 검증 규칙
## Engineering Guard 규칙
```yaml
.aiwf/yolo-config.yaml 추가사항
custom_rules:
- name: "ADR-001 준수"
pattern: "validation_pattern"
severity: "warning"
```
## 자동화된 검사
- 준수 검증을 위한 단위 테스트
- CI/CD 파이프라인 검증
- AIWF 명령어 통합
# 구현 가이드
## 단계별 구현
1. [상세한 구현 단계]
2. [AIWF 특화 고려사항]
3. [검증 체크포인트]
## 코드 예제
```javascript
// 구현 예제
```
# 관련 문서
- [관련 AIWF 문서에 대한 링크]
- [관련 ADR]
- [AIWF 모듈 문서]
```
# AIWF와의 통합
## 디렉토리 구조
```
.aiwf/
├── adrs/
│ ├── 0001-module-architecture.md
│ ├── 0002-yolo-safety-mechanisms.md
│ ├── 0003-persona-selection-strategy.md
│ └── template.md
├── yolo-config.yaml
└── state.json
```
## AIWF 명령어 통합
### 계획된 명령어 (향후 개선)
```bash
새 ADR 생성
aiwf adr create "데이터베이스 마이그레이션 전략"
ADR 목록
aiwf adr list
특정 ADR 표시
aiwf adr show 001
현재 작업에 ADR 연결
aiwf adr link 001 --to-task T001
ADR에 대한 현재 코드 검증
aiwf adr validate
```
## Claude Code 통합
### ADR 인식 명령어
```markdown
Claude Code에서
/aiwf_prime # 이제 ADR 컨텍스트 로딩 포함
/aiwf_create_milestone_plan # 관련 ADR 참조
/aiwf_yolo # ADR 제약사항 고려
```
# ADR 생성
## ADR을 생성해야 할 때
1. **주요 아키텍처 변경**: 데이터베이스 스키마, API 설계, 모듈 구조
2. **기술 선택**: 프레임워크 선택, 라이브러리 채택, 도구 통합
3. **AIWF 특화 결정**: YOLO 동작, 페르소나 설정, 템플릿 설계
4. **보안 결정**: 인증, 권한 부여, 데이터 보호
5. **성능 결정**: 캐싱 전략, 최적화 접근법
## 생성 과정
### 수동 생성
```bash
1. 템플릿 복사
cp .aiwf/adrs/template.md .aiwf/adrs/0001-your-decision.md
2. ADR 편집
vim .aiwf/adrs/0001-your-decision.md
3. 현재 작업에 연결
태스크나 스프린트 문서에 ADR 참조 추가
4. 커밋
git add .aiwf/adrs/0001-your-decision.md
git commit -m "docs: ADR-001 추가 for your decision"
```
### AIWF 사용 (향후)
```bash
템플릿으로 생성
aiwf adr create "마이크로서비스 통신 패턴"
컨텍스트와 함께 생성
aiwf adr create "YOLO 안전 메커니즘" --context="yolo-mode"
페르소나 관점에서 생성
aiwf adr create "보안 정책" --persona="security"
```
# ADR 관리
## 생명주기 관리
### 상태 전환
```
제안됨 → 승인됨 → [폐기됨 | 대체됨]
↓
거부됨
```
### 상태 업데이트
```markdown
ADR을 폐기하려면
# 상태 업데이트
**이전 상태**: 승인됨
**새 상태**: 폐기됨
**날짜**: 2025-01-27
**이유**: ADR-015에 의해 대체됨
```
## 연결 및 참조
### 태스크 통합
```markdown
태스크 파일에서
# 아키텍처 컨텍스트
- ADR-001: 모듈 아키텍처 패턴
- ADR-003: API 설계 원칙
# 준수 요구사항
- ADR-001 모듈 구조 따르기
- ADR-003 오류 처리 구현
```
### 스프린트 계획
```markdown
스프린트 문서에서
# 고려할 아키텍처 결정
- [ ] 데이터베이스 접근 패턴을 위해 ADR-002 검토
- [ ] ADR-004 보안 가이드라인 적용
- [ ] ADR-001 모듈 구조에 대한 검증
```
# ADR 템플릿
## 기본 템플릿
```markdown
ADR-{번호}: {제목}
**날짜**: {날짜}
**상태**: 제안됨
**컨텍스트**: AIWF 프로젝트
# 컨텍스트
우리가 직면한 문제는 무엇인가? 어떤 요소들이 관련이 있는가?
# 결정
우리가 만드는 변화는 무엇인가?
# 결과
그 결과로 무엇이 더 쉬워지거나 어려워지는가?
```
## AIWF 특화 템플릿
```markdown
ADR-{번호}: {제목}
**날짜**: {날짜}
**상태**: 제안됨
**컨텍스트**: AIWF v{버전}+ 프로젝트
**영향 범위**: [CLI | YOLO | Personas | Templates | Core]
**페르소나 관련성**: [architect | developer | security | tester]
# 컨텍스트
## 문제 설명
[아키텍처 챌린지에 대한 설명]
## AIWF 컨텍스트
[AIWF 워크플로 및 구성요소와의 관련성]
## 제약사항
[기술적, 비즈니스적, 또는 프로젝트 제약사항]
# 결정
## 선택된 접근법
[내려진 아키텍처 결정]
## 고려된 대안
[평가된 다른 옵션들]
## 근거
[이 결정이 내려진 이유]
# AIWF 통합
## CLI 영향
[명령줄 작업에 미치는 영향]
## YOLO 모드 고려사항
[자율 실행에 대한 의미]
## 페르소나 가이드라인
[다른 AI 페르소나를 위한 가이던스]
## 템플릿 변경
[프로젝트 템플릿에 필요한 업데이트]
# 결과
## 긍정적
- [이점과 개선사항]
## 부정적
- [트레이드오프와 제한사항]
## 중립적
- [기타 효과]
# 구현
## 액션 아이템
- [ ] [구체적인 구현 단계]
- [ ] [AIWF 설정 업데이트]
- [ ] [문서 업데이트]
## 검증
[올바른 구현을 확인하는 방법]
## 일정
[해당되는 경우 구현 일정]
# 준수
## Engineering Guard 규칙
```yaml
.aiwf/yolo-config.yaml에 추가할 규칙
adr_compliance:
adr_{번호}:
enabled: true
severity: warning
pattern: "{validation_pattern}"
```
## 자동화된 검사
[단위 테스트, CI/CD 검증 등]
# 관련 문서
- [관련 문서에 대한 링크]
- [관련 ADR]
- [AIWF 모듈 참조]
# 검토 및 승인
## 검토자
- [ ] 아키텍트: {이름}
- [ ] 리드 개발자: {이름}
- [ ] 보안 리드: {이름} (보안 관련인 경우)
## 승인 날짜
[ADR이 승인된 날짜]
```
# 모범 사례
## 효과적인 ADR 작성
1. **간결하게**: ADR을 집중되고 읽기 쉽게 유지
2. **구체적으로**: 모호한 언어와 일반화 피하기
3. **컨텍스트 포함**: 결정에 이르게 된 상황 설명
4. **트레이드오프 문서화**: 결과에 대해 솔직하게 기술
5. **코드에 연결**: 구체적인 구현 참조
## AIWF 특화 모범 사례
1. **페르소나 정렬**: 다른 페르소나가 ADR을 어떻게 해석할지 고려
2. **YOLO 호환성**: 결정이 자율 실행과 호환되는지 확인
3. **템플릿 통합**: 결정을 반영하여 프로젝트 템플릿 업데이트
4. **Engineering Guard 규칙**: 해당되는 경우 검증 규칙 추가
5. **스프린트 계획**: 태스크와 스프린트 문서에서 ADR 참조
## 유지보수 관행
1. **정기 검토**: 주기적으로 ADR 상태 검토 및 업데이트
2. **링크 검증**: 참조가 정확한지 확인
3. **구현 추적**: 결정 준수 모니터링
4. **지식 전수**: 새 팀원 온보딩에 ADR 활용
# 자동화 및 도구
## Git 훅 통합
```bash
.git/hooks/pre-commit
!/bin/bash
커밋 메시지에서 ADR 참조 검증
if git log -1 --pretty=%B | grep -q "ADR-[0-9]"; then
echo "✅ 커밋 메시지에서 ADR 참조 발견"
else
echo "ℹ️ 커밋 메시지에 관련 ADR 참조 고려하기"
fi
```
## 향후 AIWF 통합
### 계획된 기능
- **ADR 명령어**: `aiwf adr` 명령어 세트
- **컨텍스트 로딩**: Claude Code에서 자동 ADR 컨텍스트
- **검증**: Engineering Guard ADR 준수 검사
- **템플릿**: ADR 인식 프로젝트 템플릿
### 제안된 워크플로
```bash
1. AIWF로 ADR 생성
aiwf adr create "API 속도 제한 전략"
2. 현재 작업에 연결
aiwf task link ADR-001 --to-current
3. 구현 검증
aiwf adr validate --against=ADR-001
4. 준수 리포트 생성
aiwf adr report --sprint=S01
```
# 예제
## 예제 1: 모듈 아키텍처 ADR
```markdown
ADR-001: 모듈러 컴포넌트 아키텍처
**날짜**: 2025-01-27
**상태**: 승인됨
**컨텍스트**: AIWF v0.3.16+ 프로젝트
**영향 범위**: Core, CLI, Templates
**페르소나 관련성**: architect, developer
# 컨텍스트
AIWF가 유기적으로 성장하면서 컴포넌트들이 긴밀하게 결합되어 개별 기능을 테스트, 유지보수, 확장하기 어려워졌습니다.
# 결정
명확한 의존성 경계를 가진 모듈러 아키텍처 채택:
- 핵심 유틸리티 (paths, messages, language-utils)
- 기능 모듈 (persona, checkpoint, compression)
- 확장을 위한 플러그인 시스템
# AIWF 통합
## CLI 영향
명령어들이 필요한 기능에 따라 모듈을 동적으로 로드합니다.
## YOLO 모드 고려사항
모듈러 설계로 YOLO가 필요한 컴포넌트만 로드하여 성능을 향상시킵니다.
## Engineering Guard 규칙
```yaml
module_architecture:
enforce_boundaries: true
max_dependencies: 5
circular_dependency_check: true
```
# 결과
## 긍정적
- 향상된 테스트 가능성과 유지보수성
- 더 빠른 개발 사이클
- 더 나은 플러그인 지원
## 부정적
- 초기 복잡성 증가
- 의존성 관리 필요
# 구현
- 기존 모놀리식 컴포넌트 리팩토링
- 의존성 주입 구현
- 문서 및 템플릿 업데이트
```
## 예제 2: YOLO 안전 메커니즘 ADR
```markdown
ADR-002: YOLO 안전 메커니즘 프레임워크
**날짜**: 2025-01-27
**상태**: 승인됨
**컨텍스트**: AIWF v0.3.16+ YOLO 모드
**영향 범위**: YOLO, Engineering Guard, Checkpoint
**페르소나 관련성**: architect, security
# 컨텍스트
자율 실행은 데이터 손실, 보안 문제, 코드 품질 저하를 방지하기 위한 강력한 안전 메커니즘이 필요합니다.
# 결정
다층 안전 프레임워크 구현:
1. 코드 품질을 위한 Engineering Guard
2. 복구를 위한 체크포인트 시스템
3. 중요 작업을 위한 중단점 시스템
4. 실시간 모니터링 및 개입
# YOLO 모드 고려사항
안전 프레임워크는 자율 실행을 위해 특별히 설계됨:
- 논블로킹 품질 검사
- 실패 시 자동 롤백
- 개입의 점진적 에스컬레이션
# Engineering Guard 규칙
```yaml
yolo_safety:
critical_file_protection: true
test_failure_threshold: 10
complexity_monitoring: true
automatic_checkpoints: 5
```
# 구현
- YOLO 템플릿과 함께 engineering-guard.js 배포
- 세션 추적과 checkpoint-manager.js 통합
- yolo-config.yaml에 안전 설정 추가
```
# 관련 명령어
## 현재 AIWF 명령어
- `/aiwf_prime` - 프로젝트 컨텍스트 로드 (ADR 컨텍스트 포함 가능)
- `/aiwf_create_milestone_plan` - 계획에서 ADR 참조
- `/aiwf_do_task` - 구현 중 ADR 제약사항 고려
## 계획된 명령어
- `aiwf adr create` - 새 ADR 생성
- `aiwf adr list` - 모든 ADR 목록
- `aiwf adr validate` - ADR에 대한 코드 검증
- `aiwf adr link` - ADR을 태스크에 연결
# 관련 문서
- [ARCHITECTURE.md](ARCHITECTURE.ko.md) - 전체 시스템 아키텍처
- [MODULE_MANAGEMENT_GUIDE.md](MODULE_MANAGEMENT_GUIDE.ko.md) - 모듈 의존성 관리
- [YOLO_SYSTEM_GUIDE.md](YOLO_SYSTEM_GUIDE.ko.md) - YOLO 모드 문서
- [DEVELOPMENT_GUIDE.md](DEVELOPMENT_GUIDE.ko.md) - 개발 관행
---
**마지막 업데이트**: 2025-01-27
**버전**: AIWF v0.3.16+ 호환
**상태**: 문서 프레임워크 (ADR 명령어는 구현 예정)