지역 반찬 매물을 기반으로 사용자 맞춤형 반찬 추천과 경로 최적화를 제공하는 백엔드 서버입니다.
Spring Boot를 기반으로 구축되었으며, FastAPI 기반 AI 추천 서버와 연동되어 동작합니다.
- Java 21
- Spring Boot 3.5.3
- MySQL : 메인 데이터베이스
- Swagger (springdoc-openapi) : API 문서화
- FastAPI (Python) : AI 추천 서버
- GPT-4o-mini
- 🍳 요리 레시피 생성 (사용자가 구매한 반찬 기반)
- 🥗 식단 테마 기반 추천 (다이어트/키토/저염/벌크업/혈당)
- Fine-tuning
- GPT-4o-mini를 영양성분표 데이터로 파인튜닝
→ 매물의 실제 영양 성분 분석 후 맞춤형 추천 제공
- GPT-4o-mini를 영양성분표 데이터로 파인튜닝
- Gradle : 빌드 & 의존성 관리
- GitHub Actions : CI/CD 파이프라인
- Build & Test
- Docker Build & Push → DockerHub 업로드
- Docker : 컨테이너화 및 배포
📦 src
┣ 📂 main
┃ ┣ 📂 java/com/example/Centralthon
┃ ┃ ┣ 📂 domain # 도메인 로직
┃ ┃ ┣ 📂 global # 공통 설정 및 유틸
┃ ┃ ┣ 📂 core/exception # 전역 예외 처리
┃ ┣ 📂 resources
┃ ┃ ┣ application.properties # 환경 설정
┣ 📂 test # 단위/통합 테스트
- 사용자의 현재 위치를 기준으로 반경 2km 이내의 매물 목록 조회
- 가게 정보, 메뉴 정보, 가격, 할인율 포함
- 사용자가 매물을 장바구니에 담고 픽업 예약하면
해당 가게들을 경유하는 도보 최적 경로(TSP 기반) 제공 - Tmap API + 내부 최적화 알고리즘 활용
- 구매한 반찬들을 조합하여 만들 수 있는 레시피 자동 생성
- GPT-4o-mini 활용
- 다섯 가지 식단 테마 제공:
- 다이어트 / 키토 / 저염 / 벌크업 / 혈당 조절
- GPT-4o-mini Fine-tuning → 실제 영양성분표 데이터를 학습시켜, 매물의 성분을 기반으로 테마별 맞춤형 추천 제공
- Gradle 빌드 → Spring Boot JAR 생성
- Docker 이미지 빌드
- DockerHub 푸시 (latest, commit sha 태그)
- 대상 서버에서 DockerHub에서 pull
- 컨테이너 재기동(교체 배포)
👉 GitHub Actions에서 main 브랜치에 push 시 자동 실행
GET /api/menus→ 사용자 위치 기반 반경 2km 내 매물 조회POST /api/routes/directions→ 픽업 예약 기반 최적 경로 생성POST /api/menus/tips→ 구매 반찬 기반 요리 레시피 추천 (AI)POST /api/menus/recommend→ 식단 테마 기반 추천 (AI Fine-tuning)
Swagger 문서:
👉 https://52.78.244.98.nip.io/api/swagger-ui/index.html