아키텍처 의사결정 기록 (ADR)
Specvital 프로젝트의 아키텍처 의사결정 문서화
ADR이란?
ADR(Architecture Decision Record)은 중요한 아키텍처 결정을 그 배경 및 결과와 함께 기록하는 문서. 멀티-리포지토리 마이크로서비스 환경에서 의사결정 히스토리를 유지하는 데 도움이 됨.
ADR 작성 시점
| 카테고리 | 예시 |
|---|---|
| 기술 스택 | 프레임워크 선택, 라이브러리 도입, 버전 업그레이드 |
| 아키텍처 | 서비스 경계, 통신 패턴, 데이터 흐름 |
| API 설계 | 엔드포인트 구조, 버저닝 전략, 에러 처리 |
| 데이터베이스 | 스키마 설계, 마이그레이션 전략, 인덱싱 방식 |
| 인프라 | 배포 플랫폼, 스케일링 전략, 모니터링 |
| 공통 관심사 | 보안, 성능 최적화, 옵저버빌리티 |
템플릿
| 템플릿 | 용도 |
|---|---|
| template.md | 대부분의 의사결정에 사용하는 표준 ADR |
명명 규칙
XX-brief-decision-title.mdXX: 두 자리 순차 번호 (01, 02, ...)- 소문자와 하이픈 사용
- 간결하고 명확한 제목
기술 영역
| 영역 | 영향받는 리포지토리 |
|---|---|
| Parser | core |
| API | web |
| Worker | worker |
| Database | infra |
| Infrastructure | infra |
| Cross-cutting | 복수 |
ADR 목록
공통 (전체 리포지토리)
| # | 제목 | 영역 | 날짜 |
|---|---|---|---|
| 01 | 정적 분석 기반 즉시 분석 | Cross-cutting | 2024-12-17 |
| 02 | 경쟁 차별화 전략 | Cross-cutting | 2024-12-17 |
| 03 | API와 Worker 서비스 분리 | Architecture | 2024-12-17 |
| 04 | 큐 기반 비동기 처리 | Architecture | 2024-12-17 |
| 05 | Polyrepo 리포지토리 전략 | Architecture | 2024-12-17 |
| 06 | PaaS 우선 인프라 전략 | Infrastructure | 2024-12-17 |
| 07 | 공유 인프라 전략 | Infrastructure | 2024-12-17 |
| 08 | External Repository ID 기반 데이터 무결성 | Data Integrity | 2024-12-22 |
| 09 | GitHub App 통합 인증 전략 | Authentication | 2024-12-29 |
| 10 | TestStatus 데이터 계약 | Data Integrity | 2024-12-29 |
| 11 | Repository Visibility 기반 접근 제어 | Security | 2026-01-03 |
| 12 | Worker 중심 분석 라이프사이클 | Architecture | 2024-12-16 |
| 13 | 빌링 및 쿼터 아키텍처 | Billing | 2026-01-18 |
| 14 | AI 기반 스펙 문서 생성 파이프라인 | AI/ML | 2026-01-18 |
| 15 | 재분석을 위한 파서 버전 추적 | Data Integrity | 2026-01-18 |
| 16 | 멀티큐 우선순위 라우팅 아키텍처 | Architecture | 2026-01-19 |
| 17 | 테스트 파일 스키마 정규화 | Database | 2026-01-19 |
| 18 | GitHub API 캐시 테이블 | Database | 2025-12-24 |
| 19 | 계층적 스펙 문서 스키마 | Database | 2026-01-12 |
| 20 | GitHub App 설치 스키마 | Database | 2026-01-19 |
| 21 | 동시 요청 처리용 할당량 예약 | Billing | 2026-02-01 |
| 22 | Scheduler 제거 및 Railway Cron 전환 | Infrastructure | 2026-02-02 |
| 23 | Railway IaC 배포 | Infrastructure | 2026-02-02 |
Core 리포지토리
| # | 제목 | 영역 | 날짜 |
|---|---|---|---|
| 01 | 코어 라이브러리 분리 | Core | 2024-12-17 |
| 02 | 동적 테스트 카운팅 정책 | Core | 2024-12-22 |
| 03 | Tree-sitter AST 파싱 엔진 | Parser | 2024-12-23 |
| 04 | Early-Return 프레임워크 탐지 | Parser | 2024-12-23 |
| 05 | 파서 풀링 비활성화 | Parser | 2024-12-23 |
| 06 | 통합 Framework Definition | Parser | 2024-12-23 |
| 07 | Source 추상화 인터페이스 | Parser | 2024-12-23 |
| 08 | 공유 파서 모듈 | Parser | 2024-12-23 |
| 09 | Config 스코프 해석 | Config | 2024-12-23 |
| 10 | 표준 Go 프로젝트 레이아웃 | Project | 2024-12-23 |
| 11 | 골든 스냅샷 통합 테스트 | Testing | 2024-12-23 |
| 12 | Worker Pool 병렬 스캔 | Perf | 2024-12-23 |
| 13 | NaCl SecretBox 암호화 | Crypto | 2024-12-23 |
| 14 | 간접 Import Alias 감지 미지원 | Parser | 2025-12-29 |
| 15 | C# 전처리기 블록 내 Attribute 감지 한계 | Parser | 2026-01-04 |
| 16 | 도메인 힌트 추출 시스템 | AI/ML | 2026-01-18 |
| 17 | Swift Testing 프레임워크 지원 | Parser | 2026-01-04 |
| 18 | JUnit 4 프레임워크 분리 | Parser | 2025-12-26 |
| 19 | Vitest 4.0+ test.for/it.for API 지원 | Parser | 2026-01-03 |
| 20 | Java 21+ 암시적 클래스 감지 | Parser | 2026-01-04 |
| 21 | Rust 매크로 기반 테스트 감지 | Parser | 2025-12-27 |
Worker 리포지토리
| # | 제목 | 영역 | 날짜 |
|---|---|---|---|
| 01 | 스케줄 기반 재분석 아키텍처 | Architecture | 2024-12-18 |
| 02 | Clean Architecture 레이어 도입 | Architecture | 2024-12-18 |
| 03 | Graceful Shutdown 및 Context 기반 생명주기 관리 | Architecture | 2024-12-18 |
| 04 | OAuth 토큰 Graceful Degradation | Reliability | 2024-12-18 |
| 05 | Analyzer-Scheduler 프로세스 분리 | Architecture | 2024-12-18 |
| 06 | Semaphore 기반 Clone 동시성 제어 | Concurrency | 2024-12-18 |
| 07 | Repository 패턴 데이터 접근 추상화 | Architecture | 2024-12-18 |
| 08 | SpecView Worker 바이너리 분리 | Architecture | 2026-01-13 |
| 09 | Phase 1 V1 품질 개선 아키텍처 | AI/ML | 2026-02-04 |
| 10 | 사용자별 공정성 미들웨어 | Concurrency | 2026-02-02 |
| 11 | 보존 기간 기반 데이터 정리 서비스 | Scheduling | 2026-02-02 |
| 12 | Phase 2 행동 캐시 | AI/ML | 2026-01-24 |
Web 리포지토리
| # | 제목 | 영역 | 날짜 |
|---|---|---|---|
| 01 | 백엔드 언어로 Go 선택 | Tech Stack | 2024-12-18 |
| 02 | Next.js 16 + React 19 선택 | Tech Stack | 2025-12-04 |
| 03 | Chi 라우터 선택 | Tech Stack | 2025-01-03 |
| 04 | TanStack Query 선택 | Tech Stack | 2025-01-03 |
| 05 | shadcn/ui + Tailwind CSS 선택 | Tech Stack | 2025-01-03 |
| 06 | SQLc 선택 | Tech Stack | 2025-01-03 |
| 07 | Next.js BFF 아키텍처 | Architecture | 2025-01-03 |
| 08 | Clean Architecture 패턴 | Architecture | 2025-01-03 |
| 09 | DI Container 패턴 | Architecture | 2025-01-03 |
| 10 | StrictServerInterface 계약 | API | 2025-01-03 |
| 11 | Feature 기반 모듈 구조 | Architecture | 2025-01-03 |
| 12 | APIHandlers 합성 패턴 | Architecture | 2025-01-03 |
| 13 | 도메인 에러 처리 패턴 | Architecture | 2025-01-03 |
| 14 | slog 구조화 로깅 | Observability | 2025-01-03 |
| 15 | React 19 use() Hook 패턴 | Frontend | 2025-01-03 |
| 16 | nuqs URL 상태 관리 | Frontend | 2025-01-03 |
| 17 | next-intl i18n 전략 | Frontend | 2025-01-03 |
| 18 | next-themes 다크 모드 | Frontend | 2025-01-03 |
| 19 | CSS 변수 디자인 토큰 시스템 | Frontend | 2025-01-03 |
| 20 | 스켈레톤 로딩 패턴 | Frontend | 2025-01-03 |
| 21 | 익명 사용자 Rate Limiting | Security | 2026-01-15 |
| 22 | React Compiler 도입 | Frontend | 2026-01-19 |
| 23 | 윈도우 레벨 가상화 패턴 | Frontend | 2026-01-19 |
| 24 | 구독 기간 일할 계산 | Billing | 2026-01-16 |
| 25 | OAuth 리턴 URL 처리 | Security | 2026-01-16 |
| 26 | Zustand 클라이언트 상태 관리 | Frontend | 2026-01-23 |
| 27 | 커밋 기반 분석 조회 | Frontend | 2026-02-03 |
| 28 | 동적 비용 예측 | Frontend | 2026-02-03 |
프로세스
- 생성: template.md 복사 →
XX-title.md - 작성: 확정된 의사결정 내용으로 모든 섹션 작성
- 현지화:
adr/에 영어 버전 생성 - 리뷰: 팀 리뷰를 위해 PR 제출
- 병합: 승인 후 목록에 추가
관련 리포지토리
- specvital/core - 파서 엔진
- specvital/web - 웹 플랫폼
- specvital/worker - 워커 서비스
- specvital/infra - 인프라
