ADR 작성 방법 v2 - linewalks/dev-common GitHub Wiki

ADRs(Architecture Decision Records)

ADR은 구조(Architecture)적인 결정(Decision)에 대한 기록(Records)입니다.

ADR은 다음의 내용을 포함합니다.

  • 제안 이유
  • 결정 이유
  • 결과

왜 작성해야하는가

(이건 더 상세히 써야겠음)

  • 미래의 당신을 위해
  • 당신의 동료를 위해
  • 미래의 동료를 위해

작성 위치

구조적인 결정을 한 조직에 따라 작성 위치가 달라집니다.

전체 개발 관련

포지션별

프로젝트별

  • 개발 관련

    • 개발자 사이의 구조 결정인 경우, github wiki 이용
  • 개발 외

    • 기획자 또는 디자이너가 관여해야하는 구조의 경우, Confluence 페이지를 이용

작성 방법

ADR의 제목과 본문은 다음 가이드를 지키며 작성합니다.

언어

  • 한국어
  • 단어 영어 허용
  • 템플릿에 포함된 항목명 영어 허용

문투

  • 1순위: 술어 없이
    • ~~로 결정
    • ~~ 요청
  • 2순위: ~음 (1순위로 해결안되는 것들)
    • ~~로 결정함
    • ~~ 요청함

항목

ADR에 포함되어야하는 항목은 다음과 같습니다.

날짜

해당 결정이 내려진 날짜입니다. YYYY-MM-DD 포맷으로 작성합니다.

Status

해당 제안에 대해 내려진 결정 상태입니다. 다음 중, 하나로 작성합니다.

  • Proposed
    • 해당 제안에 대한 결정이 아직 내려지지 않은 상태
  • Accepted
    • 제안이 수용되었습니다.
  • Rejected
    • 제안이 거절되었습니다.
  • Canceled
    • 제안이 수용되었었지만, 그 후에 취소되었습니다.
    • 주로 다른 결정이 이전 결정에 영향을 줄 때 사용합니다.

Context

  • 해당 제안을 하게 된 이유를 작성합니다.

Decision

  • 해당 결정에 대해서 어떤 논의가 이루어 졌고 어떤 결정을 하게 되었는지 작성합니다.

Consequences

  • 결정에 따라 그 다음 행동해야하는 일을 작성합니다.
    • 어떻게 수정해야하는지
    • 어떤 영향이 있는지
    • 누가 작업해야하는지

References

  • 참조할 링크를 작성합니다. (이슈, 문서, 외부 등등)

References

(Github Blog) Why Write ADRs