docs: CLAUDE.md·README.md 최신 상태 반영
This commit is contained in:
58
CLAUDE.md
58
CLAUDE.md
@@ -25,6 +25,8 @@
|
||||
| `/lab/day-calc` | `DayCalc` | 날짜 계산기 |
|
||||
| `/lab/music` | `MusicStudio` | AI 음악 생성 스튜디오 (Sonic Forge) |
|
||||
| `/todo` | `Todo` | 태스크 보드 |
|
||||
| `/blog-lab` | `BlogMarketing` | 블로그 마케팅 수익화 대시보드 |
|
||||
| `/agent-office` | `AgentOffice` | AI 에이전트 가상 오피스 (WebSocket + 채팅) |
|
||||
|
||||
라우트 정의: `src/routes.jsx` / 라우터 설정: `src/Router.jsx`
|
||||
|
||||
@@ -99,6 +101,19 @@ proxy: {
|
||||
| AI 음악 | GET | `/api/music/status/:task_id` → `{ status, progress, message, audio_url?, error?, track? }` |
|
||||
| AI 음악 라이브러리 | GET/POST | `/api/music/library` — response: `{ tracks: [...] }` |
|
||||
| AI 음악 라이브러리 | DELETE | `/api/music/library/:id` |
|
||||
| 여행 | GET | `/api/travel/regions`, `/api/travel/albums`, `/api/travel/photos` |
|
||||
| 여행 | POST | `/api/travel/sync` |
|
||||
| 여행 | PUT | `/api/travel/albums/:album/cover`, `/api/travel/albums/:album/region` |
|
||||
| 여행 | PUT | `/api/travel/regions/:id` |
|
||||
| 블로그마케팅 | POST | `/api/blog-marketing/research`, `/api/blog-marketing/generate` |
|
||||
| 블로그마케팅 | GET | `/api/blog-marketing/posts`, `/api/blog-marketing/dashboard` |
|
||||
| 블로그마케팅 | POST | `/api/blog-marketing/market/:id`, `/api/blog-marketing/review/:id` |
|
||||
| 에이전트 | GET | `/api/agent-office/agents`, `/api/agent-office/states` |
|
||||
| 에이전트 | POST | `/api/agent-office/command`, `/api/agent-office/approve` |
|
||||
| 에이전트 | WS | `/api/agent-office/ws` |
|
||||
| 부동산 | GET | `/api/realestate/announcements`, `/api/realestate/matches` |
|
||||
| 부동산 | PUT | `/api/realestate/profile` |
|
||||
| AI 큐레이터 | GET | `/api/lotto/briefing/latest`, `/api/lotto/curator/usage` |
|
||||
|
||||
---
|
||||
|
||||
@@ -260,9 +275,46 @@ handleGenerate()
|
||||
|
||||
## Travel 갤러리 (`/travel`)
|
||||
|
||||
- 테마: "Dark Room" (배경 `#0f0c09`, 서체 Cormorant Garamond + Space Mono)
|
||||
- 사진 URL: `/media/travel/...` 형식 → `vite.config.js` `/media` 프록시로 처리
|
||||
- 프로덕션 nginx에도 `location /media/` 프록시 블록 필요
|
||||
테마: "Dark Room" (배경 `#0f0c09`, 서체 Cormorant Garamond + Space Mono)
|
||||
|
||||
### 파일 구조
|
||||
|
||||
| 파일 | 역할 |
|
||||
|------|------|
|
||||
| `src/pages/travel/Travel.jsx` | 메인 페이지 — 앨범 카드 목록 + MiniMap |
|
||||
| `src/pages/travel/AlbumCard.jsx` | 앨범 썸네일 카드 (커버 이미지 + 사진 수) |
|
||||
| `src/pages/travel/AlbumDetail.jsx` | 앨범 상세 오버레이 — 사진/영상 탭 + 지역 편집 |
|
||||
| `src/pages/travel/MasonryGrid.jsx` | CSS columns 기반 Masonry 레이아웃 + 무한 스크롤 |
|
||||
| `src/pages/travel/HeroLightbox.jsx` | 전체화면 사진 뷰어 — 스와이프/키보드 네비게이션 |
|
||||
| `src/pages/travel/MiniMap.jsx` | 접이식 Leaflet 지도 — GeoJSON 지역 + 핀 마커 |
|
||||
| `src/pages/travel/RegionPinPicker.jsx` | 지도 핀 위치 지정 모달 (Leaflet 클릭 → 좌표 저장) |
|
||||
| `src/pages/travel/VideoTab.jsx` | 영상 탭 (준비 중) |
|
||||
|
||||
### 핵심 기능
|
||||
|
||||
- **지역 관리**: GeoJSON 기반 지역 선택 → 앨범 필터링 + 지역 변경 + 핀 좌표 지정
|
||||
- **앨범 카드**: 커버 사진, 지역 라벨, 사진 수 표시, 접근성 accent 색상
|
||||
- **Masonry 그리드**: 40장 단위 청크 로딩, IntersectionObserver 기반 무한 스크롤
|
||||
- **Lightbox**: 앨범 커버 지정, 스와이프/키보드 네비게이션, 추가 로딩 지원
|
||||
- **MiniMap**: Polygon(기존 지역) + CircleMarker(커스텀 핀) 이중 렌더링
|
||||
- **지역 편집**: AlbumDetail에서 인라인 편집 + 자동완성 + "위치 지정" 버튼
|
||||
|
||||
### API 연동
|
||||
|
||||
| 메서드 | 경로 | 설명 |
|
||||
|--------|------|------|
|
||||
| GET | `/api/travel/regions` | GeoJSON (커스텀 지역 포함) |
|
||||
| GET | `/api/travel/photos?region=X&page=N&size=40` | 사진 페이지네이션 |
|
||||
| GET | `/api/travel/albums` | 앨범 목록 + cover + region |
|
||||
| POST | `/api/travel/sync` | 폴더 동기화 |
|
||||
| PUT | `/api/travel/albums/{album}/cover` | 커버 지정 |
|
||||
| PUT | `/api/travel/albums/{album}/region` | 지역 변경 |
|
||||
| PUT | `/api/travel/regions/{id}` | 핀 좌표 저장 |
|
||||
|
||||
### 미디어 URL
|
||||
- 사진: `/media/travel/{album}/{filename}`
|
||||
- 썸네일: `/media/travel/.thumb/{album}/{filename}`
|
||||
- `vite.config.js` `/media` 프록시로 처리, 프로덕션 nginx에서 직접 서빙
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in New Issue
Block a user