본문으로 건너뛰기

Architecture Decision Records (ADR)

ADR이란?

Architecture Decision Record(ADR)는 프로젝트의 중요한 아키텍처 결정을 문서화한 기록입니다. 각 ADR은 결정의 맥락, 선택한 방안, 대안, 그리고 결과를 명확히 기술하여 팀원들이 "왜 이런 결정을 했는지"를 이해할 수 있게 합니다.

상태 정의

Proposed 제안됨

Accepted 승인됨

Deprecated 폐기됨

Superseded 대체됨

ADR 목록

번호제목날짜상태레포
ADR-0001CFFI 대신 Rust/PyO3 선택2026-01-15Acceptedaerospike-py
ADR-0002Kubebuilder v4 + controller-runtime 선택2026-01-18Acceptedacko
ADR-0003Docker 대신 Podman 선택2026-02-01Acceptedcluster-manager acko
ADR-0004Dict 대신 NamedTuple 반환 선택2026-02-10Acceptedaerospike-py
ADR-0005DaisyUI 제거 및 Pure Tailwind CSS 4 전환2026-02-25Acceptedcluster-manager
ADR-0006Semaphore 기반 Backpressure 메커니즘2026-03-05Acceptedaerospike-py
ADR-0007Cluster-scoped AerospikeClusterTemplate2026-03-12Acceptedacko
ADR-0008IssueOps 기반 CI 워크플로우2026-03-10Acceptedaerospike-py acko cluster-manager
ADR-0009Unified BatchRecords API2026-03-20Acceptedaerospike-py
ADR-00103-Layer Observability Stack2026-02-05Acceptedaerospike-py
ADR-0011CRD Rename: AerospikeCluster2026-03-10Acceptedacko
ADR-0012Pod Readiness Gates2026-02-20Acceptedacko
ADR-0013Reconciliation Circuit Breaker2026-03-01Acceptedacko
ADR-0014SQLite → PostgreSQL Migration2026-02-10Acceptedcluster-manager
ADR-0015asinfo 기반 Health Check2026-03-05Acceptedacko
ADR-0038외부 네트워크 접근 — Per-pod LB/NodePort2026-04-05Acceptedacko

새 ADR 제안 방법

1. GitHub Issue 생성

project-hub 레포지토리에서 ADR Proposal 이슈 템플릿(adr_proposal.yml)을 사용하여 제안합니다.

2. 이슈 템플릿에 포함할 내용

  • 제목: 간결한 결정 요약
  • 맥락(Context): 결정이 필요한 배경 설명
  • 제안(Proposal): 선택하려는 방안
  • 대안(Alternatives): 고려한 다른 방안들
  • 영향(Impact): 영향받는 레포지토리 목록

3. 검토 및 승인 프로세스

  1. 이슈에 adr 라벨 자동 부여
  2. 관련 레포 maintainer 리뷰
  3. 합의 후 ADR 문서 작성 및 PR 제출
  4. PR 머지 시 상태를 Accepted로 변경

4. ADR 번호 부여

  • 4자리 0-패딩 순번 사용 (예: 0001, 0002)
  • 번호는 절대 재사용하지 않음
  • 폐기된 ADR도 번호를 유지하고 상태만 변경

ADR 작성 가이드

ADR 작성 시 템플릿을 참고하세요. 핵심 원칙:

  • 간결하게: 1-2페이지를 넘기지 않을 것
  • 맥락 중심: "왜" 이 결정을 했는지에 집중
  • 대안 기록: 선택하지 않은 방안도 반드시 기록
  • 영향 명시: 어떤 레포가 영향받는지 명확히 기술