# 로또랩 프리미엄 서비스 고도화 로드맵

> 작성일: 2026-03-19
> 목표: 번호 생성 도구 → 데이터 기반 로또 전략 코치

---

## 1. 현재 서비스 한계

현재 구조는 **"번호 생성 도구"** 수준으로 수익화에 한계가 있음.

| 문제 | 내용 |
|------|------|
| 차별점 부재 | 무료 로또 번호 생성기와 구분되지 않음 |
| 신뢰 근거 부족 | 사용자가 결과를 믿을 데이터 시각화 없음 |
| 리텐션 약함 | 지속적으로 돌아올 이유가 없음 |

---

## 2. 포지셔닝 전환

> **"번호 생성"이 아니라 "데이터 기반 로또 전략 코치"**

사람들이 구독료를 지불하는 심리적 동기:

- **확신**: 내가 선택한 번호가 좋은 선택이라는 데이터 근거
- **FOMO**: 이번 주 리포트를 못 받으면 놓치는 느낌
- **소유감**: 내 데이터와 이력이 축적된다는 느낌

---

## 3. 고도화 방향 (5가지)

### 3-1. 당첨 근접도 추적 — 신뢰 기반 구축

**목표**: 기존 채점 데이터(`check_results_for_draw`)를 신뢰 지표로 전환

**구현 내용**:
- 추천 번호의 회차별 일치 개수 통계 집계
- 전국 평균 대비 성과 비교 지표 노출
- 매주 "지난 주 내 번호 성과" 이메일/푸시 발송

**예시 UI 문구**:
```
"지난 52주간 우리 추천번호의 평균 일치 개수: 2.7개 (전국 평균 1.9개)"
"3개 일치율이 일반 무작위 대비 43% 높습니다"
```

**활용 데이터**: 기존 `recommendations` + `draws` 테이블 채점 결과

**우선순위**: ⭐⭐⭐ (데이터 이미 존재, 즉시 구현 가능)

---

### 3-2. 개인화 분석 리포트 — 프리미엄 핵심 기능

**목표**: 모든 사용자에게 동일한 번호 → 개인 패턴 기반 맞춤 추천

**구현 내용**:
- 사용자 번호 선택 이력 패턴 분석
- 홀짝 비율, 번호대 분포, 연속번호 포함률 등 개인 성향 분석
- 약점을 보완한 AI 보정 추천번호 생성

**예시 분석 항목**:
```
"당신은 홀수를 선호하는 경향 (67%)"
"당신이 자주 피하는 번호대: 30번대"
"당신 번호의 약점: 연속번호 포함률 낮음"
→ "이를 보완한 AI 보정 추천번호 제공"
```

**신규 테이블**: `user_preferences`

**우선순위**: ⭐⭐ (신규 테이블 및 분석 로직 필요)

---

### 3-3. 회차별 공략 리포트 — 킬러 콘텐츠

**목표**: 매주 추첨 전 발행하는 주간 분석 레포트 → 구독 유지 동기

**구현 내용**:
- 매주 자동 생성되는 회차별 공략 리포트
- 과출현/냉각 번호 분석
- 패턴 기반 번호군 추천
- AI 신뢰도 점수 표시

**예시 리포트 구조**:
```
[1180회 공략 리포트]
- 최근 10회 과출현 번호 제외 추천
- 이번 주 "냉각 구간" 번호 (오랫동안 미출현)
- 패턴 분석: 직전 3회 연속 출현한 번호군
- AI 신뢰도 점수: 87/100
```

**스케줄러**: 매주 토요일 추첨 전 자동 생성 (APScheduler)

**우선순위**: ⭐⭐⭐ (주간 구독 모델의 핵심 훅)

---

### 3-4. 번호 포트폴리오 관리 — 차별화 UX

**목표**: 로또를 투자처럼 관리하는 경험 제공

**구현 내용**:
- 세트 분류: 고위험/안정형/균형형
- 구매 금액 직접 입력 → 수익률 자동 계산
- 누적 투자 대비 당첨금 통계

**예시 화면**:
```
내 번호 포트폴리오
├── 고위험/고수익 세트 (출현 빈도 낮은 번호 조합)
├── 안정형 세트 (평균 출현 패턴)
└── 균형형 세트 (시뮬레이션 최적화)

이번 주 매입: 3세트 (₩3,000)
누적 투자: ₩240,000 / 누적 당첨: ₩45,000
수익률: -81.2% (전국 평균 대비 +12.1%)
```

**활용 데이터**: `best_picks`, `recommendations` 확장

**우선순위**: ⭐⭐ (UX 임팩트 큼, 중기 구현)

---

### 3-5. 커뮤니티 + 소셜 증거 — 바이럴 유도

**목표**: 사용자 참여 및 구전 마케팅

**구현 내용**:
- 이번 주 가장 많이 선택된 번호 TOP 10 공개
- "나와 같은 번호 선택한 회원 수" 표시
- AI 추천으로 X개 일치 달성한 회원 수 표시

