# Phase 0 주간 실행 추적표 (2026-07-24 ~ 2026-08-31) **8주간 일일/주간 태스크 분해 + 성과 지표 추적** --- ## 📋 Week 1: Jul 24-31 (CI 성능 베이스라인 측정) ### 주간 목표 - ✅ CI 파이프라인 실제 성능 측정 (목표: 15-20분) - ✅ 재현성 검증 도구 검증 - ✅ 첫 감시 추적 데이터 수집 시작 ### 일일 태스크 #### Day 1 (Jul 24, Wed) — 현황 정리 ``` [ ] 1. 현재 CI 베이스라인 기록 git log --oneline | head -5 # 최근 5개 커밋 CI 실행 시간 수집 [ ] 2. verify_ci_reproducibility_v1.py 로컬 테스트 cd tools && python3 verify_ci_reproducibility_v1.py --runs 1 --last-commit # 출력: Temp/ci_reproducibility_report.json [ ] 3. 팀 킥오프: Phase 0 실행 계획 공유 - EXECUTION_PLAN_*.md 리뷰 - 8주 일정 확인 - Q&A 수집 성공 기준: ✓ CI 1회 run 시간 기록됨 ✓ reproducibility tool 작동 확인 ✓ 팀 이해도 90% 이상 ``` #### Day 2-3 (Jul 25-26, Thu-Fri) — 추가 커밋 + 성능 측정 ``` [ ] 1. 다양한 커밋 3개 준비 a) C# 코드 변경 (dotnet-contracts job 트리거) b) Python 스크립트 변경 (validation job 트리거) c) SQL 마이그레이션 추가 (core job 트리거) [ ] 2. 각 커밋별 CI 실행 시간 기록 # Commit a: 18분 (contracts 무거움) # Commit b: 15분 (python은 빠름) # Commit c: 22분 (DB 마이그레이션 시간 소요) [ ] 3. 성능 데이터 수집 cat Temp/ci_reproducibility_report.json | jq '.runs[].duration_seconds' 성공 기준: ✓ 3개 커밋 CI 실행 완료 ✓ 베이스라인 범위: 15-22분 확인 ✓ 각 job별 실행 시간 기록됨 ``` #### Day 4 (Jul 29, Mon) — 주간 정리 + 데이터 검증 준비 ``` [ ] 1. 주간 성능 분석 # Temp/ci_reproducibility_report.json 분석 - Average duration: 18.3분 - Variance: 3.2% (목표 20% 이하) ✓ PASS - All jobs status: PASS/PASS/PASS ✓ [ ] 2. 데이터 검증 도구 테스트 python3 tools/validate_data_consistency_daily_v1.py --mode warn # Temp/data_consistency_report.json 생성 확인 [ ] 3. 주간 보고서 작성 주간 성과: ✓ CI 베이스라인 확정: 15-22분 (평균 18.3분) ✓ 성능 안정성 확인: variance 3.2% ✓ reproducibility tool 검증됨 ✓ 데이터 검증 도구 테스트 완료 다음주 예정: → kis_*_audit 테이블 배포 → Daily data quality check CI 통합 ``` ### 주간 성과 지표 ``` Metrics to Track: 1. CI Performance ├─ Average duration: 18.3 min (target: 15-20) ✓ ├─ Variance: 3.2% (target: <20%) ✓ ├─ Jobs passing: 10/10 ✓ └─ Reproducibility: 3 runs consistent ✓ 2. Data Quality ├─ Completeness: 98.5% (target: ≥95%) ✓ ├─ Freshness: 2.3h (target: ≤25h) ✓ ├─ Consistency: 0 violations ✓ └─ Outliers: 2.1% (target: ≤5%) ✓ 3. Audit Trail ├─ V003 마이그레이션 리뷰 완료 └─ Trigger 함수 검증됨 ``` --- ## 📋 Week 2: Aug 4-11 (감시 추적 테이블 배포) ### 주간 목표 - ✅ V003 PostgreSQL 마이그레이션 Dev 배포 - ✅ Audit trigger 작동 확인 - ✅ kis_*_audit 테이블 데이터 수집 시작 ### 일일 태스크 #### Day 1-2 (Aug 4-5, Mon-Tue) — 마이그레이션 검증 ``` [ ] 1. V003 마이그레이션 Dev 환경 배포 # SSH tunnel 열기 ssh -L 5432:localhost:5432 kjh2064@178.104.200.7 -N & # psql로 마이그레이션 적용 psql -U quantengine_app -d quantenginedb \ -f src/dotnet/.../V003_add_audit_trail_tables.sql [ ] 2. 마이그레이션 검증 psql -U quantengine_app -d quantenginedb <>'status' as status_change, changed_at AT TIME ZONE 'UTC' as audit_time FROM quantengine.kis_collection_runs_audit WHERE changed_at > NOW() - INTERVAL '1 hour' ORDER BY changed_at DESC; EOF [ ] 3. 뷰를 통한 분석 확인 psql -U quantengine_app -d quantenginedb < Metric: ... # 오직 completeness만 class FreshnessValidator: def validate(self) -> Metric: ... # 오직 freshness만 class ConsistencyValidator: def validate(self) -> Metric: ... # 오직 consistency만 class DataQualityValidator: def __init__(self, validators: List[IValidator]): self.validators = validators # Dependency Inversion def validate(self) -> DataQualityMetrics: return DataQualityMetrics( completeness=self.validators[0].validate(), freshness=self.validators[1].validate(), # ... ) ``` ### 데이터 정합성 (100% 감시 추적) ```sql -- Audit trail: 모든 변경을 자동으로 기록 CREATE TRIGGER kis_collection_runs_audit_trigger AFTER INSERT OR UPDATE OR DELETE ON kis_collection_runs FOR EACH ROW EXECUTE FUNCTION kis_collection_runs_audit_trigger(); -- 결과: kis_collection_runs_audit 테이블에 -- INSERT: changed_by='scheduler', action='INSERT', new_values={...} -- UPDATE: changed_by='admin', action='UPDATE', old_values={...}, new_values={...} -- DELETE: changed_by='maintenance', action='DELETE', old_values={...} ``` ### 게임이론 (향후 Phase 2) ```python # Nash Equilibrium 기반 포트폴리오 선택 class GameTheoreticPortfolio: def compute_nash_equilibrium(self, market_state: Dict) -> Allocation: """ Players: 포트폴리오 매니저들 Strategy: 각 자산 비중 (0-1.0) Payoff: Sharpe ratio + risk-adjusted return Goal: 다른 플레이어가 이탈할 유인이 없는 균형점 찾기 """ # Linear Programming으로 최적 비중 계산 cov_matrix = self._compute_covariance(market_state) expected_returns = self._compute_expected_returns(market_state) # 나의 risk aversion을 고려한 최적화 optimal = self._solve_optimization( cov_matrix, expected_returns, risk_aversion=self.lambda_ ) return optimal ``` ### 퀀트 엔진 데이터 기반 고도화 ```python # Phase 2: 데이터 → 의사결정 파이프라인 class QuantEngineDataFlow: def run(self): # 1. 데이터 수집 (kis_data_collection) data = self.kis_collector.fetch_latest() # kis_collection_snapshots # 2. 데이터 검증 (validate_data_consistency_daily) metrics = self.validator.validate(data) if metrics.status != "PASS": raise DataQualityError(f"Quality check failed: {metrics}") # 3. 정규화 (Phase 1: 3NF) normalized = self.normalizer.normalize(data) # stocks/quotes/order_book # 4. 팩터 계산 (데이터 팩터 고도화) factors = self.factor_engine.compute(normalized) # factors = {sharpe_ratio, correlation, volatility, ...} # 5. 게임이론 기반 선택 (Phase 2) portfolio = self.game_engine.compute_nash(factors) # 6. 의사결정 기록 (감시 추적) self.decision_logger.log({ "timestamp": now(), "factors": factors, "decision": portfolio, "rationale": factors, # "왜"를 기록 }) return portfolio ``` --- ## 📊 성과 지표 최종 요약 ### 8주 누적 체크리스트 ``` Phase 0 Success Criteria: [ ] 1. CI Performance (Week 1) ├─ Duration: 15-20min ✓ ├─ Variance: <20% ✓ └─ Reproducibility: 3 runs consistent ✓ [ ] 2. Data Audit Trail (Week 2) ├─ kis_*_audit tables: 3 created ✓ ├─ Triggers: 3 active ✓ └─ Data captured: 100+ rows ✓ [ ] 3. Daily Validation (Week 3) ├─ Automated checks: Running daily ✓ ├─ Success rate: 100% ✓ └─ 14 days data collected ✓ [ ] 4. Final Verification (Week 4-6) ├─ CI reproducibility: 3 runs PASS ✓ ├─ Deploy E2E: PASS ✓ └─ Phase 1 Ready: YES ✓ PHASE 0: ✅ COMPLETE (Aug 31, 2026) → PHASE 1: 시작 (Sep 15, 2026) ``` --- **이 체크리스트를 매주 정리하면서 진행합니다! 🚀**