Introduction to ADRs by Vladas Diržys
- 아키텍처는 단순히 멋진 다이어그램이 아니라, 구조와 기능을 형성하는 의도적이고 사려 깊은 '결정들의 집합'입니다. 🏗️
- 결정의 '맥락'이 매우 중요하며, 보편적으로 좋은 아키텍처는 없고 특정 목적에 적합한지 여부가 중요합니다. 🎯
- 인간은 하루에 수만 가지 결정을 내리지만, 중요한 아키텍처 결정에는 다니엘 카네만의 '시스템 2'와 같은 느리고 분석적인 사고를 의도적으로 활용해야 합니다. 🧠
- 제한된 작업 기억과 끊임없는 방해 속에서 더 나은 결정을 내리기 위해 '기록하는 행위'가 사고 과정을 명확히 하고 인지 편향을 줄이며 의사 결정에 대한 몰입을 강화합니다. ✍️
- ADR(Architecture Decision Record)은 중요한 아키텍처 결정을 체계적으로 문서화하는 도구로, 결정의 배경, 제약 조건, 옵션, 장단점, 결과 및 최종 결정을 포함합니다. 📜
- ADR은 불변하며, 결정이 변경될 경우 이전 ADR은 새로운 ADR에 의해 '대체됨' 상태가 되어 결정의 이력을 보존합니다. ⏳
- 결정 과정에서 '영향을 받는 사람'과 '전문가'로부터 조언을 구하는 '아키텍처 조언 프로세스'를 통해 맹점을 발견하고 더 나은 정보를 바탕으로 신뢰할 수 있는 결정을 내릴 수 있습니다. 🤝
- ADR의 구조는 제목, 메타데이터, 맥락, 옵션, 결과, 결정으로 구성되며, 조언 요소를 추가하여 의사 결정의 투명성과 신뢰성을 높일 수 있습니다. 📝
- 결정의 제목은 처음에는 일반적이지만, 최종 결정 후에는 구체적인 내용으로 변경하여 ADR 목록만 보고도 어떤 결정이 내려졌는지 쉽게 파악할 수 있도록 최적화합니다. ✨