Files
QuantEngineByItz/DEPLOYMENT_CHECKLIST.md
T
kjh2064 325c6d64e1 docs(deployment): Add comprehensive deployment checklist and timeline
배포 및 실전 운영 체크리스트:

Phase 0 (완료): 코드 구현 & UI/UX 완성
  - P3~P6 YAML 명세 (4개 파일)
  - GAS 함수 7개 (gas_data_feed.gs)
  - MudBlazor UI (Dashboard, Layout, Navigation)
  - Release 빌드 완료 (24MB)

Phase 1 (지금): 배포 실행
  - 웹 서버 배포 (deploy.sh 실행)
  - GAS 프로젝트 생성 및 함수 배포
  - live_outcome_ledger 스프레드시트 초기화
  - 데이터베이스 연결 확인

Phase 2 (6주): 실전 운영
  Week 1-2: 6-8개 신호 수집
  Week 3-4: T+20 데이터 수집 + 8-10개 추가
  Week 5-6: 데이터 수렴 + 8-10개 추가
  Week 7: 최종 신호 + CALIBRATED 전환

최종 목표:
  - 신호 30개 수집 (SCALP 10 + SWING 8 + MOMENTUM 7 + POSITION 5)
  - 승률 >= 60% (30개 중 18개 WIN)
  - honest_proof_score: 56.57 → 95.0 달성
  - 예상 완료: 2026-08-10

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-06-25 17:58:24 +09:00

7.0 KiB

🚀 Quant Engine v9 Deployment Checklist

상태: 2026-06-25 배포 준비 완료
목표: honest_proof_score 56.57 → 95.0
기간: 6주 (2026-06-25 ~ 2026-08-10)


Phase 0: 사전 준비 (완료)

코드 구현

  • P3 손절 체계spec/exit/stop_loss.yaml

    • calcAbsoluteRiskStopV1_
    • calcRelativeUnderperfAlertV1_
    • calcStopActionLadderV1_
  • P4 라우팅spec/xx_routing_contract.yaml

    • buildRoutePacket_ (SCALP/SWING/MOMENTUM/POSITION)
  • P5 뒷북 차단spec/exit/pre_distribution_gate.yaml

    • calcAlphaLeadV1_
    • calcDistributionRiskV1_
  • P6 현금확보spec/exit/cash_recovery.yaml

    • calcCashRecoveryOptimizerV1_

UI/UX

  • MudBlazor 6.10.0 추가 (QuantEngine.Web.csproj)
  • Dashboard.razor — Material Design 레이아웃
  • MainLayout.razor — 반응형 AppBar + Drawer
  • NavMenu.razor — Material Icons 네비게이션
  • App.razor — MudThemeProvider 통합

빌드

  • Release 빌드: dotnet publish -c Release
  • 결과: src/dotnet/QuantEngine.Web/publish/ (24MB, 172개 파일)
  • 모든 컴파일 에러 해결

🚀 Phase 1: 배포 (지금 진행)

1.1 웹 서버 배포

# 실행 방법
chmod +x deploy.sh
./deploy.sh

배포 스크립트 단계:

  • SSH 연결 확인 (178.104.200.7)
  • 원격 백업 생성 (/var/www/quant_backup_*)
  • 파일 전송 (rsync, 24MB)
  • 권한 설정 (www-data:www-data)
  • nginx 재시작
  • HTTP 상태 확인 (200 OK)

확인 URL:

http://178.104.200.7/quant/

1.2 GAS 배포

Step 1: Google Apps Script 프로젝트 생성

1. Google Drive → 새로 만들기 → Google Apps Script
2. 프로젝트명: "Quant Engine Data Feed"
3. 스크립트 저장

Step 2: 함수 추가

// 다음 파일들의 내용을 복사해서 GAS에 붙여넣기:
// - src/google_apps_script/gas_data_feed.gs (P3~P6 함수)
// - src/google_apps_script/live_outcome_ledger.gs (신호 추적)

Step 3: 스프레드시트 연동

1. 새 스프레드시트 생성: "live_outcome_ledger"
2. LEDGER_SHEET_ID 변수 업데이트 (live_outcome_ledger.gs)
3. initializeLedger_() 실행 → 헤더 자동 생성

Step 4: 테스트

// GAS 콘솔에서 실행
testLiveOutcomeLedger();

// 또는 개별 테스트
testP3Functions();

체크리스트:

  • GAS 프로젝트 생성 완료
  • gas_data_feed.gs 파일 추가 (7개 함수)
  • live_outcome_ledger.gs 파일 추가 (신호 추적)
  • LEDGER_SHEET_ID 설정 (스프레드시트 ID)
  • initializeLedger_() 실행
  • 테스트 함수 통과

1.3 데이터베이스 연결 확인

# SSH 접속 후
ssh kjh2064@178.104.200.7

# PostgreSQL 연결 확인
psql -h 127.0.0.1 -U gitea -d giteadb

체크리스트:

  • PostgreSQL 실행 중
  • giteadb 데이터베이스 존재
  • quantengine schema 존재

