Architecture Decision Records
아키텍처적으로 중요한 결정을 기록한다. 결정 하나 = 파일 하나.
규칙
- 파일명:
NNNN-제목-케밥케이스.md(예:0003-kafka-instead-of-rabbitmq.md) - 번호는 순차 증가, 재사용 금지
- append-only: 작성 후 수정하지 않는다. 오타 수정 정도만 허용
- 결정이 번복되면: 새 ADR 작성 → 이전 ADR 상태를
Superseded by NNNN으로 변경 - “아키텍처적으로 중요한 결정”의 기준: 되돌리기 비용이 크거나, 여러 팀/모듈에 영향을 주거나, 6개월 뒤 “왜 이랬지?”라는 질문이 나올 만한 것
작성 시점
- 설계 리뷰에서 방향이 확정됐을 때 (구현 시작 전 권장)
- 이미 내려진 결정이라도 기록 가치가 있으면 소급 작성 (상태:
Accepted, 날짜는 실제 결정일)
인덱스 (Dataview 자동 생성)
아래 블록은 Obsidian(Dataview 플러그인)에서 자동으로 표가 된다. GitHub에서는 코드로 보이니 웹에서는 Quartz 사이트로 볼 것.
TABLE status AS 상태, date AS 날짜, owner AS 결정자
FROM "docs/adr"
WHERE type = "adr" AND file.name != "0000-template"
SORT file.name ASC