Skip to content

아키텍처 의사결정 기록 (ADR)

🇺🇸 English Version

Specvital 프로젝트의 아키텍처 의사결정 문서화

ADR이란?

ADR(Architecture Decision Record)은 중요한 아키텍처 결정을 그 배경 및 결과와 함께 기록하는 문서. 멀티-리포지토리 마이크로서비스 환경에서 의사결정 히스토리를 유지하는 데 도움이 됨.

ADR 작성 시점

카테고리예시
기술 스택프레임워크 선택, 라이브러리 도입, 버전 업그레이드
아키텍처서비스 경계, 통신 패턴, 데이터 흐름
API 설계엔드포인트 구조, 버저닝 전략, 에러 처리
데이터베이스스키마 설계, 마이그레이션 전략, 인덱싱 방식
인프라배포 플랫폼, 스케일링 전략, 모니터링
공통 관심사보안, 성능 최적화, 옵저버빌리티

템플릿

템플릿용도
template.md대부분의 의사결정에 사용하는 표준 ADR

명명 규칙

XX-brief-decision-title.md
  • XX: 두 자리 순차 번호 (01, 02, ...)
  • 소문자와 하이픈 사용
  • 간결하고 명확한 제목

기술 영역

영역영향받는 리포지토리
Parsercore
APIweb
Workercollector
Databaseinfra
Infrastructureinfra
Cross-cutting복수

ADR 목록

공통 (전체 리포지토리)

#제목영역날짜
01정적 분석 기반 즉시 분석Cross-cutting2024-12-17
02경쟁 차별화 전략Cross-cutting2024-12-17
03API와 Worker 서비스 분리Architecture2024-12-17
04큐 기반 비동기 처리Architecture2024-12-17
05Polyrepo 리포지토리 전략Architecture2024-12-17
06PaaS 우선 인프라 전략Infrastructure2024-12-17
07공유 인프라 전략Infrastructure2024-12-17
08External Repository ID 기반 데이터 무결성Data Integrity2024-12-22
09GitHub App 통합 인증 전략Authentication2024-12-29
10TestStatus 데이터 계약Data Integrity2024-12-29

Core 리포지토리

#제목영역날짜
01코어 라이브러리 분리Core2024-12-17
02동적 테스트 카운팅 정책Core2024-12-22
03Tree-sitter AST 파싱 엔진Parser2024-12-23
04Early-Return 프레임워크 탐지Parser2024-12-23
05파서 풀링 비활성화Parser2024-12-23
06통합 Framework DefinitionParser2024-12-23
07Source 추상화 인터페이스Parser2024-12-23
08공유 파서 모듈Parser2024-12-23
09Config 스코프 해석Config2024-12-23
10표준 Go 프로젝트 레이아웃Project2024-12-23
11골든 스냅샷 통합 테스트Testing2024-12-23
12Worker Pool 병렬 스캔Perf2024-12-23
13NaCl SecretBox 암호화Crypto2024-12-23
14간접 Import Alias 감지 미지원Parser2025-12-29

Collector 리포지토리

#제목영역날짜
01스케줄 기반 재수집 아키텍처Architecture2024-12-18
02Clean Architecture 레이어 도입Architecture2024-12-18
03Graceful Shutdown 및 Context 기반 생명주기 관리Architecture2024-12-18
04OAuth 토큰 Graceful DegradationReliability2024-12-18
05Worker-Scheduler 프로세스 분리Architecture2024-12-18
06Semaphore 기반 Clone 동시성 제어Concurrency2024-12-18
07Repository 패턴 데이터 접근 추상화Architecture2024-12-18

Web 리포지토리

#제목영역날짜
01백엔드 언어로 Go 선택Tech Stack2024-12-18

프로세스

  1. 생성: template.md 복사 → XX-title.md
  2. 작성: 확정된 의사결정 내용으로 모든 섹션 작성
  3. 현지화: adr/에 영어 버전 생성
  4. 리뷰: 팀 리뷰를 위해 PR 제출
  5. 병합: 승인 후 목록에 추가

관련 리포지토리

Open-source test coverage insights