20

아키텍처 결정 기록 (ADR)

Day 1: 처음부터 끝까지 혼자 만들어봐

학습 목표

ADR의 목적과 작성법을 이해한다 기술 선택의 근거를 문서화할 수 있다

왜 ADR을 쓰는가?

"왜 Spark를 썼어요? Pandas로 하면 안 돼요?"

6개월 후에 이 질문이 들어온다. 그때 "기억이 안 나는데..."라고 하면 안 된다.

ADR (Architecture Decision Record) = 기술 선택의 이유를 기록하는 문서


ADR 템플릿

에디터 로딩 중...

이번 프로젝트의 핵심 ADR

ADR-002: 데이터 레이어 분리 (Bronze/Silver/Gold)

레이어설명형식
Bronze (Raw)원본 그대로JSON, CSV
Silver (Staging)정제, 중복 제거Delta
Gold (Warehouse)분석용, Star SchemaDelta

왜 분리하는가?

  • 문제 추적이 쉽다 (어느 단계에서 오류가 났는지)
  • 재처리가 쉽다 (Bronze부터 다시 돌리면 됨)
  • 각 레이어마다 SLA가 다르다

ADR-003: Airflow를 오케스트레이션 도구로 선택

고려한 대안:

  • Prefect: 현대적이지만 커뮤니티 작음
  • Dagster: 좋지만 학습 곡선 높음
  • Airflow: 업계 표준, 자료 풍부

결정: Airflow 2.x (TaskFlow API 사용)


ADR 작성 팁

  1. 결정 이유를 명확히 - "좋아서"가 아니라 구체적인 이유
  2. 대안을 기록 - 왜 다른 것을 선택하지 않았는지
  3. 결과를 추적 - 결정이 맞았는지 나중에 검증
  4. 짧게 작성 - 1페이지 내외로