Skip to content

SJU-Capstone-DS-DayOne/Palette-BE

Repository files navigation

Palette: 서로의 취향을 담는 AI 데이트 코스 추천 플랫폼

AI 기반으로 연인 맞춤 데이트 코스를 추천하는 웹 플랫폼입니다. 단순 인기순이나 리뷰순이 아닌, 실제 사용자 리뷰에서 대표 메뉴를 추출하고, 연인 각각의 취향을 반영한 개인화된 추천을 제공합니다.


📷 서비스

image

🔗 링크


👥 팀 구성

  • PM 1명
  • 백엔드 1명 (본인 전담)
  • AI ∙ Data 2명
  • 프론트엔드 1명

🛠 사용 기술



🏢 아키텍쳐

단락 텍스트 (2)


📐 ERD

ERD


✅ 주요 구현 기능

🔧 개발 & 인프라 구축

  • 요구사항 분석 → ERD 설계 및 API 명세서 작성
  • Spring Boot 기반 REST API 서버 개발 (도메인 패키지 구조)
  • GitHub ActionsDocker 기반 CI/CD 파이프라인 구성
  • Docker Compose 기반 멀티 모듈 분리 및 NGINX를 활용한 Blue-Green 무중단 배포 구현
  • (API 서버: EC2 Auto Scaling Group에 포함되어 인스턴스 자동 확장/축소)

🗂️ 도메인 기능

  • 멤버, 커플 API
  • 레스토랑, 메뉴, 리뷰 API
  • 레스토랑 추천 및 데이트코스 생성 API
  • 백오피스 - 레스토랑 관리, 크롤링 데이터 적재(배치) API 구현

🔐 인증 및 보안

  • Spring Security + JWT 인증/인가 구현
  • Access Token은 LocalStorage, Refresh Token은 쿠키에 저장
  • Token Rotation 적용
  • HTTPS 통신을 위한 ELB + ACM 구성

🤝 외부 연동 및 통신

  • WebClient를 통한 추천 시스템과 API 통신 (레스토랑 추천, 유사 유저 리뷰 등)
  • RabbitMQ 기반 비동기 통신 (유저 임베딩 생성 및 업데이트)
  • MySQLMongoDB, 그리고 **Amazon S3(+ CloudFront)**와 연동
  • 원활한 커뮤니케이션과 유기적인 협업을 위해 Swagger로 REST API 문서화를 진행함

📈 성능 개선 및 기술 적용 사례

  • Lambda@Edge + CloudFront로 이미지 로딩 시간 약 82% 개선
  • RabbitMQ 기반 유저 임베딩 업데이트 비동기 처리로 API 응답 시간 89% 개선
  • MongoDB + Spring Batch로 데이터 적재 자동화, 크롤러의 도메인 의존성 해소
  • 지역 컬럼 인덱스 적용으로 지역 조건부 쿼리 성능 86% 향상

🏆 수상

  • 2024 세종대학교 제17회 창의설계경진대회 대상 수상

About

서로의 취향을 담는 새로운 데이트 코스 추천 플랫폼

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published