📊 Phase 2: 실전 운영 (6주)

Week 1-2: 기초 구축 (2026-06-25 ~ 2026-07-08)

목표: 6-8개 신호 수집

매일 해야 할 일:

  • 신호 발생 → addSignal_(signal) 호출
  • 또는 스프레드시트 "live_outcome_ledger"에 직접 입력

주간 금요일 (매주):

  • calculateStats_() 실행
  • win_rate 확인 (목표: >= 60%)
  • 주간 리포트 작성 (docs/DAILY_SIGNAL_TRACKING.md 참고)

체크리스트:

  • Week 1: 3-4개 신호
  • Week 2: 3-4개 신호 (누적 6-8개)
  • 승률 >= 50% 유지

Week 3-4: T+20 수집 (2026-07-09 ~ 2026-07-22)

목표: 추가 8-10개 신호 + T+20 데이터 수집 시작

매일:

  • 신규 신호 기록
  • T+20 도달한 신호 updatePriceT20_(signalId, priceT20) 호출

T+20 가격 수집:

# KIS API, Yahoo Finance 등에서 자동 수집
# 또는 수동으로 스프레드시트 입력

# 자동으로 계산됨:
# - return_pct_t20
# - outcome (WIN/LOSS/BREAKEVEN)
# - win_margin
# - validation_status: PROVISIONAL

체크리스트:

  • Week 3: 4-5개 신호
  • Week 4: 4-5개 신호 (누적 14-18개)
  • T+20 데이터 6-8개 수집
  • 완료된 신호 승률 >= 60%

Week 5-6: 데이터 수렴 (2026-07-23 ~ 2026-08-05)

목표: 추가 8-10개 신호 + 30개 근처

매일:

  • 신규 신호 기록
  • T+20 데이터 입력 (완료)

대량 수렴:

// 주간 실행
stats = calculateStats_();
Logger.log(`승률: ${stats.win_rate}%, 완료: ${stats.completed}/30`);

체크리스트:

  • Week 5: 4-5개 신호
  • Week 6: 4-5개 신호 (누적 22-28개)
  • 전체 승률 >= 60%

Week 7: CALIBRATED 전환 (2026-08-06 ~ 2026-08-10)

목표: 30개 완료 + CALIBRATED 전환

최종 신호:

  • 마지막 2-8개 신호 수집
  • T+20 데이터 완료

CALIBRATED 전환 실행:

// 조건 확인
check = checkCalibrationReady_();
Logger.log(JSON.stringify(check, null, 2));

// 조건 충족 시
calibrateIfReady_();

체크리스트:

  • 신호 누적: 30개 완료
  • 승률: >= 60% (30개 중 최소 18개 WIN)
  • avg_win_margin >= 2.0%
  • PROVISIONAL → CALIBRATED 전환
  • honest_proof_score 업데이트 (95.0 달성)

🎯 최종 목표

honest_proof_score 개선

현재:        56.57
├─ P0 완료:  +10점 → 66.57
├─ P2 샘플:  +20점 → 86.57
└─ P3~P6:    +8점  → 94.57 ≈ 95.0 ✅

배포 완료 조건

  • Release 빌드 성공
  • 명세 파일 (P3~P6 YAML)
  • GAS 함수 구현 (7개)
  • 배포 스크립트 작성
  • 신호 추적 시스템 (GAS)
  • 웹 서버 배포 실행
  • GAS 프로젝트 배포 실행
  • 30개 신호 수집 (6주)
  • CALIBRATED 전환
  • honest_proof_score 95.0 달성

📝 추가 작업

배포 후 확인

# 웹사이트 접속
curl -I http://178.104.200.7/quant/

# 로그 모니터링
ssh kjh2064@178.104.200.7
sudo tail -f /var/log/nginx/error.log
sudo tail -f /var/log/nginx/access.log

# 백업 위치
/var/www/quant_backup_YYYYMMDD_HHMMSS/

문제 해결

문제 해결법
HTTP 503 앱이 시작 중. 몇 초 후 재시도
HTTP 404 nginx 설정 확인 (/etc/nginx/sites-available/quant)
SSH 연결 실패 SSH 키 확인 (~/.ssh/id_ed25519)
성능 저하 데이터베이스 연결 확인, 로그 분석

모니터링

# 일일 헬스 체크 (cron)
0 9 * * * curl http://178.104.200.7/quant/ > /dev/null 2>&1

# 주간 리포트 (GAS 자동화)
# 매주 금요일 18:00 실행:
# - calculateStats_()
# - 이메일 발송

🔗 관련 문서

  • V9_HARDENING_IMPLEMENTATION_ROADMAP.md — 전체 로드맵
  • docs/DAILY_SIGNAL_TRACKING.md — 일일 추적 가이드
  • deploy.sh — 배포 스크립트
  • src/google_apps_script/gas_data_feed.gs — GAS 함수
  • src/google_apps_script/live_outcome_ledger.gs — 신호 추적

작성일: 2026-06-25
최후 수정: 2026-06-25
다음 체크: 2026-07-04 (Phase 2 Week 1 마감)