96 lines
2.3 KiB
Markdown
96 lines
2.3 KiB
Markdown
---
|
|
name: adr-writer
|
|
label: 아키텍처 결정 기록 (ADR)
|
|
description: 아키텍처 결정 사항을 표준 ADR 형식으로 문서화합니다.
|
|
icon: \uE82D
|
|
allowed-tools:
|
|
- file_read
|
|
- file_write
|
|
- folder_map
|
|
- grep
|
|
- search_codebase
|
|
tabs: code
|
|
---
|
|
|
|
아키텍처 결정 사항을 ADR(Architecture Decision Record) 형식으로 문서화하세요.
|
|
|
|
## ADR이란?
|
|
소프트웨어 아키텍처에서 내린 중요한 결정의 배경, 대안, 근거를 기록하는 경량 문서입니다.
|
|
미래의 팀원이 "왜 이렇게 결정했는지"를 이해할 수 있게 합니다.
|
|
|
|
## 워크플로우
|
|
|
|
1. **결정 사항 확인**: 사용자에게 다음을 파악
|
|
- 어떤 결정을 내렸는가 (또는 내려야 하는가)
|
|
- 관련 코드/시스템 영역
|
|
- 고려한 대안들
|
|
2. **코드 분석** (선택): 관련 코드 구조를 읽어 현재 상태 파악
|
|
3. **ADR 작성**: 표준 형식으로 문서 생성
|
|
4. **파일 저장**: `docs/adr/` 폴더에 번호 형식으로 저장
|
|
|
|
## ADR 표준 형식
|
|
|
|
```markdown
|
|
# ADR-[번호]: [결정 제목]
|
|
|
|
**상태**: 제안됨 | 승인됨 | 폐기됨 | 대체됨
|
|
**날짜**: YYYY-MM-DD
|
|
**결정자**: [이름/팀]
|
|
|
|
## 맥락 (Context)
|
|
어떤 상황에서 이 결정이 필요한가?
|
|
- 기술적 배경
|
|
- 비즈니스 요구사항
|
|
- 제약 조건
|
|
|
|
## 결정 (Decision)
|
|
무엇을 결정했는가?
|
|
- 선택한 방안의 구체적 내용
|
|
- 적용 범위
|
|
|
|
## 대안 (Alternatives)
|
|
|
|
### 대안 1: [이름]
|
|
- 장점: ...
|
|
- 단점: ...
|
|
- 비용/복잡도: ...
|
|
|
|
### 대안 2: [이름]
|
|
- 장점: ...
|
|
- 단점: ...
|
|
- 비용/복잡도: ...
|
|
|
|
## 근거 (Rationale)
|
|
왜 이 결정을 선택했는가?
|
|
- 대안 대비 장점
|
|
- 트레이드오프 분석
|
|
- 참고 자료/벤치마크
|
|
|
|
## 결과 (Consequences)
|
|
|
|
### 긍정적
|
|
- ...
|
|
|
|
### 부정적
|
|
- ...
|
|
|
|
### 리스크
|
|
- ...
|
|
|
|
## 관련 문서
|
|
- ADR-[관련번호]: [제목]
|
|
- [외부 참고 링크]
|
|
```
|
|
|
|
## 파일 명명 규칙
|
|
- 위치: `docs/adr/` (없으면 생성)
|
|
- 파일명: `ADR-NNNN-제목-요약.md` (예: `ADR-0001-데이터베이스-선택.md`)
|
|
- 번호: 기존 ADR 파일 조회 후 자동 부여
|
|
|
|
## 규칙
|
|
- 결정의 "왜"를 중심으로 작성 (코드를 읽으면 "무엇"은 알 수 있음)
|
|
- 대안은 최소 2개 이상 제시
|
|
- 트레이드오프를 솔직하게 기록 (완벽한 선택은 없음)
|
|
- 짧고 명확하게 (1~2페이지 이내)
|
|
- 한국어로 작성
|