대학생과 주변 매장 사장을 연결하는 위치 기반 할인 탐색 서비스. 학교 기준 또는 현재 좌표 기반으로 주변 할인 매장과 메뉴를 검색한다.
학교 주변 할인 매장 탐색 서비스에서 매 요청마다 DB에서 거리 계산을 수행하면 검색 응답이 느리고, 가게 수가 늘수록 쿼리 비용이 선형으로 증가하는 구조였다. 또한 학생·사장 역할이 다른데 동일 검색 API에서 사용자 컨텍스트를 분리해서 처리해야 했다.
Redis Geo 기반 위치 검색 시스템 설계 및 구현, 메뉴·매장 API 구조화, S3 파일 업로드 파이프라인 구현, JWT role 기반 인증 연동
· 애플리케이션 부팅 시 전체 가게·대학 위치를 Redis Geo에 적재해 거리 계산을 DB 외부로 분리 · 학교 기준 검색은 Redis Geo distance로 처리하고, 사용자가 임의 좌표를 전달하는 경우는 Haversine 직접 계산으로 분기 · 검색 결과에 TTL 10분 캐시를 적용해 동일 검색어 반복 요청을 DB 및 Geo 계산 없이 처리 · JWT에서 role을 추출해 학생·사장 컨텍스트를 검색 API 내부에서 분기 처리 · 메뉴 생성은 storeId 컨텍스트가 필수이므로 /stores/{storeId}/menus로 구성하고, 수정·삭제는 menuId 단독 식별로 분리해 REST 리소스 계층 정리
· S3 기반 메뉴 이미지 및 가게 배너 업로드 기능 운영 · TTL 10분, 반경 5km를 정책 상수로 적용하고 운영 지표 기반 조정 과제를 남김 · 카카오 로그인/JWT 초기 구현을 검색 및 스토어 도메인의 role 분기 로직에 통합하는 리팩토링 담당
이 프로젝트가 속한 경력 또는 활동 경험입니다.
/projects/밥이득
예, 순서 2
Spring Boot 3.3, Java 17, MySQL, QueryDSL, Redis, AWS S3, JWT, Kakao OAuth, OpenFeign, Google Cloud Vision, Swagger