원문 캡처 · adr.github.io
원문 캡처 · adr.github.io

개념과 목적

아키텍처 결정(Architectural Decision, AD)은 아키텍처에 중요한 기능적 또는 비기능적 요구사항을 충족하기 위한, 근거가 있는 설계 선택이다. 아키텍처 중요 요구사항(Architecturally Significant Requirement, ASR)은 소프트웨어 및 하드웨어 시스템의 아키텍처와 품질에 측정 가능한 영향을 미치는 요구사항이다.

아키텍처 결정 기록(Architectural Decision Record, ADR)은 하나의 AD와 그 근거를 기록한다. 이를 통해 선택한 아키텍처 결정의 이유와 절충점, 결과를 파악할 수 있다. 프로젝트에서 작성하고 관리하는 ADR의 모음은 해당 프로젝트의 의사결정 기록을 이룬다. 이 개념은 아키텍처 지식 관리(Architectural Knowledge Management, AKM)에 속하지만, ADR은 설계 및 다른 결정까지 기록하는 용도로 확장해 사용할 수 있다.

GitHub adr 조직은 다음을 목표로 한다.

  • AD를 기록해야 하는 이유와 이점을 알리고 공통 용어를 정립한다.
  • 애자일 관행과 반복적·점진적 엔지니어링 프로세스를 뒷받침하도록 ADR 도구를 강화한다.
  • AKM과 ADR에 관한 공개 지식 자료를 안내한다.

미디어와 참고 자료

배경과 안내

adr 조직의 작업은 츠둔(Zdun) 등 연구자의 지속 가능한 아키텍처 결정에 담긴 지침과 원칙을 바탕으로 한다. 해당 글에서 제안한 Y-문장 형식도 그 예다.

보다 일반적인 배경 정보와 ADR 안내 자료는 다음과 같다.