아키텍처 표준
본 영역은 스택별 아키텍처 표준을 모아 둔 곳입니다. 각 표준은 특정 시스템 하나의 명세가 아니라 여러 프로젝트에 적용하는 규범집이며, 프로젝트마다 달라지는 항목은 판단 기준만 제시하고 구체 구성은 각 프로젝트 저장소가 소유합니다.
1. 수록 범위
| 영역 | 스택 | 상태 |
|---|---|---|
| 프론트엔드 | Angular | 작성 완료 |
| 백엔드 | NestJS | 준비 중 |
| 백엔드 | Spring Boot | 준비 중 |
2. 문서의 구성
각 스택의 표준은 세 종류로 나뉩니다.
| 종류 | 담는 것 | 읽는 시점 |
|---|---|---|
| 개요 | 품질 목표, 제약 조건, 전략, 그리고 나머지 문서의 목차 | 처음 들어올 때 |
| 참조 | 항목별 세부 규칙과 강제 수단 | 코드를 쓰다가 판단이 필요할 때 |
| 결정 기록 | 선택의 사유와 기각한 대안 | 규칙을 바꾸려 할 때 |
규칙을 바꾸기 전에 결정 기록을 먼저 확인합니다. 대부분의 규칙에는 그것을 그렇게 정한 사유와 함께 기각한 대안이 남아 있습니다. 사정을 모르고 되돌리면 같은 논의를 반복하게 됩니다.
3. 공통 원칙
스택이 달라도 유지하는 것이 셋 있습니다.
- 규칙에는 강제 수단이 있어야 합니다. 린터나 빌드로 차단되지 않는 규약은 준수를 보장하지 못합니다. 자동 강제가 불가능한 항목은 그 사실을 문서에 명시합니다.
- 설정값을 문서에 옮겨 적지 않습니다. 설정 파일이 그 자체로 원본이며 문서는 규칙과 근거를 담습니다. 두 벌이 되면 한쪽이 낡습니다.
- 결정에는 대가를 함께 적습니다. 무엇을 얻었는지만 적힌 문서는 다음 작업자에게 판단 근거를 남기지 못합니다.