diff --git a/CLAUDE.md b/CLAUDE.md index a4fb9c0..22bb026 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -349,9 +349,18 @@ docker compose up -d ### travel-proxy (travel-proxy/) - 원본 사진: `/data/travel/` (RO) - 썸네일 캐시: `/data/thumbs/` (RW) +- DB: `/data/thumbs/travel.db` (photos, album_covers 테이블) - 메타: `/data/travel/_meta/region_map.json`, `regions.geojson` -- 썸네일: 480×480 리사이징 (Pillow), 온디맨드 생성 후 영구 캐시 -- 메모리 캐시: TTL 300초 (앨범 스캔 결과) +- 파일 구조: `main.py`, `db.py`, `indexer.py` +- 썸네일: 480×480 리사이징 (Pillow), 동기화 시 사전 생성 + 온디맨드 폴백 +- 데이터 흐름: 수동 sync → 폴더 스캔 → SQLite 인덱싱 + 썸네일 일괄 생성 + +**travel.db 테이블** + +| 테이블 | 설명 | +|--------|------| +| `photos` | 사진 인덱스 (album, filename, mtime, has_thumb) | +| `album_covers` | 앨범별 커버 사진 지정 | **travel-proxy API 목록** @@ -359,7 +368,9 @@ docker compose up -d |--------|------|------| | GET | `/api/travel/regions` | 지역 GeoJSON | | GET | `/api/travel/photos` | 사진 목록 (region, page=1, size=20) | -| POST | `/api/travel/reload` | 메모리 캐시 초기화 | +| POST | `/api/travel/sync` | 폴더 스캔 → DB 동기화 + 썸네일 생성 | +| GET | `/api/travel/albums` | 앨범 목록 + 사진 수 + 커버 정보 | +| PUT | `/api/travel/albums/{album}/cover` | 앨범 커버 지정 | ### blog-lab (blog-lab/) - 블로그 마케팅 수익화 서비스 (키워드 분석 → AI 글 생성 → 마케팅 강화 → 품질 리뷰 → 포스팅 → 수익 추적)