**예시**:
```
"이번 주 가장 많이 선택된 번호 TOP 10"
"AI 추천 번호로 3개 일치 달성한 회원: 1,247명"
"나와 같은 번호를 선택한 회원: 34명"
```

**전략**: 무료 티어에 일부 공개 → 상세 분석은 유료 전환

**우선순위**: ⭐ (회원 시스템 구축 후 가능)

---

## 4. 구독 티어 설계

| 기능 | 무료 | 스탠다드 (₩2,900/월) | 프리미엄 (₩5,900/월) |
|------|:----:|:----:|:----:|
| 기본 추천 번호 | 1세트 | 5세트 | 무제한 |
| 통계 분석 | 기본 | 심화 | 전체 |
| 회차 공략 리포트 | - | 주간 요약 | 풀 리포트 |
| 개인 패턴 분석 | - | - | ✓ |
| 번호 포트폴리오 | - | ✓ | ✓ |
| 당첨 근접도 통계 | - | ✓ | ✓ |
| 당첨 알림 | - | 이메일 | 이메일 + 앱 |

---

## 5. 기술 구현 로드맵

### Phase 1 — 즉시 가능 (데이터 이미 존재)

- [ ] 추천 이력 채점 통계 API (`GET /api/lotto/stats/performance`)
- [ ] 신뢰도 지표 UI (평균 일치 개수, 전국 평균 비교)
- [ ] 회차별 공략 리포트 API (`GET /api/lotto/report/{drw_no}`)
- [ ] 개인 추천 이력 성과 대시보드

### Phase 2 — 단기 (1-2주)

- [ ] `user_preferences` 테이블 설계 및 구현
- [ ] 개인 패턴 분석 API (`GET /api/lotto/analysis/personal`)
- [ ] 주간 리포트 자동 생성 스케줄러 (토요일 오전)
- [ ] 투자 추적 기능 (구매 금액 입력 → 수익률 계산)
- [ ] `purchase_history` 테이블 추가

### Phase 3 — 중기 (1개월)

- [ ] 회원 시스템 구축 (JWT 인증, SQLite `users` 테이블)
- [ ] 구독 플랜 관리 (`subscription_plans`, `user_subscriptions` 테이블)
- [ ] 결제 연동 (Toss Payments 또는 Stripe)
- [ ] 이메일 발송 자동화 (SendGrid)
- [ ] 소셜 증거 데이터 집계 API

---

## 6. DB 스키마 확장 계획

```sql
-- Phase 2
CREATE TABLE purchase_history (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    draw_no INTEGER NOT NULL,
    amount INTEGER NOT NULL,          -- 구매 금액 (원)
    sets INTEGER NOT NULL DEFAULT 1,  -- 구매 세트 수
    prize INTEGER DEFAULT 0,          -- 당첨금
    note TEXT,
    created_at TEXT DEFAULT (datetime('now'))
);

CREATE TABLE user_preferences (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    odd_ratio REAL,        -- 홀수 선호 비율
    high_ratio REAL,       -- 고번호(23+) 선호 비율
    consecutive INTEGER,   -- 연속번호 포함 선호 여부
    excluded_numbers TEXT, -- JSON 배열, 기피 번호
    updated_at TEXT DEFAULT (datetime('now'))
);

-- Phase 3
CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    email TEXT UNIQUE NOT NULL,
    password_hash TEXT NOT NULL,
    plan TEXT DEFAULT 'free',  -- free | standard | premium
    plan_expires_at TEXT,
    created_at TEXT DEFAULT (datetime('now'))
);
```

---

## 7. API 확장 계획

| Phase | 메서드 | 경로 | 설명 |
|-------|--------|------|------|
| 1 | GET | `/api/lotto/stats/performance` | 추천 성과 통계 (평균 일치 수 등) |
| 1 | GET | `/api/lotto/report/latest` | 최신 회차 공략 리포트 |
| 1 | GET | `/api/lotto/report/{drw_no}` | 특정 회차 공략 리포트 |
| 2 | GET | `/api/lotto/purchase` | 구매 이력 조회 |
| 2 | POST | `/api/lotto/purchase` | 구매 이력 추가 |
| 2 | GET | `/api/lotto/purchase/stats` | 투자 수익률 통계 |
| 2 | GET | `/api/lotto/analysis/personal` | 개인 패턴 분석 |
| 3 | POST | `/api/auth/register` | 회원가입 |
| 3 | POST | `/api/auth/login` | 로그인 |
| 3 | GET | `/api/subscription/plans` | 구독 플랜 목록 |
| 3 | POST | `/api/subscription/checkout` | 결제 시작 |

---

## 참고

- 현재 운영 중인 lotto API: `CLAUDE.md` → `lotto-lab API 목록` 섹션 참고
- 채점 로직: `backend/app/checker.py`
- 시뮬레이션 로직: `backend/app/recommender.py`
- DB 스키마: `backend/app/db.py` `init_db()`
