개발 아키텍처 결정, 어떻게 기록할까 — ADR과 C4 모델 활용법
- “왜 PostgreSQL을 썼지?”
- “Redis를 왜 붙였더라?”
- → 시간이 지나면 결정 이유는 잊혀지고, 기술 부채로 돌아온다.
📘 ADR (Architecture Decision Record) ** **🔹 목적
“왜 이 기술을 선택했는가”를 짧고 명확하게 남기는 문서
🔹 포맷 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
# ADR 002: 데이터베이스 선택
## 결정
PostgreSQL + Redis 선택
## 이유
- ACID 트랜잭션
- JSONB 지원
- 캐싱 및 실시간 처리
## 대안
MongoDB, MySQL 등
- ADR-001:** 클린 아키텍처 + DDD + CQRS 도입**
- ADR-002:** PostgreSQL + Redis 선택**
- → 장단점, 대안, 디렉토리 구조, 기술 스택까지 정리
🧩 C4 모델 ** **🔹 목적
시스템 구조를 단계적으로 시각화 (Context → Container → Component → Code)
🔹 예시
1
2
3
4
5
6
graph TD
Client --> API
API --> Service
Service --> PostgreSQL
Service --> Redis
- Level 1:** 유저가 어떤 시스템과 연결되는가**
- Level 2:** 앱은 어떤 구성 요소로 이루어졌는가**
** 요약**
| 목적 | 방법 |
|---|---|
| 결정 이유 기록 | ✅ ADR 문서 |
| 구조 설명 | ✅ C4 다이어그램 |
** 마무리** ** **혼자 개발하든, 팀을 이끌든 ** **“왜 그렇게 만들었는가”를 기록하는 것은 가장 강력한 개발 습관이다.
adr/ 폴더에 기록을 남기고, docs/architecture.md에 구조를 시각화해보자.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.
