325c6d64e1
배포 및 실전 운영 체크리스트: 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>
7.0 KiB
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 마감)