여행 맛집 아카이브
여행지·맛집 기록, 사용자가 올린 내용의 AI 정리, Google Maps 지도 대시보드.
Vue 3FastAPIPostgreSQLKubernetesMinikubeGoogle GenAI
- 사용자가 올린 글·이미지 AI 정리
- Google Maps + MarkerClusterer 지도 대시보드
- prod/dev 환경 분리 배포
- CI/CD 자동 배포
구현 구성
프론트엔드
- Vue 3 + Vite + Tailwind
- Google Maps API + MarkerClusterer
- Google OAuth 로그인, 역할 기반 UI (읽기/작성/관리자)
백엔드
- FastAPI + PostgreSQL
- Google OAuth (Authlib) + JWT / API Key 이중 인증
- 백그라운드 아카이브 워커 큐 (중복 처리 락)
배포
- Minikube Kubernetes, prod/dev 환경 분리
- Ingress Controller → 호스트 Nginx 프록시
- CI/CD:
main프로덕션,develop개발
API
| 라우터 | 역할 |
|---|---|
/api/auth | OAuth, 세션·API Key 발급 |
/api/spots | 스팟 CRUD, 국가/지역 필터, 통합 검색 |
/api/archive | 텍스트·이미지 → GenAI 분석 |
/api/admin | 사용자 역할(admin/write/read) 관리 |
데이터 흐름
- 사용자가 기록과 이미지를 등록
archive워커가 내용을 정리하고 AI로 분석- 결과를 DB에 저장하고 지도에 마커를 표시