---
type: knowledge
domain: architecture
status: active
last-reviewed: 2026-07-27
---

# 설계 결정과 리뷰

> 한 줄 정의
> 설계를 "머릿속 합의"가 아니라 **기록(ADR)과 검증(리뷰)**으로 만드는 방법 — 무엇을 기록할 가치가 있고, 리뷰에서 무엇을 요구해야 하는지의 기준.

## 1. ADR — 무엇을 기록하나

**기록 대상 = 되돌리기 비싼 결정(one-way door)만.**

| 기록한다 | 기록하지 않는다 |
|---------|----------------|
| 저장소·프로토콜·인증 방식 선택 | 변수명·폴더 구조 (코드 리뷰의 일) |
| 컨텍스트 경계·서비스 분리 | 라이브러리 마이너 버전 |
| 프레임워크 채택 (6축 승격) | two-way 결정 전부 — 그냥 하고 되돌린다 |
| 일관성 모델·이벤트 도입 | 아무도 반대하지 않은 자명한 선택 |

- 형식은 [[ADR-TEMPLATE]]. 핵심 3요소: **맥락(그때 알던 것) · 기각한 대안과 이유 · 재검토 트리거**.
- ADR의 독자는 6개월 뒤의 자신과 AI다: "왜 이렇게 돼 있지?"에 코드가 답하지 못하는 것을 기록한다.
- 결정 직후에 쓴다. 사후 몰아쓰기는 맥락이 증발해 가치가 없다.

## 2. 트레이드오프 분석 — 결정의 형식

옵션이 2개 이상이면 표로 강제한다:

| 평가 축 | 옵션 A | 옵션 B |
|---------|--------|--------|
| 요구 충족 | | |
| 운영 복잡도 | | |
| 변경 비용 | | |
| 팀 역량 적합 | | |
| 실패 시 복구 | | |

- 축에는 점수 대신 **사실**을 쓴다 ("운영 인력 0명인데 셀프호스팅 필요").
- 마지막 줄 필수: **"이 결정이 틀렸다면 무엇으로 알게 되나"** — 재검토 트리거(지표·날짜·이벤트)를 명시한다.
- 결정을 미루는 것도 결정이다: **최종 책임 시점(Last Responsible Moment)** — 기다리면 정보가 늘고 비용이 늘지 않는 동안만 미루고, 미룬다는 사실을 기록한다.

## 3. 다이어그램 — C4 운용 기준

| 수준 | 그리나 | 용도 |
|------|--------|------|
| C1 Context | **항상** (1장) | 시스템·사용자·외부 의존 — 이해관계자 공용 |
| C2 Container | **항상** (1장) | 배포 단위·통신·저장소 — 개발 착수 기준도 겸함 |
| C3 Component | 복잡한 컨테이너만 | 내부 모듈 경계 |
| C4 Code | 그리지 않는다 | 코드가 진실 — 그림은 즉시 낡는다 |

- 다이어그램은 spec 7절(아키텍처 결정, mermaid)에 넣어 문서와 함께 버전 관리한다. 수정 불가능한 이미지 산출물은 만들지 않는다.

## 4. 설계 리뷰 — 정답 찾기가 아니라 위험 발견

- 리뷰어에게 주는 입력: **결정 + 기각한 대안 + 제약** (트레이드오프 표 그대로). 백지에 "어떻게 생각해요?"는 리뷰가 아니라 재설계 요청이다.
- 리뷰 요청은 구체적으로: "3절 일관성 선택이 5절 장애 시나리오와 충돌하는지 봐 달라".
- **렌즈를 나눈다**: 같은 리뷰어 N명이 아니라 정확성·보안·운영·비용 렌즈 각 1명. AI 리뷰어도 동일 — 복제 대신 렌즈 분리 → [[개발 파이프라인 분업]].
- 처분 보정: 차단(설계 결함·보안·데이터 손실) / 권고 / 취향을 구분해 표기한다. 취향으로 차단하지 않는다. 결함 심각도 등급(Critical~Nit)의 정본은 [[02_리뷰 렌즈·심각도]].
- 합의 규칙: 만장일치를 요구하지 않는다 — 우려를 기록하고 결정자가 정하면 따른다(disagree & commit). 우려가 맞았는지는 재검토 트리거로 확인한다.

## 안티패턴

- **장식용 ADR** — 템플릿만 채우고 기각 대안이 "없음". 대안 없는 결정은 검토하지 않은 결정이다.
- **리뷰 = 승인 도장** — 위험 지적 0건 리뷰가 반복되면 리뷰어가 아니라 프로세스가 죽은 것.
- **다이어그램 과잉** — 코드와 어긋난 그림 12장 < 정확한 2장.
- **회의로만 존재하는 설계** — 기록 없는 합의는 3주 뒤 각자 다른 기억이 된다.

## 관련 문서

- [[00_설계 허브]] · [[ADR-TEMPLATE]] · [[설계-리뷰-체크리스트]] · [[아키텍처 스타일 선택]] · [[기획 원리]] (one-way/two-way) · [[개발 파이프라인 분업]]
