전국 축제 정보를 한눈에 확인하고, 리뷰와 찜을 통해 나만의 축제 경험을 관리하는 서비스입니다.
공공데이터포털 관광공사 API를 활용하여 전국 축제 정보를 제공합니다.
사용자는 축제 목록/상세 조회, 지역/상태/월별 검색, 내 주변 축제 조회를 할 수 있습니다.
로그인한 사용자는 축제를 찜하거나 리뷰를 작성하고, 마이페이지에서 활동 내역을 확인할 수 있습니다.
관리자는 축제 데이터 동기화, 신고 리뷰 관리, 신고 회원 관리 기능을 사용할 수 있습니다.
이 서비스는 전국 축제 정보를 편리하게 탐색하고, 사용자 경험을 리뷰와 찜으로 관리할 수 있도록 하는 것을 목표로 합니다.
축제 데이터는 공공데이터포털 관광공사 API를 통해 가져오고, 서비스 DB에 저장하여 관리합니다.
축제 검색은 지역, 진행 상태, 월, 키워드, 내 위치 기반 조건을 지원합니다.
회원 인증은 JWT 기반으로 구현하였으며, Access Token과 Refresh Token을 분리하여 인증과 재발급을 처리합니다.
리뷰, 좋아요, 신고, 관리자 블라인드 처리 등 사용자 참여와 운영 관리를 위한 기능을 제공합니다.
Client
└─> Spring Boot API Server
├─ Auth / Member
│ ├─ 회원가입
│ ├─ 로그인
│ ├─ JWT 인증
│ ├─ 토큰 재발급
│ └─ 마이페이지
│
├─ Festival
│ ├─ 축제 목록 조회
│ ├─ 축제 상세 조회
│ ├─ QueryDSL 기반 검색
│ ├─ 주변 축제 조회
│ └─ 공공데이터 API 동기화
│
├─ Review
│ ├─ 리뷰 작성
│ ├─ 리뷰 조회
│ ├─ 리뷰 수정
│ ├─ 리뷰 삭제
│ ├─ 리뷰 좋아요
│ └─ 리뷰 신고
│
├─ Bookmark
│ ├─ 축제 찜 등록
│ └─ 축제 찜 취소
│
├─ Admin
│ ├─ 회원 관리
│ ├─ 신고 리뷰 관리
│ └─ 축제 데이터 동기화 관리
│
└─ Global
├─ Security
├─ JWT
├─ Exception Handler
├─ Scheduler
└─ WebMvc
src/
├─ main/
│ ├─ java/com/example/
│ │ ├─ FestivalApplication.java
│ │ ├─ domain/
│ │ │ ├─ admin/
│ │ │ │ ├─ controller/
│ │ │ │ ├─ dto/
│ │ │ │ └─ service/
│ │ │ ├─ bookmark/
│ │ │ │ ├─ controller/
│ │ │ │ ├─ dto/
│ │ │ │ ├─ entity/
│ │ │ │ ├─ repository/
│ │ │ │ └─ service/
│ │ │ ├─ festival/
│ │ │ │ ├─ client/
│ │ │ │ ├─ controller/
│ │ │ │ ├─ converter/
│ │ │ │ ├─ dto/
│ │ │ │ ├─ entity/
│ │ │ │ ├─ event/
│ │ │ │ ├─ repository/
│ │ │ │ └─ service/
│ │ │ ├─ member/
│ │ │ │ ├─ controller/
│ │ │ │ ├─ dto/
│ │ │ │ ├─ entity/
│ │ │ │ ├─ repository/
│ │ │ │ └─ service/
│ │ │ ├─ review/
│ │ │ │ ├─ controller/
│ │ │ │ ├─ dto/
│ │ │ │ ├─ entity/
│ │ │ │ ├─ repository/
│ │ │ │ └─ service/
│ │ │ ├─ reviewlike/
│ │ │ │ ├─ dto/
│ │ │ │ ├─ entity/
│ │ │ │ └─ repository/
│ │ │ └─ reviewreport/
│ │ │ ├─ controller/
│ │ │ ├─ dto/
│ │ │ ├─ entity/
│ │ │ ├─ repository/
│ │ │ └─ service/
│ │ └─ global/
│ │ ├─ config/
│ │ ├─ entity/
│ │ ├─ exception/
│ │ ├─ exceptionHandler/
│ │ ├─ init/
│ │ ├─ jwt/
│ │ ├─ response/
│ │ ├─ rsData/
│ │ ├─ scheduler/
│ │ ├─ security/
│ │ └─ webMvc/
│ └─ resources/
│ ├─ application.yaml
│ ├─ application-mysql.yaml
│ └─ application-test.yaml
└─ test/
└─ java/com/example/
회원가입
로그인
JWT Access Token 발급
Refresh Token HttpOnly Cookie 저장
Access Token 재발급
로그아웃
Access Token blacklist 처리
회원 탈퇴 및 탈퇴 회원 비식별화
마이페이지 조회
내가 작성한 리뷰 조회
내가 찜한 축제 조회
축제 목록 조회
축제 상세 조회
지역/월/상태/키워드 기반 검색
내 위치 기반 주변 축제 조회
공공데이터 API 축제 목록 동기화
축제 상세 정보 보강
동기화 실패/미처리 대상 관리
축제 리뷰 작성
축제별 리뷰 목록 조회
리뷰 수정
리뷰 삭제
리뷰 좋아요
리뷰 신고
축제 찜 등록
축제 찜 취소
마이페이지 찜 목록 조회
회원 목록 조회
신고 누적 회원 조회
신고 리뷰 조회
리뷰 블라인드 처리
관리자 회원 탈퇴 처리
축제 데이터 동기화 실행
축제 상세 보강 실행
축제 동기화 상태 조회
TODO: ERD 이미지 추가
Swagger 접속:
http://localhost:8080/swagger-ui/index.html
기능
Method
URL
회원가입
POST
/api/auth/signup
로그인
POST
/api/auth/login
토큰 재발급
POST
/api/auth/reissue
로그아웃
POST
/api/auth/logout
기능
Method
URL
축제 목록/검색
GET
/api/festivals
축제 상세
GET
/api/festivals/{id}
주변 축제 조회
GET
/api/festivals/nearby
기능
Method
URL
내 정보 조회
GET
/api/users/me
내가 쓴 리뷰 조회
GET
/api/users/me/reviews
내가 찜한 축제 조회
GET
/api/users/me/bookmarks
회원 탈퇴
DELETE
/api/users/me/withdraw
기능
Method
URL
리뷰 작성
POST
/api/festivals/{festivalId}/reviews
리뷰 목록 조회
GET
/api/festivals/{festivalId}/reviews
리뷰 수정
PATCH
/api/reviews/{reviewId}
리뷰 삭제
DELETE
/api/reviews/{reviewId}
리뷰 좋아요
POST
/api/reviews/{reviewId}/like
리뷰 좋아요 취소
DELETE
/api/reviews/{reviewId}/like
리뷰 신고
POST
/api/reviews/{reviewId}/reports
기능
Method
URL
축제 찜
POST
/api/festivals/{festivalId}/bookmark
축제 찜 취소
DELETE
/api/festivals/{festivalId}/bookmark
기능
Method
URL
회원 목록 조회
GET
/api/admin/members
신고 회원 조회
GET
/api/admin/members/reported
신고 리뷰 조회
GET
/api/admin/reviews/reported
리뷰 블라인드 처리
PATCH
/api/admin/reviews/{reviewId}/status
회원 강제 탈퇴
PATCH
/api/admin/members/{memberId}/withdraw
축제 목록+상세 동기화
POST
/api/admin/festivals/sync-and-enrich
축제 목록 동기화
POST
/api/admin/festivals/sync-list
미처리 상세 보강
POST
/api/admin/festivals/enrich-pending
단건 상세 보강
POST
/api/admin/festivals/{contentId}/enrich
동기화 상태 조회
GET
/api/admin/festivals/sync-status
주요 테스트 범위:
Auth API
Festival API
Festival 동기화/재시도
QueryDSL 검색
Bookmark
Review
Review Like
Review Report
Admin
Global Exception
TODO: 기능 시연 GIF 추가
축제 목록/상세 조회
지역/상태/월별 축제 검색
내 주변 축제 조회
회원가입/로그인/로그아웃
축제 찜 등록/취소
리뷰 작성/수정/삭제
리뷰 좋아요/신고
관리자 신고 리뷰 관리
관리자 축제 데이터 동기화
📌 Commit Message Convention
type
description
feat
새로운 기능 추가
fix
버그 수정
docs
문서 수정
style
코드 포맷팅, 세미콜론 누락 등 코드 변경 없음
refactor
코드 리팩토링
test
테스트 코드 추가 및 수정
chore
빌드 설정, 패키지 매니저 설정 등 기타 작업
이름
GitHub
역할
박현준
github.com/Phj1225
Member / Auth: 회원가입, 로그인, JWT 인증 인가
김지영
github.com/jyeoniop
Festival 조회: 다중 필터 검색, 정렬, 지도 탐색
김진세
github.com/wlstp8473
Festival 공공 API 동기화: 데이터 수집/적재, 에러 핸들링
한정목
github.com/mokmok2yam
Member / Auth, Admin: 신고 리뷰 제재, 회원 강제 탈퇴
김민혁
github.com/zenesix
Review / Like / Bookmark: 리뷰 CRUD, 좋아요/찜, 평점 계산, 신고 접수