(2024년 국민체육진흥공단 공공데이터활용 경진대회 수상작 [장려상 4위])

| 이름 | 송해찬 | 구지혜 | 최성현 | 김희찬 |
|---|---|---|---|---|
| 역할 |
Backend DevOps |
Frontend | Backend |
Design Frontend |
| GitHub |
|
|
|
|
- Spring Boot 기반 회원가입/로그인/JWT 인증 구현 및 Bean Validation으로 입력 검증·예외 표준화
- Redis를 활용한 Access Token 블랙리스트(로그아웃/강제 만료) 적용으로 Stateless 인증의 한계를 보완
- 공공데이터(체육 이용권) CSV를 필터링 → 지오코딩(Kakao API) → MySQL 적재까지 자동화한 데이터 파이프라인 구축
- 위·경도를 파이썬을 이용하여 공간데이터(Point, SRID 4326)로 저장하고, Hibernate Spatial/MySQL Spatial로 반경 내 인기 이용권·최근 월별 인기 스포츠 Top3 기능 구현
- 사용자 주소(Point) 기반 반경 내 이용권 조회: Hibernate Spatial + MySQL Spatial을 활용해 ST_Buffer, ST_Contains로 위치 기반 필터링 구현
- 인기 기준 정의 및 정렬: COURSE_REQST_NMPR_CO(신청 인원수)를 popularity 지표로 사용해 내림차순 정렬
- 장애 여부(disabled) 분기 지원: 회원의 disabled 속성과 이용권의 disabled 속성을 조건으로 적용해 대상군을 분리
- 최근 N개월 인기 스포츠 Top3 집계: 월별 기간을 계산하여 해당 기간 이용권을 조회 → 중분류명 기준으로 그룹핑 및 합산 → 상위 3개만 반환(LinkedHashMap으로 순서 유지)
- 조회 성능 고려한 Fetch Join: 인기/상세 조회에서 JOIN FETCH로 N+1 가능성을 줄이고 응답 DTO로 매핑
개발 리포지토리 : https://github.com/TUK-SPORTIFY/sportify-frontend
개발 리포지토리 : https://github.com/TUK-SPORTIFY/sportify-backend










