왜 이렇게 만들었나
실제 운영 중인 서비스에서 내린 아키텍처·운영 의사결정을 문제 → 선택지 → 결정 → 검증 순으로 기록합니다. 처음이라면 아래 대표 ADR부터 읽어보세요.
ADR 읽는 법
- 1
문제
어떤 상황·제약이 결정을 강제했는가
- 2
선택지
고려한 대안과 트레이드오프
- 3
결정
무엇을 왜 선택했는가
- 4
검증
결정이 의도대로 작동했는지 확인한 결과
대표 ADR
AlgoSu 시스템을 이해하는 데 가장 중요한 결정들
ADR-001
ADR-001: Gateway → Identity DB 분리
왜 읽어야 하나 Gateway에서 인증 DB를 분리해 서비스별 DB 경계를 세운 출발점
ADR-002ADR-002: Outbox 패턴 도입 검토
왜 읽어야 하나 서비스 간 메시지 유실 없이 이벤트를 전달하는 Outbox 패턴
ADR-026ADR-026: Sprint 130 운영 인시던트 — 롤아웃 stuck 6일 방치 + SealedSecret 컨트롤러 키 mismatch 부채
왜 읽어야 하나 롤아웃이 멈춘 운영 장애를 복구하고 SealedSecret 부채를 갚은 회고
ADR-027ADR-027: aether-gitops 브랜치 규율 — 작업 브랜치 + PR 강제
왜 읽어야 하나 GitOps에서 자동 배포를 안전하게 막는 브랜치 규율
ADR-028ADR-028: 개발 서버(k3d/별도 dev cluster) 분리 — 운영 직접 수정 차단 구조
왜 읽어야 하나 운영과 개발 클러스터를 분리해 실험이 운영을 깨지 않게 한 결정
주제별로 보기
관심 주제부터 깊이 들어가세요.
운영 장애 & 복구
실제 프로덕션 장애와 그 복구·재발 방지 결정
Sprint
problem-service SP196 마이그레이션 fix (tags jsonb DEFAULT cast 실패 — ERROR 42804)
완료높음
Sprint 230
OracleScribeLibrarian+1 more
SprintPhase 3 외부 작업 재확인 + 이월 2건 처리 (commitlint oracle scope + Build Blog SSG required check)
완료높음
Sprint 205
OracleArchitectScribe
SprintPhase 3 외부 작업 종결 + PR #365 close + 누적 이월 2건 (CI Python 3.13 + 하네스 정기점검 시드)
완료치명
Sprint 206
OracleArchitectScribe
SprintDiscord 처분 + BOT_TOKEN 회수 — `.claude-tools/` 정리 파이프라인 종결
완료치명
Sprint 204
OracleArchitectScribe+1 more
SprintRedis 통계 캐시 — 대시보드 DB 직접 집계 → 캐시 전환
완료높음
Sprint 194
OracleArchitectConductor+1 more
Sprintsubmission CacheModule 순환 의존성 핫픽스 + StudyMemberGuard Redis 통합
완료높음
Sprint 195
OracleConductorCritic
Sprint이월 시드 정리 — sprint-87-plan.md를 docs/planning/으로 relocate
완료높음
Sprint 190
OracleScribeCritic
Sprint이월 시드 일괄 해결 — filterAdjacency P2 · .claude-tools Phase 2 · prom-client Case C/D
완료높음
Sprint 191
OracleArchitectScribe+1 more
Sprint운영 인시던트 회복 (submission/identity 롤아웃 stuck) + 모니터링 강화 + SealedSecret 부채 해소 + 이월 정리
완료치명
Sprint 130
OracleArchitect
영구ADR-003: Redis/RabbitMQ ACL 분리 설계
보류보통
영구ADR-025: Gateway OAuth 에러 코드 정규화
수락높음
영구ADR-026: Sprint 130 운영 인시던트 — 롤아웃 stuck 6일 방치 + SealedSecret 컨트롤러 키 mismatch 부채
수락높음
Agent 오케스트레이션
멀티 에이전트 디스패치·교차 리뷰 워크플로우의 진화
CI · GitOps
AI 생성 코드 검증 파이프라인과 GitOps 배포 규율
Sprint
이월 시드 일괄 해결 — filterAdjacency P2 · .claude-tools Phase 2 · prom-client Case C/D
완료높음
Sprint 191
OracleArchitectScribe+1 more
Sprint파이썬 호환성 해결 — asyncio.get_event_loop + Pydantic class Config
완료보통
Sprint 192
OracleArchitectScribe+1 more
SprintCI 실측 데이터 확보 + 운영 규약 표준화 + 커밋 게이트 자동화
완료높음
Sprint 105
영구ADR-027: aether-gitops 브랜치 규율 — 작업 브랜치 + PR 강제
제안보통
영구ADR-028: 개발 서버(k3d/별도 dev cluster) 분리 — 운영 직접 수정 차단 구조
부분높음
영구ADR-029: 인프라 배포 정의 SSOT를 aether-gitops로 일원화 (AlgoSu 평행 매니페스트 폐기)
미정보통
Data & 문제셋
데이터 경계·문제 데이터셋·이벤트 전달 결정
보안 & 시크릿
인증·ACL·시크릿 관리 등 보안 결정
Sprint
SSOT 이월 항목 해소 — 내부 키 네이밍 개정·Sprint-250 ADR frontmatter·ADR 카운트·c-ares CVE
완료보통
Sprint 251
OracleScribe
SprintAI 분석 문제 컨텍스트 풍부화 — 그룹 분석 문제 정보 주입 + Programmers 크롤러 모듈
완료높음
Sprint 248
OracleScoutSensei+2 more
Sprint전 코드베이스 보안점·개선점 분석 리스트업 + 스프린트 계획 수립 (ADR-030)
완료보통
Sprint 238
Oracle
Sprint보안 quick wins — ADR-030 S-1/S-2/S-4/S-5/S-8/Q-5
완료높음
Sprint 239
OracleGatekeeperSensei+1 more
Sprint운영 절차 보강 — ADR-030 S-6/Q-3 (docs only)
완료치명
Sprint 240
OracleArchitectPostman+1 more
Sprint공급망·CSP 스파이크·CI 정리 (ADR-030 로드맵 5순위 종결)
완료높음
Sprint 243
OracleGatekeeperConductor+2 more
SprintCI 스캐너 설치 하드닝 (재시도+인증+직접 다운로드) + ADR-028 read-only kubeconfig 그라운드워크
완료보통
Sprint 233
OraclePostmanLibrarian+1 more
SprintCI Trivy blog 실패 근본 수정 (APK_CACHE_BUST 미참조 캐시버스트 버그)
완료높음
Sprint 225
OraclePostmanLibrarian+1 more
SprintPhase 3 외부 작업 재확인 + 이월 2건 처리 (commitlint oracle scope + Build Blog SSG required check)
완료높음
Sprint 205
OracleArchitectScribe
SprintPhase 3 외부 작업 종결 + PR #365 close + 누적 이월 2건 (CI Python 3.13 + 하네스 정기점검 시드)
완료치명
Sprint 206
OracleArchitectScribe
SprintDiscord 처분 + BOT_TOKEN 회수 — `.claude-tools/` 정리 파이프라인 종결
완료치명
Sprint 204
OracleArchitectScribe+1 more
영구ADR-003: Redis/RabbitMQ ACL 분리 설계
보류보통
영구ADR-024: Admin 서버사이드 권한 가드 — CSR → Server Component 전환
수락높음
영구ADR-025: Gateway OAuth 에러 코드 정규화
수락높음
영구ADR-030: 전 코드베이스 보안·개선 백로그 및 처리 로드맵 (Sprint 238 감사)
미정치명
제품 & 플랫폼
사용자 기능·플랫폼 이전 등 제품 결정
Sprint
블로그 홈 랜딩 포트폴리오 개편 + Engineering Editorial 디자인 시스템 (Phase 1)
완료높음
Sprint 185
OraclePaletteHerald+3 more
Sprint블로그 UI/UX 개편 — 그래프 범례·필터 + 카테고리 7분류 + ADR 주제 자동분류 (Phase 5)
완료높음
Sprint 189
OracleHeraldArchitect+3 more
SprintBlog ADR 그래프 기능 전체 삭제
완료높음
Sprint 193
OracleHeraldCritic
토픽프로그래머스 데이터셋 번들링 + Gateway 외부 연동
제안높음
Sprint 95
OracleScoutArchitect+4 more
전체 ADR 아카이브
202개 ADR 전체 — 통계·타임라인·종류별 목록