# QuantEngine 냉정 분석 & 마스터피스 로드맵 **분석 기준일: 2026-07-28 | 분석 범위: 전체 프로젝트 (spec/src/tools/docs/CI/CD/서버)** --- ## 🔬 Part 1: 냉정한 현실 진단 ### 1.1 프로젝트 정체성 (What Is This?) | 질문 | 냉정한 답변 | |:---|:---| | **이 프로젝트는 무엇인가?** | 은퇴자산 포트폴리오(~5억원)를 운용하는 결정론적 퀀트 투자 엔진. GAS→Python→.NET→Vue 3으로 점진 진화 중 | | **누가 사용하는가?** | 현재 1인(본인). 미래 확장 가능성은 있으나 현재는 개인 운용 | | **실제 동작하는가?** | GAS+Python 파이프라인은 **실제 운용 중** (98단계 DAG, KIS 연동, 리밸런싱 엔진). .NET+Vue 3은 어드민/대시보드 수준에서 동작 | | **수익을 내는가?** | 아직 미측정. T+20 실측 데이터가 0건(DATA_GATED). 핵심 캘리브레이션 0/191 검증됨 | ### 1.2 아키텍처 진화 타임라인 ```mermaid graph LR A["Phase 1-6
GAS + Python
2026-05~06"] --> B["Phase 7
구조 경화
2026-06~07"] B --> C["Phase 10
.NET 10 + PostgreSQL
2026-06~07"] C --> D["SEMP Phase 0
Vue 3 + FastEndpoints
2026-07~현재"] style A fill:#2d5016,stroke:#4a8c28,color:#fff style B fill:#2d5016,stroke:#4a8c28,color:#fff style C fill:#8c6b2a,stroke:#c49a3c,color:#fff style D fill:#8c2a2a,stroke:#c43c3c,color:#fff ``` ### 1.3 기술 스택 현황 (냉정 평가) | 레이어 | 기술 | 코드량 | 성숙도 | 냉정 평가 | |:---|:---|:---|:---|:---| | **데이터 수집** | GAS (18 `.gs`) + Python (KIS/Naver/Yahoo) | ~8,000 LOC | ⭐⭐⭐⭐ | ✅ **가장 안정적**. 실전 검증됨 | | **퀀트 엔진** | Python (`src/quant_engine/`, 42 모듈) | ~14,500 LOC | ⭐⭐⭐⭐ | ✅ 공식 269개 등록, 게이트/워터폴 동작 | | **검증 도구** | Python (`tools/`, 586 스크립트) | ~40,000+ LOC | ⭐⭐ | ⚠️ **버전 스프롤 심각**. v1~v6 난립, 정리 필요 | | **백엔드 API** | .NET 10 / ASP.NET Core / FastEndpoints | ~5,000 LOC | ⭐⭐⭐ | 🔶 Parity 검증 완료, Application 서비스 미완 | | **DB** | PostgreSQL 18 + Dapper / DbUp | V004까지 마이그레이션 | ⭐⭐⭐ | 🔶 3NF 정규화 PENDING | | **프론트엔드** | Vue 3 / Vite 8 / PrimeVue / AG Grid | ~150KB (19 views) | ⭐⭐ | ⚠️ **뼈대만 존재**. 실제 데이터 연동 미검증 | | **CI/CD** | Gitea Actions (9 워크플로) + 6 러너 | ~90KB YAML | ⭐⭐⭐ | 🔶 파이프라인 존재, 재현성 검증 중 | | **인프라** | hz-prod-01 (Ubuntu 26.04, 2vCPU/3.7G) | systemd + Nginx | ⭐⭐⭐ | 🔶 동작하나 모니터링/알림 부재 | ### 1.4 핵심 문제점 — 5대 구조적 약점 > [!CAUTION] > 이 프로젝트의 가장 큰 위험은 **"완료 표시가 많지만 실증이 없다"**는 것입니다. #### 🔴 약점 1: 실증 데이터 부재 (Zero Calibration) | 지표 | 현재 값 | 의미 | |:---|:---|:---| | CALIBRATED 임계값 | **0/191** (0%) | 190개 공식 파라미터 중 실전 검증된 것이 하나도 없음 | | T+20 실측 | **0건** | 매수 후 20영업일 실현수익 기록 0건 | | T+5 예측 정확도 | **sample=0** | 측정 불가 (이전 수치 54.76%/35.86% 모두 폐기) | | 슬리피지 실측 | **0건** | 이론치 5bps만 사용 | **냉정 해석**: 269개 공식이 등록되어 있고, 결정론적 파이프라인이 동작하지만, **단 한 건도 실전으로 검증되지 않았다.** 이 엔진은 사실상 "정교한 시뮬레이터"이지 "검증된 투자 엔진"이 아니다. #### 🔴 약점 2: 기술 스택 분산 (Four Language Overhead) ``` GAS (.gs) ←→ Python (.py) ←→ C# (.cs) ←→ TypeScript (.ts/.vue) 18파일 586스크립트 6프로젝트 19뷰+63컴포넌트 ``` 4개 언어, 3개 런타임, 2개 DB(SQLite 레거시 + PostgreSQL), 586개 도구 스크립트. **1인 운영자에게 이 복잡도는 지속 가능하지 않다.** #### 🟠 약점 3: tools/ 버전 스프롤 `tools/` 디렉토리에 **586개 스크립트**가 존재한다. 상당수가 `_v1`, `_v2`, `_v3` 등의 버전 접미사를 가지며, 어떤 것이 현재 canonical인지 즉시 판별하기 어렵다. #### 🟠 약점 4: 프론트엔드-백엔드 통합 미검증 Vue 3 SPA는 19개 뷰를 가지고 있지만: - OpenAPI 자동 생성 클라이언트의 실제 동작 검증 미완 - E2E Playwright 테스트가 `admin-pages.spec.ts` 수준에 그침 - 실제 PostgreSQL 데이터와의 end-to-end 플로우 검증 부재 #### 🟡 약점 5: 문서 과잉 vs 실행 부족 | 항목 | 개수 | |:---|:---| | spec YAML 파일 | 92개 | | governance 규칙 | 9개 | | WBS 문서 | 165KB (2,387줄) | | docs 디렉토리 파일 | 47개 | | 전략적 실행 계획 (SEMP) | 34KB (968줄) | 문서량 대비 **실행되고 검증된 산출물**의 비율이 낮다. "계약은 많고 체결은 적다." --- ### 1.5 강점 — 인정할 것 > [!TIP] > 이 프로젝트가 가진 강점도 냉정히 인정해야 한다. | 강점 | 근거 | |:---|:---| | **결정론적 아키텍처** | 269개 공식 ID + lifecycle 100% 등록 + 황금 테스트 커버리지 100% | | **안전 게이트** | KIS API 거래 차단(governance/rules/06-07) — 코드 수준 강제 | | **자체 비판 문화** | 2026-06-21 비판적 리뷰(0c절)에서 10건의 문제를 스스로 발견하고 추적 | | **CI/CD 기반** | Gitea Actions 9개 워크플로, 6 러너, 자동 배포 + 롤백 | | **클라우드 인프라** | hz-prod-01에 실제 배포, systemd + Nginx + PostgreSQL 운영 | | **Parity 검증** | Python↔C# 계산기 40건 parity PASS | | **spec 체계** | 92개 YAML spec — 의사결정 추적 가능성이 매우 높음 | --- ## 🎯 Part 2: 마스터피스를 위한 전략적 재구성 ### 2.1 마스터피스의 정의 > **마스터피스 = 실전 검증된 알파 생성 + 1인이 지속 운영 가능한 복잡도 + 프로 수준 UX** 3가지 축을 동시에 달성해야 한다: ```mermaid graph TD A["💰 Alpha Engine
실증 기반 수익 생성"] B["🔧 Operational Excellence
1인 운영 가능한 단순함"] C["🎨 Professional UX
의사결정 가시성 극대화"] A --> D["🏆 MASTERPIECE
은퇴자산 퀀트 엔진"] B --> D C --> D style D fill:#c9a227,stroke:#8b7019,color:#000,stroke-width:3px style A fill:#1a5276,color:#fff style B fill:#1a5276,color:#fff style C fill:#1a5276,color:#fff ``` ### 2.2 전략적 페이즈 재구성 기존 Phase 0~10의 WBS는 너무 분산되어 있다. **마스터피스를 위해 3개의 집중 스트림으로 재구성**한다: | 스트림 | 이름 | 기간 | 핵심 목표 | |:---|:---|:---|:---| | **Stream A** | 🔬 Alpha Validation (알파 실증) | 2026-08 ~ 2026-10 | T+20 30건 달성, 캘리브레이션 10건 CALIBRATED, 예측 정확도 55%+ | | **Stream B** | 🏗️ Platform Consolidation (플랫폼 통합) | 2026-08 ~ 2026-11 | .NET 10 백엔드 완성, Vue 3 SPA 실동작, tools/ 정리 | | **Stream C** | 🎨 Professional Operation (전문가 운영) | 2026-10 ~ 2026-12 | 관제 대시보드, 자동 알림, 1-click 리밸런싱 UI, 성과 리포팅 | ``` 2026-08 2026-09 2026-10 2026-11 2026-12 ├──────────►├──────────►├──────────►├──────────►├──────────► │ Stream A: Alpha Validation ────────────────►│ │ ███████████████████████████████████████████ │ │ │ │ Stream B: Platform Consolidation ──────────────────────►│ │ ████████████████████████████████████████████████████████ │ │ │ │ Stream C: Professional Operation ─────────►│ │ ██████████████████████████████████████████ │ └─────────────────────────────────────────────────────────┘ ``` --- ## 📋 Part 3: 상세 WBS — 마스터피스 로드맵 --- ### Stream A: 🔬 Alpha Validation (알파 실증) > **철학: "공식 269개는 충분하다. 이제 1개라도 실전에서 증명하라."** #### WBS-A1: T+20 실측 파이프라인 가동 (2026-08 Week 1~2) | WBS | 작업 | 선행 | 성공 판단 데이터 | |:---|:---|:---|:---| | A1.1 | `build_operational_t20_outcome_ledger_v1.py` 일일 자동 실행 스케줄 등록 (Gitea Actions cron) | 없음 | `.gitea/workflows/t20_ledger.yml` 존재, cron 17:00 KST | | A1.2 | 매수 진입 이벤트 자동 캡처 — KIS 체결내역 조회 또는 HTS 수동 기록 UI | A1.1 | `Temp/t20_entry_events.json` 행 수 ≥ 1 | | A1.3 | T+20 만기 시점 자동 Close 가격 수집 — yfinance/KIS fallback | A1.2 | `Temp/t20_outcomes.json`에 `close_t20` 필드 non-null | | A1.4 | 30건 도달 시 `ALPHA_FEEDBACK_LOOP_V2` 자동 활성화 트리거 | A1.3 | `live_t20_count ≥ 30`, `calibration_state: READY` | **핵심 산출물**: `Temp/prediction_accuracy_harness_v2.json` → `t20_sample ≥ 30` --- #### WBS-A2: 캘리브레이션 실증 전환 1차 (2026-08 Week 3 ~ 2026-09 Week 2) | WBS | 작업 | 선행 | 성공 판단 데이터 | |:---|:---|:---|:---| | A2.1 | `calibration_priority_v1.json`에서 urgency score 상위 20건 추출 | 없음 | 대상 목록 JSON 존재 | | A2.2 | 20건에 대해 과거 1년 역사 데이터 백테스트 (replay calibration) | A2.1 | `Temp/replay_calibration_results_v1.json` gate: PASS | | A2.3 | 백테스트 결과 기반 10건 `EXPERT_PRIOR/SPEC_DERIVED` → `CALIBRATED` 승격 | A2.2 | `spec/calibration_registry.yaml`에 `source: CALIBRATED` 10건+ | | A2.4 | 승격된 임계값으로 엔진 재실행, 결과 비교 (before/after) | A2.3 | `Temp/calibration_impact_report_v1.json` 존재 | **핵심 산출물**: CALIBRATED ≥ 10/191 (5.2%+ 달성) --- #### WBS-A3: 예측 정확도 목표 달성 (2026-09 ~ 2026-10) | WBS | 작업 | 선행 | 성공 판단 데이터 | |:---|:---|:---|:---| | A3.1 | T+20 30건 기반 첫 match_rate 산출 | A1.4 | `match_rate_pct ≥ 50%` (1차 목표) | | A3.2 | SS001 가중치(P/V/F) 1차 재보정 | A3.1 | `Temp/alpha_calibration_v1.json` — 보정 전후 개선 ≥ 2%p | | A3.3 | 슬리피지 실측 5건 기록 (HTS 체결 후 수동 입력) | 없음 | `outputs/execution_slippage.db` sample ≥ 5 | | A3.4 | 슬리피지 실측값 vs 5bps 이론값 비교 및 spec 갱신 | A3.3 | `gap_bps` 보고서 존재, 3bps 초과 시 spec 갱신 | | A3.5 | 섹터 플로우 30일 달성 후 `FLOW_CREDIT_V1` 활성화 | 없음 | `days_accumulated ≥ 30`, lifecycle → ACTIVE | **핵심 산출물**: `match_rate_pct ≥ 55%`, `honest_proof_score ≥ 70` --- ### Stream B: 🏗️ Platform Consolidation (플랫폼 통합) > **철학: "복잡도를 줄여라. 1인이 유지할 수 없는 구조는 마스터피스가 아니다."** #### WBS-B1: tools/ 대정리 (2026-08 Week 1~2) | WBS | 작업 | 선행 | 성공 판단 데이터 | |:---|:---|:---|:---| | B1.1 | `tools/` 586개 파일 전수 인벤토리 — canonical/deprecated/dead 3등급 분류 | 없음 | `Temp/tools_inventory_v1.json` 생성 | | B1.2 | Dead 스크립트 → `tools/archive/` 이동 (삭제하지 않고 보존) | B1.1 | `tools/archive/` 100건+ 이동 | | B1.3 | Canonical 스크립트에 `#!/usr/bin/env python` + docstring 표준화 | B1.2 | canonical 스크립트 100% docstring 보유 | | B1.4 | `tools/README.md` — canonical 도구 목록 + 사용법 작성 | B1.3 | README 존재, 검증 명령 포함 | | B1.5 | GAS 중복 정리: `src/gas/` + `src/gas_adapter_parts/` + `src/google_apps_script/` → `src/gas/` 단일화 | 없음 | 3개 디렉토리 → 1개로 통합 | | B1.6 | `src/client/` 레거시 삭제 | 없음 | 디렉토리 미존재 | | B1.7 | `.gitea/workflows/deploy-prod.yml.backup` 삭제 | 없음 | 파일 미존재 | **핵심 산출물**: `tools/` 파일 수 300개 이하, canonical 도구 목록 문서 --- #### WBS-B2: .NET 10 백엔드 완성 (2026-08 Week 3 ~ 2026-09) | WBS | 작업 | 선행 | 성공 판단 데이터 | |:---|:---|:---|:---| | B2.1 | Application 서비스 완성 — Workspace/Approval/Collection/Formula 4개 서비스 실구현 | 없음 | `dotnet test --filter ApplicationService` 13+ PASS | | B2.2 | 데이터 수집 오케스트레이터 — KIS-first → Naver fallback → JSON replay | B2.1 | `dotnet test --filter Collection` 4+ PASS | | B2.3 | PostgreSQL 3NF 스키마 정규화 (V005~V008 마이그레이션) | 없음 | `dotnet-ef database update` 성공, `stocks`/`sources`/`market_data` 테이블 존재 | | B2.4 | Repository 패턴 100% 적용 — Dapper + interface 기반 | B2.3 | 직접 SQL 호출 0건 (Service 레이어에서) | | B2.5 | FastEndpoints API 완성 — 최소 15개 엔드포인트 (CRUD + 퀀트 결과 조회) | B2.1 | OpenAPI spec 자동 생성, endpoint 15개+ 존재 | | B2.6 | Hangfire 스케줄러 — 일일 수집 + 주간 리밸런싱 + 월간 유니버스 갱신 | B2.2 | Hangfire 대시보드에서 3개 recurring job 확인 | | B2.7 | 보안 강화 — BCrypt 패스워드 해싱, JWT 토큰 갱신, CSRF 방어 완전 탑재 | B2.5 | `dotnet test --filter Security` 10+ PASS | **핵심 산출물**: `dotnet build` 경고 0, `dotnet test` 250+ PASS, API 엔드포인트 15+ --- #### WBS-B3: Vue 3 SPA 실동작 검증 (2026-09 ~ 2026-10) | WBS | 작업 | 선행 | 성공 판단 데이터 | |:---|:---|:---|:---| | B3.1 | OpenAPI TypeScript 클라이언트 자동 생성 + Axios interceptor 완성 | B2.5 | `src/frontend/src/api/generated/` 자동 생성, `npm run type-check` 0 에러 | | B3.2 | 로그인 플로우 — JWT + Refresh Token + 자동 갱신 | B2.7 | Playwright E2E: 로그인→토큰갱신→인증만료 시나리오 PASS | | B3.3 | DashboardView — 실시간 포트폴리오 요약 (PostgreSQL 데이터 연동) | B3.1 | DashboardView에서 총자산/수익률/포지션 데이터 렌더링 확인 | | B3.4 | SnapshotAdminView — account_snapshot 편집/검증/저장/승인 4단계 플로우 | B3.1 | Playwright E2E: 편집→저장→diff preview→승인 시나리오 PASS | | B3.5 | DatabaseView — AG Grid 기반 전체 테이블 브라우저 | B3.1 | 10,000행 렌더링 성능 P95 < 200ms | | B3.6 | SystemSettingsView — 전체 시스템 설정 관리 UI 실연동 | B3.1 | 설정 변경 → DB 반영 → 화면 갱신 round-trip | | B3.7 | Vitest 단위 테스트 20+ 작성, Playwright E2E 10+ 시나리오 | B3.2 | `npm run test:unit` 20+ PASS, `npm run test:e2e` 10+ PASS | **핵심 산출물**: Vue 3 SPA 완전 동작, E2E 테스트 10+, 타입 에러 0 --- #### WBS-B4: CI/CD 파이프라인 통합 (2026-10) | WBS | 작업 | 선행 | 성공 판단 데이터 | |:---|:---|:---|:---| | B4.1 | CI 파이프라인 단일화 — Python/dotnet/frontend 3-stage gate 직렬 | B3.7 | `ci.yml` 실행 시간 ≤ 20분 | | B4.2 | 배포 파이프라인 — frontend build → dotnet publish → tar.gz → 배포 → 헬스체크 | B4.1 | `deploy-prod.yml` 자동 실행, 6개 헬스체크 PASS | | B4.3 | 배포 후 Playwright smoke 테스트 — 운영 서버 접속 + 로그인 + 대시보드 확인 | B4.2 | `tests/e2e/production-smoke.spec.ts` PASS | | B4.4 | CI 재현성 검증 — 3회 연속 실행 결과 100% 동일 | B4.1 | `Temp/ci_reproducibility_report.json` variance < 5% | **핵심 산출물**: 단일 `git push` → 15~20분 내 자동 배포 + 검증 완료 --- ### Stream C: 🎨 Professional Operation (전문가 운영) > **철학: "마스터피스는 보는 순간 신뢰감을 준다."** #### WBS-C1: 관제 대시보드 (2026-10 ~ 2026-11) | WBS | 작업 | 선행 | 성공 판단 데이터 | |:---|:---|:---|:---| | C1.1 | **Portfolio Overview** — 총자산, 일일/주간/월간 수익률, KOSPI 대비 알파, MDD | B3.3 | 첫 화면에서 5초 내 전체 상황 파악 가능 | | C1.2 | **Position Heat Map** — 종목별 손익 히트맵 + Core/Satellite/Cash 버킷 시각화 | B3.3 | 11개 포지션 히트맵 렌더링, 색상으로 건강도 즉시 인지 | | C1.3 | **Signal Dashboard** — SS001 점수, 라우팅 게이트 상태, 매수/매도 신호 실시간 표시 | B3.3 | HOLD/SELL_READY/BLOCKED 상태 색상 chips 표시 | | C1.4 | **Calibration Health** — 191개 임계값 중 CALIBRATED/PROVISIONAL/미검증 비율 진행바 | B3.3 | 캘리브레이션 건강도 게이지 차트 | | C1.5 | **Engine Activity Log** — 최근 엔진 실행 이력, 성공/실패/경고 타임라인 | B3.3 | 최근 30일 실행 이력 스크롤 가능 | **핵심 산출물**: 한 화면에서 포트폴리오 건강도 + 신호 + 엔진 상태를 즉시 파악 --- #### WBS-C2: 자동 알림 & 모니터링 (2026-11) | WBS | 작업 | 선행 | 성공 판단 데이터 | |:---|:---|:---|:---| | C2.1 | Telegram Bot 알림 — 일일 엔진 실행 결과, 매도 신호 발생, MDD 경고 | 없음 | Telegram 메시지 수신 확인 | | C2.2 | 장애 자동 감지 — CI 실패, 서버 다운, 데이터 수집 중단 시 즉시 알림 | C2.1 | 의도적 장애 주입 → 5분 내 알림 수신 | | C2.3 | Serilog + OpenTelemetry 구조화 로깅 — JSON 형식 로그 + 메트릭 수집 | B2.5 | `journalctl -u quantengine` JSON 구조 확인 | | C2.4 | 주간 자동 리포트 — 포트폴리오 성과, 신호 변화, 캘리브레이션 진척 | C1.1 | 매주 일요일 Telegram 리포트 수신 | **핵심 산출물**: 수동 확인 없이 이상 상황 자동 통보 --- #### WBS-C3: 1-Click 리밸런싱 워크플로 (2026-11 ~ 2026-12) | WBS | 작업 | 선행 | 성공 판단 데이터 | |:---|:---|:---|:---| | C3.1 | 리밸런싱 제안 화면 — 버킷 밴드 위반 시 자동 제안, 주문표 생성 | C1.2 | 리밸런싱 필요 시 자동 제안 카드 표시 | | C3.2 | 주문 시뮬레이션 — 지정가/호가단위 정규화 결과 미리보기 | C3.1 | 시뮬레이션 결과 테이블 (ticker/수량/지정가/슬리피지) | | C3.3 | 승인 → HTS 주문표 export (CSV/클립보드) | C3.2 | "승인" 버튼 → CSV 다운로드/클립보드 복사 | | C3.4 | 체결 후 실측 기록 UI — 의도가/실제체결가 입력 → 슬리피지 DB 저장 | C3.3 | `execution_slippage` 레코드 생성 확인 | **핵심 산출물**: 리밸런싱 판단 → 주문 → 체결 기록의 완전한 루프 --- #### WBS-C4: 성과 리포팅 & 아카이빙 (2026-12) | WBS | 작업 | 선행 | 성공 판단 데이터 | |:---|:---|:---|:---| | C4.1 | 월간 성과 보고서 자동 생성 — PDF/마크다운 (수익률, 알파, MDD, 매매 이력) | C1.1 | `Temp/monthly_report_2026_12.pdf` 존재 | | C4.2 | 벤치마크 비교 차트 — KOSPI, S&P 500 대비 누적 수익률 | C4.1 | 차트에서 3개 라인 비교 가능 | | C4.3 | 연간 결산 보고서 — 세금 계산, 배당 수입, 실현/미실현 손익 | C4.1 | 연간 보고서 항목 100% 채움 | | C4.4 | 이력 아카이빙 — 일일 포트폴리오 스냅샷 PostgreSQL 시계열 저장 | B2.3 | `portfolio_daily_snapshots` 테이블 행 수 ≥ 30 | **핵심 산출물**: 전문가급 성과 리포트 자동 생성 --- ## 📊 Part 4: 완성도 매트릭스 & 마일스톤 ### 4.1 마스터피스 완성도 KPI (2026-12-31 목표) | 차원 | 지표 | 현재 | 마스터피스 목표 | 판정 | |:---|:---|:---|:---|:---| | **Alpha** | T+20 실측 건수 | 0 | ≥ 50 | 🔴 | | **Alpha** | CALIBRATED 임계값 | 0/191 | ≥ 30/191 (15%+) | 🔴 | | **Alpha** | 예측 정확도 (match_rate) | DATA_GATED | ≥ 55% | 🔴 | | **Alpha** | 슬리피지 실측 | 0건 | ≥ 10건 | 🔴 | | **Alpha** | KOSPI 대비 알파 | 미측정 | > 0%p/분기 | 🔴 | | **Platform** | .NET 테스트 | 214 | ≥ 300 | 🟠 | | **Platform** | Vue 3 E2E 테스트 | ~3 | ≥ 15 | 🟠 | | **Platform** | tools/ 파일 수 | 586 | ≤ 200 (canonical) | 🟠 | | **Platform** | CI 재현성 | 미검증 | 3회 연속 100% 동일 | 🟠 | | **Platform** | 배포 소요시간 | 수동 | ≤ 20분 (자동) | 🟠 | | **Operation** | 수동 개입 | 매일 | ≤ 1회/주 | 🟡 | | **Operation** | 장애 알림 | 없음 | 5분 내 Telegram | 🔴 | | **Operation** | 월간 리포트 | 없음 | 자동 생성 | 🔴 | | **Operation** | 리밸런싱 워크플로 | CLI 전용 | 웹 UI 1-Click | 🔴 | ### 4.2 월별 마일스톤 | 월 | 마일스톤 | 핵심 증빙 | |:---|:---|:---| | **2026-08** | **M1: Alpha Pipeline Live** — T+20 수집 자동화 + tools/ 대정리 완료 | T+20 entry 10건+, tools/ 300개 이하 | | **2026-09** | **M2: Backend Complete** — .NET Application 서비스 + PostgreSQL 3NF + API 15개 | `dotnet test` 250+, endpoint 15+ | | **2026-10** | **M3: SPA Live** — Vue 3 전체 뷰 실동작 + CI/CD 통합 | E2E 10+, 자동 배포 동작 | | **2026-11** | **M4: Professional Ops** — 관제 대시보드 + Telegram 알림 + 리밸런싱 UI | 대시보드 5개 패널, 알림 동작 | | **2026-12** | **M5: Masterpiece** — 알파 실증 + 성과 리포트 + 연간 결산 | match_rate ≥ 55%, 월간 리포트 자동 | --- ## 🔥 Part 5: 즉시 실행 — Sprint-0 (이번 주, 2026-07-28 ~ 2026-08-01) > **이번 주에 할 수 있는 가장 가치 있는 4가지** ### Sprint-0.1: T+20 수집 자동화 파이프라인 (Day 1~2) ```bash # 1. Gitea Actions 일일 cron 등록 # .gitea/workflows/t20_ledger.yml # 매 영업일 17:00 KST 자동 실행 python tools/build_operational_t20_outcome_ledger_v1.py --auto ``` - 이것이 **가장 시급**하다. 알파 검증의 전제조건이 데이터 누적이고, 하루라도 빨리 시작해야 한다. ### Sprint-0.2: tools/ 파일 인벤토리 자동 분류 (Day 2~3) ```bash python tools/build_tools_inventory_v1.py # 586개 → canonical / deprecated / dead 3등급 분류 # Temp/tools_inventory_v1.json 산출 ``` ### Sprint-0.3: 슬리피지 실측 첫 기록 (Day 3~4) ```bash # 최근 체결 이력에서 1건이라도 기록 python tools/evaluate_execution_slippage_v1.py record \ --ticker 005930 --side BUY \ --intended-price 71000 --actual-price 71050 \ --recorded-at 2026-07-28 ``` ### Sprint-0.4: 레거시 파일 정리 (Day 4~5) ```bash # 즉시 삭제 가능한 레거시 rm -rf src/client/ rm .gitea/workflows/deploy-prod.yml.backup ``` --- ## 📐 Part 6: 의존성 차트 (전체) ```mermaid graph TD subgraph "Stream A: Alpha Validation" A11["A1: T+20 파이프라인"] A21["A2: 캘리브레이션 실증"] A31["A3: 예측 정확도"] A11 --> A31 A21 --> A31 end subgraph "Stream B: Platform" B11["B1: tools 정리"] B21["B2: .NET 완성"] B31["B3: Vue 3 SPA"] B41["B4: CI/CD 통합"] B21 --> B31 B31 --> B41 end subgraph "Stream C: Operation" C11["C1: 관제 대시보드"] C21["C2: 자동 알림"] C31["C3: 리밸런싱 UI"] C41["C4: 성과 리포팅"] B31 --> C11 C11 --> C21 C11 --> C31 C31 --> C41 end A31 --> C41 ``` --- > [!IMPORTANT] > **마스터피스의 핵심은 기술이 아니라 실증이다.** > > 269개 공식, 92개 spec, 586개 도구 — 이 모든 것은 **T+20 30건이 쌓이고, 캘리브레이션 10건이 CALIBRATED되고, match_rate가 55%를 넘는 순간** 비로소 의미를 갖는다. > > 지금 이 순간부터 가장 중요한 것은 **데이터 누적**이다. 하루라도 빨리 T+20 파이프라인을 돌려야 한다.