- 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>
- 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>