# 최적 실행 전략: AGENTS.md v16.0 기반 **목표:** 로드맵 & WBS를 AGENTS.md v16.0 20가지 원칙에 따라 최적으로 실행 --- ## 📋 원칙 기반 실행 전략 ### 1. SOLID (Single Responsibility, Open-Closed, Liskov, Interface Segregation, Dependency Inversion) **로드맵 적용:** ``` 각 Phase는 단일 책임: - Phase 1: 자동 검증 (Hangfire 담당) - Phase 2: 증거 수집 (Engineering 담당) - Phase 3: 배포 (DevOps 담당) - Phase 4: 운영 (SRE 담당) 교차 기능 팀 구성: - 각 팀은 명확한 계약(contract) 기반 협력 - 팀 간 직접 테이블 접근 금지 (API/이벤트 사용) ``` **실행 방법:** ``` ✅ Phase 2 증거 검증: 각 메트릭 팀 독립 실행 └─ PBO 팀, DSR 팀, OOS 팀 병렬 진행 └─ 최종 엔드포인트에서만 통합 검증 ✅ Phase 3 배포: DBA ↔ DevOps ↔ Engineering 명확한 역할 └─ 롤백 계획 미리 수립 (Open-Closed) └─ 새로운 환경에서도 배포 스크립트 재사용 (Liskov) ``` --- ### 2. 코드리팩토링 (Characterized, Isolated, Verified) **로드맵 적용:** ``` Phase 2 시작 전: 기존 코드 특성화 - 현재 테스트 커버리지 (249/266) 기록 - 성능 기준선 (baseline) 수립 - 알려진 이슈 문서화 Phase 2 진행 중: 격리된 변경 - DEBT 해결 시 각 변경을 별도 커밋 - 하나의 DEBT = 하나의 PR (atomic) - 테스트 통과 후 머지 Phase 2 후: 검증 - 테스트 커버리지 전후 비교 - 성능 회귀 테스트 - Golden 데이터셋 재검증 ``` **실행 방법:** ``` ✅ 매월 기술부채 결제 시 (Phase 4): - 변경 전 테스트 스냅샷 (git tag: debt-{id}-before) - 변경 적용 - 변경 후 테스트 스냅샷 (git tag: debt-{id}-after) - diff 분석 및 회귀 검증 ``` --- ### 3. 데이터 정합성 (Normalization, PIT Queries) **로드맵 적용:** ``` Phase 1: 감사 이벤트 정합성 검증 (자동) - operation_audit_trail 3NF 유지 (자동) - 모든 쿼리 PIT 패턴 (published_at <= cutoff) - 중복 감지 자동 로깅 (DEBT-014) Phase 2: 데이터 무결성 검증 - Phase 1 기간 중 저장된 모든 데이터 검증 - 스키마 버전 호환성 확인 - 마이그레이션 이후 데이터 무결성 재검증 (Phase 3 전) ``` **실행 방법:** ``` ✅ Phase 2 체크리스트: □ operation_audit_trail row count 검증 □ 모든 쿼리 PIT 패턴 재확인 (grep "published_at") □ 중복 감지 로그 분석 (false positive < 0.1%) □ 외래키 무결성 검증 (FK constraint) ``` --- ### 4. 과유불급 (No Gold-Plating) **로드맵 적용:** ``` Phase 2: 필요한 것만 검증 - 배포 전 필수 증거만 수집 (PBO, DSR, OOS, DEBT, audit) - 미래 기능 (auto-learning, auto-promotion)은 Phase 4로 이연 - 추가 최적화는 배포 후 (운영 중 개선) Phase 3: 최소한의 배포 - 현재 코드 그대로 배포 (새 기능 추가 금지) - 배포 후 모니터링만 집중 - 새 기능 개발은 Post-go-live로 계획 Phase 4: 점진적 개선 - 월별 20% DEBT만 결제 - 분기별 1-2개 기능만 추가 (A/B 테스트) ``` **실행 방법:** ``` ✅ 각 Phase 승인 기준: - Phase 2 승인: PBO/DSR/OOS 임계값만 (추가 검증 금지) - Phase 3 승인: 배포 체크리스트만 (feature freeze) - Phase 4 진입: 72시간 모니터링 SLA 달성 ``` --- ### 5. 정규화 (3NF Database Design) **로드맵 적용:** ``` Phase 1 ~ Phase 3: 스키마 불변 - operation_audit_trail 3NF 유지 - 새 테이블 추가 금지 - 마이그레이션 추가 금지 (0041만) Phase 4: 운영 중 최적화 - Read-only 덴노말라이제이션 검토 - 인덱스 최적화 (성능 메트릭 기반) - 아카이빙 전략 (Phase 4.2 분기 검토) ``` **실행 방법:** ``` ✅ Phase 2 데이터 정합성 검증: □ PK/FK 모두 존재하는지 확인 □ NULL 값이 없어야 하는 컬럼 확인 □ UNIQUE 제약 조건 적용 여부 확인 ``` --- ### 6. 역정규화 (Denormalization for Read Performance) **로드맵 적용:** ``` Phase 2: 읽기 성능 기준선 수립 - 메트릭 조회 응답 시간 기록 (PBO, DSR, OOS) - 감사 로그 조회 성능 측정 Phase 3: 배포 전 최적화 (필요시) - 느린 쿼리 식별 (응답 > 500ms) - 뷰(VIEW) 또는 캐시 추가 (읽기 최적화만) Phase 4: 진행 중 모니터링 - 월별 응답 시간 추적 - 병목 쿼리 식별 및 개선 ``` **실행 방법:** ``` ✅ Phase 2 성능 기준선: - EXPLAIN ANALYZE로 각 주요 쿼리 분석 - Index 사용 여부 확인 - 응답 시간 기록 (Phase 3, 4에서 비교) ``` --- ### 7. 프로세스 단순화 (Automation) **로드맵 적용:** ``` Phase 1: 완전 자동화 (Hangfire Job 3227) - 수동 개입 금지 - 일일 메트릭 자동 계산 - 주간 리포트 자동 생성 Phase 2: 반자동화 (검증 도구) - 스크립트로 PBO/DSR/OOS 계산 - SQL 쿼리로 감사 로그 자동 분석 - 체크리스트 자동 생성 Phase 3: 배포 자동화 - 배포 스크립트 (bash/powershell) - 롤백 자동 스크립트 - 모니터링 대시보드 자동 활성화 Phase 4: 운영 자동화 - 월별 DEBT 식별 자동화 - SLA 모니터링 자동 알림 - 월간 리포트 자동 생성 ``` **실행 방법:** ``` ✅ Phase 2 준비 작업: - Python/SQL 스크립트 미리 작성 - 테스트 환경에서 실행 검증 - 자동화 문서 작성 (재현 가능) ✅ Phase 3 준비 작업: - Deployment 스크립트 (sandbox 테스트 완료) - Rollback 스크립트 (sandbox 테스트 완료) ``` --- ### 8. 패턴화 (Standard Architecture Patterns) **로드맵 적용:** ``` 전 Phase: 기존 패턴만 사용 - Outbox/Inbox (비동기 이벤트) - Vertical Slice (기능 구조) - PIT 쿼리 (시간축 데이터) - DI 컨테이너 (의존성) - Handler → Policy → SQL (계층화) Phase 2 검증: - 모든 쿼리가 Vertical Slice 패턴인지 확인 - 모든 이벤트가 Outbox/Inbox 패턴인지 확인 - 모든 데이터 쿼리가 PIT 패턴인지 확인 Phase 4 개선: - 새로운 패턴 도입은 금지 (기존 패턴만 사용) - 기존 패턴 개선은 분기별 1-2개만 (리스크 최소화) ``` **실행 방법:** ``` ✅ Phase 2 패턴 검증: grep -r "SELECT \*" src/ # 금지 패턴 grep -r "new SqlCommand" src/ # 금지 패턴 grep -r "published_at <=" src/ # PIT 패턴 확인 ``` --- ### 9. 표준화 (Technology Stack) **로드맵 적용:** ``` Phase 1 ~ Phase 4: 기존 스택만 사용 - .NET 10 (변경 금지) - Dapper (ORM, 변경 금지) - FastEndpoints (API, 변경 금지) - Hangfire (jobs, 변경 금지) - PostgreSQL (DB, 버전 유지) - Vue 3 (FE, 변경 금지) - Vitest (테스트, 변경 금지) Phase 4 검토: - 마이너 버전 업그레이드 (보안) - 새로운 라이브러리는 분기별 1-2개만 ``` **실행 방법:** ``` ✅ Phase 2 스택 검증: dotnet --version # .NET 10.x 확인 psql --version # PostgreSQL 버전 확인 npm list # 의존성 버전 확인 ``` --- ### 10. 구조화 (Module Isolation) **로드맵 적용:** ``` Phase 1 ~ Phase 3: 스키마 격리 유지 - compliance.* (감사) ← 독립 - model_operations.* (모델) ← 독립 - signal_engine.* (신호) ← 독립 - building_blocks.* (공유) ← 읽기만 Phase 2 검증: - 각 모듈이 자신의 스키마만 수정하는지 확인 - 모듈 간 직접 테이블 접근이 없는지 확인 (API만) Phase 4 개선: - 모듈 경계 리팩토링 (분기별 1개) ``` **실행 방법:** ``` ✅ Phase 2 격리 검증: grep -r "model_operations\." src/KArtSell.Modules.SignalEngine/ # 금지: signal_engine 모듈이 model_operations 직접 접근 grep -r "outbox" src/ # Outbox 패턴 사용하는지 확인 ``` --- ### 11. 바이브코딩 (Clear & Simple Code) **로드맵 적용:** ``` Phase 2: 코드 리뷰 기준 강화 - 클래스/메서드 이름이 목적을 명확히 하는지 - 10줄 이상 주석은 금지 (한줄만) - Cyclomatic complexity < 10 (Policy 제외) Phase 3: 코드 정리 - Unused imports 제거 - 사용되지 않는 메서드 제거 - 일관된 포맷팅 (dotnet format) Phase 4: 지속적 개선 - 매월 복잡한 메서드 1개씩 리팩토링 - 월별 코드 커버리지 추적 ``` **실행 방법:** ``` ✅ Phase 2 검증: dotnet format --verify-no-changes --verbosity diagnostic dotnet test /p:CollectCoverage=true ``` --- ### 12. 홀루시네이션 방지 (Real Data Validation) **로드맵 적용:** ``` Phase 1: 실제 데이터 검증 (자동) - 스텁 데이터 사용 금지 (실제 KRX API) - Mock 제거 (실제 DB) Phase 2: 증거 검증 - Phase 1 실제 데이터 분석 - 계산 공식 재현 검증 (git 트래킹) Phase 3: 배포 검증 - Sandbox에서 실제 config로 테스트 - Production과 동일한 데이터로 smoke test Phase 4: 지속 모니터링 - 실제 메트릭 추적 (대시보드) - 이상치 자동 감지 ``` **실행 방법:** ``` ✅ Phase 1 검증: grep -r "new Mock" src/ # Mock 사용 여부 확인 grep -r "stub\|fake" src/ # Stub 데이터 확인 ✅ Phase 2 검증: - PBO 계산: 실제 Phase 1 데이터로 재계산 - DSR 계산: 실제 수익률 데이터로 재계산 ``` --- ### 13. 현장감 (On-Site Evidence) **로드맵 적용:** ``` Phase 1: 실제 환경에서 자동 실행 - 실제 Production DB (178.104.200.7) - 실제 KRX/OpenDart API - 실제 시장 데이터 Phase 2: 실제 결과 검증 - Phase 1 실제 로그 분석 - 실제 DB에서 데이터 쿼리 (개발 환경 아님) Phase 3: 실제 배포 - Staging이 아닌 Production 배포 - 실제 사용자 트래픽 Phase 4: 실제 모니터링 - 실제 메트릭 추적 (mock이 아님) - 실제 SLA 달성 검증 ``` **실행 방법:** ``` ✅ Phase 1 검증: ssh kjh2064@178.104.200.7 # 실제 서버 확인 psql kartsell # 실제 DB 데이터 확인 ✅ Phase 2 검증: select count(*) from compliance.operation_audit_trail; # 실제 데이터 ``` --- ### 14. 재현성 (Reproducibility) **로드맵 적용:** ``` Phase 1: 일일 스냅샷 저장 - Job 3227 로그 일일 저장 (git) - 메트릭 데이터 일일 백업 Phase 2: 계산 재현 가능 - PBO 공식 문서화 (재현 가능) - DSR 공식 문서화 (재현 가능) - SQL 쿼리 모두 git 트래킹 Phase 3: 배포 재현 가능 - 배포 스크립트 버전 관리 (git) - 배포 절차 문서화 (README) Phase 4: 모니터링 재현 가능 - 대시보드 쿼리 git 저장 - 알림 규칙 코드화 (as-a-code) ``` **실행 방법:** ``` ✅ Phase 2 재현성: git log --oneline -- src/ # 모든 변경 이력 git show :src/QueryPBO.sql # 특정 시점의 쿼리 ✅ Phase 3 재현성: git tag deploy-2026-11-20 # 배포 버전 태그 git show deploy-2026-11-20:deploy.sh # 배포 스크립트 ``` --- ### 15. 이력성 (Traceability) **로드맵 적용:** ``` Phase 1 ~ Phase 4: 모든 변경을 git에 기록 - Commit message: DEBT-{id}, correlation ID - Tag: Phase별 마일스톤 (Phase-1-Complete, etc.) - Branch: 기능별 (feature/debt-014, etc.) TECH_DEBT_REGISTER.md 유지: - 매월 DEBT 결제 기록 - 미결제 DEBT 이유 문서화 모니터링 이벤트 로깅: - operation_audit_trail (자동) - outbox/inbox 이벤트 (자동) ``` **실행 방법:** ``` ✅ Phase 2 이력성: git log --format="%h %an %ai %s" --grep="DEBT" # DEBT-014, DEBT-029 등 모든 기록 조회 ✅ 매월 검증: grep "2026-11" TECH_DEBT_REGISTER.md # 이번 달 DEBT 결제 기록 확인 ``` --- ### 16. 안정성 (Reliability & Crash Recovery) **로드맵 적용:** ``` Phase 1: 자동 복구 검증 (자동) - Job 3227 실패 시 재시도 - DB 연결 끊김 시 재연결 - Crash recovery (4/4 시나리오) 자동 검증 Phase 2: 안정성 검증 리포트 - Phase 1 기간 중 재시도 횟수 - 실패율 (목표: < 0.1%) - Crash recovery 성공률 (목표: 100%) Phase 3: 배포 안정성 - Rollback 계획 사전 테스트 - Monitoring 시스템 구성 - SLA 정의 (99.5%) Phase 4: 지속 모니터링 - 에러율 추적 (< 0.1%) - 재시도 로그 분석 (월 1회) - 장애 원인 분석 (RCA) ``` **실행 방법:** ``` ✅ Phase 1 검증: select event_type, count(*) from compliance.operation_audit_trail where event_type = 'JOB_RETRY' group by event_type; ✅ Phase 2 검증: - Retry 로그 분석 - Crash recovery 동작 확인 - 실패 이유 카테고리화 ``` --- ### 17. 고도화 (Evolutionary Architecture) **로드맵 적용:** ``` Phase 1 ~ Phase 3: 현재 아키텍처 고정 - 새로운 패턴 도입 금지 - 마이크로서비스 검토 금지 Phase 4: 진화적 개선 - 분기별 1-2개 아키텍처 개선 - A/B 테스트로 변경 검증 - Feature flag로 점진적 배포 예시: - Q1 2027: Read replica for metrics (성능 개선) - Q2 2027: Event sourcing for audit (확장성) - Q3 2027: API gateway for rate limiting (보안) ``` **실행 방법:** ``` ✅ Phase 4 계획: - 아키텍처 결정 기록 (ADR) - 변경 영향 분석 (dependency map) - 회귀 테스트 계획 ``` --- ### 18. 컴포넌트화 (Modularity) **로드맵 적용:** ``` Phase 1 ~ Phase 3: 기존 모듈 구조 유지 - AuditTrailConsumer (DEBT-029) - MetricsSql (DEBT-014) - PBO/DSR/OOS 계산 (Phase 2) Phase 4: 모듈 분리 검토 - 각 메트릭을 독립 서비스로? (아니면 이대로) - 감사 로깅을 별도 db로? (아니면 이대로) - 결정: 분기별 1회 검토, 필요시만 분리 ``` **실행 방법:** ``` ✅ Phase 2 검증: grep -r "interface I" src/KArtSell.Host/ # 각 컴포넌트의 contract 확인 ✅ Phase 4 계획: - 컴포넌트 간 의존성 맵 그리기 - 긴밀한 결합도(coupling) 식별 - 분기별 1개씩 리팩토링 ``` --- ### 19. 정공법 (Right Way, No Shortcuts) **로드맵 적용:** ``` 모든 Phase: - --no-verify 금지 (git hooks 실행) - force push 금지 - hardcoded 값 금지 - TODO 주석만 허용 (FIXME, XXX 금지) - 근본 원인 분석 (band-aid 금지) Phase 2 검증: - 모든 버그 수정이 근본 원인 해결인지 확인 - 임시 패치 금지 Phase 3 배포: - 배포 체크리스트 모두 완료할 때까지 진행 금지 - 문제 발생 시 rollback (workaround 금지) ``` **실행 방법:** ``` ✅ Pre-commit hook 확인: cat .git/hooks/pre-commit # 테스트 자동 실행 여부 확인 ✅ PR 승인 기준: - 커밋 메시지 명확한지 - 테스트 추가되었는지 - 문서 업데이트되었는지 ``` --- ### 20. 기술부채 관리 (20% Monthly Paydown) **로드맵 적용:** ``` Phase 1: 부채 현황 파악 - 현재 DEBT-014/029/030/032/016/024 결제 상태 확인 - 누적 부채 점수 계산 Phase 2: 부채 정리 - 미결제 부채 식별 - 우선순위 결정 (Impact × Effort) Phase 3: 부채 동결 - 배포 전 추가 부채 금지 - 배포 후 모니터링 중에만 결제 Phase 4: 월별 20% 결제 - 첫 달(11월): 20% 결제 - 둘째 달(12월): 추가 20% 결제 - 2027+: 월별 지속 (quarterly 목표 = 60%) ``` **실행 방법:** ``` ✅ 매월 이행: git log --oneline --grep="DEBT" --since="2026-11-01" # DEBT 관련 커밋 확인 grep "2026-11" TECH_DEBT_REGISTER.md # 월별 결제 기록 확인 ``` --- ## 🎯 최적 실행을 위한 체크리스트 ### Phase 별 Go/No-Go 기준 #### Phase 1 → Phase 2 (Go-Live 승인) ``` □ Job 3227 50+ 일 실행 (자동) □ 일일 메트릭 안정적 계산 □ 감사 로그 정상 기록 (DEBT-014/029) □ 에러율 < 0.1% → Go Phase 2 ``` #### Phase 2 → Phase 3 (배포 승인) ``` □ PBO < 20% ✅ □ DSR > 0.5 ✅ □ OOS 드리프트 < 2.5% ✅ □ 감사 이벤트 정상 ✅ □ 기술부채 20% 결제 ✅ □ 배포 체크리스트 100% ✅ → Go Phase 3 ``` #### Phase 3 → Phase 4 (운영 모드) ``` □ 배포 성공 ✅ □ 72시간 모니터링 SLA 99.5% 달성 ✅ □ 에러율 < 0.1% ✅ □ 응답 시간 < 500ms (p95) ✅ □ 경영진 최종 승인 ✅ → Go Phase 4 ``` --- ## 📊 우선순위 매트릭스 (Phase 2) | 메트릭 | Impact | Effort | 우선순위 | 병렬화 | |--------|--------|--------|---------|--------| | PBO 검증 | 높음 | 중간 | 1순위 | 가능 | | DSR 검증 | 높음 | 중간 | 1순위 | 가능 | | OOS 검증 | 높음 | 높음 | 1순위 | 가능 | | 감사 로그 | 중간 | 낮음 | 2순위 | 가능 | | DEBT 검토 | 중간 | 중간 | 2순위 | 가능 | → **모든 Phase 2 작업 병렬 가능** (의존성 없음) --- ## 🚀 리스크 경감 전략 | 리스크 | 발생 시 조치 | 백업 계획 | |--------|------------|---------| | Phase 1 조기 완료 | 배포 앞당김 | 연일 모니터링 강화 | | Phase 1 지연 | 스케줄 연장 | 우선순위 조정 | | PBO 임계값 미충족 | Phase 3 연기 | 모델 재조정 및 재검증 | | 배포 중 장애 | 즉시 롤백 | 근본 원인 분석 후 재배포 | | SLA 미달 | 72시간 연장 | 성능 최적화 후 재검증 | --- **Version:** 1.0 **Last Updated:** 2026-08-11 **Owner:** CTO **Status:** ACTIVE - READY FOR EXECUTION