- update_purchase에서 numbers/is_real 타입 변환 추가 (런타임 에러 방지)
- purchase_manager에서 evolve_after_check 호출하여 EMA 피드백 루프 활성화
- checker.py 중복 recalculate_weights 호출 제거
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- backend/app/purchase_manager.py 신규 생성
- check_purchases_for_draw(): 회차별 미채점 구매 건 자동 채점
- checker._calc_rank 재사용, RANK_PRIZE 상수 정의
- 채점 후 strategy_performance 자동 upsert (전략별 집계)
- backend/tests/test_purchase_manager.py에 통합 테스트 2건 추가
- test_check_purchases_for_draw: 1등/낙첨 결과 검증
- test_check_purchases_updates_strategy_performance: 성과 테이블 갱신 검증
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- backend/main.py: logging 모듈 도입, print() 제거
- stock-lab/main.py: print() → logger 전환, _calc_portfolio_totals 공용 함수 추출
- stock-lab/scraper.py: logging 모듈 도입, print() 제거
- docker-compose.yml: 전 서비스 healthcheck 블록 추가 (30s 간격, 3회 재시도)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- travel-proxy: get_thumb NameError 수정 및 경로 조작 방어
- stock-lab, music-lab: CORS allow_origins=* → 환경변수 기반 도메인 제한
- travel-proxy, deployer: /health 엔드포인트 추가
- 전 서비스 .dockerignore 추가 (.git, __pycache__, .env 제외)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- analyzer.py: generate_combined_recommendation() 함수 추가
빈도Z(25%)·조합지문(30%)·갭(20%)·공동출현(15%)·다양성(10%) 가중 투표
- main.py: GET /api/lotto/recommend/combined 엔드포인트 추가
결과를 태그 "종합추론"으로 recommendations 테이블에 저장
- main.py: GET /api/lotto/recommend/combined/history 엔드포인트 추가
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
매 요청마다 전체 recommendations 조회하던 구조를 캐시로 개선.
갱신 시점: 새 회차 채점 직후(_sync_and_check) + TTL 1시간 만료 폴백
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- purchase_history 테이블 추가 (draw_no, amount, sets, prize, note)
- weekly_reports 캐시 테이블 추가 (drw_no UNIQUE, report JSON)
- GET /api/lotto/purchase 구매 이력 조회 (draw_no, days 필터)
- POST /api/lotto/purchase 구매 이력 추가
- PUT /api/lotto/purchase/:id 구매 이력 수정 (당첨금 업데이트)
- DELETE /api/lotto/purchase/:id 구매 이력 삭제
- GET /api/lotto/purchase/stats 투자 수익률 통계
- GET /api/lotto/analysis/personal 개인 패턴 분석 (top/least picks, 홀짝/구간/연속번호)
- GET /api/lotto/report/history 저장된 주간 리포트 목록
- GET /api/lotto/report/:drw_no 캐시 우선 조회 + cached 플래그
- 스케줄러: 토요일 09:00 주간 리포트 자동 생성 및 DB 캐싱
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- GET /api/lotto/stats/performance: 채점 이력 기반 성과 통계
(평균 일치 수, 등수 분포, 무작위 대비 개선율)
- GET /api/lotto/report/latest: 다음 회차 공략 리포트 자동 생성
- GET /api/lotto/report/{drw_no}: 특정 회차 공략 리포트
(과출현/냉각/오버듀 번호, 최근 패턴, 3가지 전략 추천, 신뢰도 점수)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- subscription_items 테이블: 청약 목록 CRUD (GET/POST/PUT/DELETE)
- subscription_profile 테이블: 내 청약 조건 프로필 싱글톤 (GET/PUT, upsert)
- specialQuals JSON 배열, bool → int SQLite 변환 처리
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>