README.md / STATUS.md가 blog-lab을 운영 중인 18700 포트 컨테이너로 설명하고 insta-lab/personal/packs-lab을 누락했던 문제 정리. CLAUDE.md를 source of truth로 다음을 갱신: - 컨테이너 표 (11개로 정합화) - 디렉토리 구조 (insta-lab/personal/packs-lab 추가) - 빠른 시작 URL 표 - blog-lab 섹션 → insta-lab 파이프라인 설명 - agent-office 표 (InstaAgent + YouTubeResearcher 반영) - 스케줄러 잡 목록 (09:00 Insta trends, 09:30 Insta extract, 16:30 screener 등) - DB 표 (insta.db + personal.db + Supabase pack_files 추가) - .env 예시 (YOUTUBE_DATA_API_KEY, ADMIN_API_KEY, INSTA_LAB_URL 등) - STATUS 최근 작업: 2026-05-15~17 인스타 + 보안 fix 이력
112 lines
5.5 KiB
Markdown
112 lines
5.5 KiB
Markdown
# 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`
|