# web-backend — 구현 현황 & 로드맵

> 최종 갱신: 2026-05-17
> 자세한 서비스·환경변수·DB 표는 [CLAUDE.md](./CLAUDE.md), 설계는 `docs/superpowers/specs/`, 실행 계획은 `docs/superpowers/plans/` 참조.

---

## 1. 서비스 구현 현황

### 1-1. 운영 중인 컨테이너 (11개)

| 서비스 | 포트 | 상태 | 핵심 기능 |
|--------|------|------|-----------|
| `lotto` | 18000 | ✅ | 로또 추천·통계·리포트·구매내역·AI 큐레이터 |
| `stock` | 18500 | ✅ | 주식 뉴스·지수·트레이딩·포트폴리오·자산 스냅샷·스크리너 |
| `music-lab` | 18600 | ✅ | Suno + MusicGen + YouTube 수익화 + 컴파일 |
| `insta-lab` | 18700 | ✅ | 인스타 카드 피드 자동 생성 (NAVER + YouTube 트렌드 → 10페이지 카드, Playwright) |
| `realestate-lab` | 18800 | ✅ | 청약 수집·5티어 매칭·매칭 알림 push |
| `personal` | 18850 | ✅ | 포트폴리오·블로그·투두 통합 (개인 서비스) |
| `agent-office` | 18900 | ✅ | AI 에이전트 (WebSocket + 텔레그램 + InstaAgent + YouTubeResearcher) |
| `packs-lab` | 18950 | ✅ | NAS 자료 다운로드 자동화 (HMAC + Supabase + 5GB chunked upload) |
| `travel-proxy` | 19000 | ✅ | 여행 사진 API + 썸네일 + 지역 관리 |
| `frontend` (nginx) | 8080 | ✅ | SPA + 리버스 프록시 (5GB body limit, 인스타 라우팅 포함) |
| `webpage-deployer` | 19010 | ✅ | Gitea Webhook 자동 배포 (BUILDKIT timeout 600s, healthcheck via docker inspect) |

### 1-2. 최근 큰 작업 (2026-05)

| 시기 | 영역 | 핵심 |
|------|------|------|
| 2026-05-17 | 보안 / 정합성 | CODE_REVIEW F1 (packs-lab path traversal `startswith→relative_to`) + F2 (stock admin auth 503 거부) + F4 (portfolio total_buy 수량 곱산) |
| 2026-05-17 | insta-lab | Google Trends API 폐기 대응 → YouTube Data API v3로 source 교체. trend_collector 재작성 |
| 2026-05-16 | insta-lab | Trends 탭 추가 — 외부 트렌드 수집 (NAVER 인기 + YouTube) + 카테고리 가중치 (`account_preferences`) + 가중치 기반 키워드 추출 |
| 2026-05-15 | insta-lab | blog-lab 폐기 → insta-lab 신설. 뉴스 모니터링 → 키워드 추출 → 10페이지 카드 카피·PNG → 텔레그램 푸시 → 수동 인스타 업로드 파이프라인 |
| 2026-05-05 | packs-lab | sign-link / upload / list / delete + admin mint-token + 5GB nginx body limit + Supabase DDL |
| 2026-05-01~06 | music-lab | YouTube 수익화 백엔드 (market_trends·trend_reports DB + 5개 API) + 다중 트랙 FFmpeg concat MP4 |
| 2026-04-28 | realestate-lab | targeting enhancement (5티어 매칭·5축 점수·알림 대상 카운트, realestate-lab push → agent-office RealestateAgent) |
| 2026-04-27 | personal | personal 서비스 분리 마이그레이션 (블로그·투두·포트폴리오 인증) |
| 2026-04-27 | agent-office | v2 — youtube_researcher (YouTube API + pytrends + Billboard) + 알림 |
| 2026-04-15 | lotto | AI 큐레이터 (Claude 기반 주간 브리핑 자동 생성) |

### 1-3. 인프라 / DX

| 항목 | 상태 |
|------|------|
| docker-compose 통합 (10 서비스) | ✅ |
| Gitea Webhook → deployer rsync 자동 배포 | ✅ |
| nginx 라우팅 표 (/api/* 서비스별) | ✅ |
| 배포 환경변수 (PEXELS·YOUTUBE_DATA·VIDEO_DATA_DIR 등) | ✅ |

---

## 2. 진행 중 / 향후 계획

### 2-1. 로또 프리미엄 (Phase 3) — 구독 모델
> 출처: [docs/lotto-premium-roadmap.md](./docs/lotto-premium-roadmap.md)

- [ ] 회원 시스템 (JWT 인증, `users` 테이블)
- [ ] 구독 플랜 (`subscription_plans`, `user_subscriptions`)
- [ ] 결제 연동 (Toss Payments 또는 Stripe)
- [ ] 이메일 발송 자동화 (SendGrid)
- [ ] 소셜 증거 데이터 집계 API (가장 많이 선택된 번호 TOP 10 등)

Phase 1·2 (성과 통계 / 회차별 공략 리포트 / 개인 분석 / 구매 추적)는 이미 완료.

### 2-2. Pet Lab (신규 서비스) — 설계 단계
> 출처: `docs/superpowers/specs/2026-04-07-pet-lab-design.md`, `plans/2026-04-07-pet-lab.md`

- [ ] 컨테이너 추가 + 포트 배정
- [ ] 핵심 도메인 모델 (반려동물 등록·기록·일정)
- [ ] 프론트 페이지 신설

### 2-3. Music YouTube 자동화 후속

- [ ] VideoProjects 실제 렌더링 잡 큐 (현재 스켈레톤)
- [ ] 시장 트렌드 → 자동 음악 생성 트리거 연결
- [ ] Revenue 트래킹 정확도 개선 (YouTube Analytics API)

### 2-4. Travel 영상 지원

- [ ] `travel-proxy`에 영상 메타·썸네일 API 추가
- [ ] `/media/travel/.video-thumb/` 처리
- [ ] `/api/travel/videos` 엔드포인트

### 2-5. 청약 (realestate-lab) 후속

- [ ] 알림 dry-run API (사용자가 사전 시뮬레이션 가능)
- [ ] 신규 매칭 텔레그램 알림 노이즈 필터링 (이미 본 공고 제외)
- [ ] 백오피스용 공고 수동 보정 API

### 2-6. packs-lab 후속

- [ ] 사용자별 다운로드 쿼터 제어
- [ ] 만료된 토큰/링크 정리 스케줄러
- [ ] Vercel SaaS 측 UI 연결 검증

### 2-7. 인프라 일반

- [ ] APScheduler 잡 모니터링 대시보드 (현재 로그 의존)
- [ ] 백업 자동화 (lotto.db / stock.db / 사진 메타)
- [ ] OpenAPI 스펙 통합 (서비스별 자동 수집)

---

## 3. 참고 문서

- 서비스·포트·API 전체 표: [CLAUDE.md](./CLAUDE.md)
- 워크스페이스 통합 가이드: `../CLAUDE.md`
- 프론트엔드 상태: `../web-ui/STATUS.md`
- 설계 스펙: `docs/superpowers/specs/`
- 실행 계획: `docs/superpowers/plans/`
- 로또 프리미엄 로드맵: `docs/lotto-premium-roadmap.md`
