--- 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페이지 이내) - 한국어로 작성