부산의 다채로운 매력을 따라 달리는 데이터 기반 러닝코스 추천 플랫폼, 러닝한다이입니다
- 🏆 2025 관광데이터 활용 공모전 우수상 수상
- 🎖️ 2025 관광데이터 활용 공모전 부산관광공사 특별상 수상
- 서비스 바로가기 : https://runninghandai.com/
- 시연 영상 : https://drive.google.com/file/d/1AQqq0j2C61L-bnMzuSFbhwNnwJe4bgQn/view?usp=sharing
데이터 기반 러닝 코스 추천 플랫폼, '러닝한다이'의 API 서버를 구현한 백엔드 프로젝트입니다.
Spring Boot 기반으로 구축되었으며, 사용자의 위치/테마 기반 코스 추천, 코스 생성, 리뷰 관리 등 핵심 기능을 위한 비즈니스 로직을 담당합니다. 공공데이터 API를 연동하여 코스 및 즐길거리 추천 기능을 구현하였으며, AI 기반의 코스 난이도 분석과 위치 기반 서비스를 안정적인 RESTful API로 제공합니다.
- Core Logic : 사용자 위치/취향 기반 즐길거리 및 코스 필터링 로직 구현
- Spatial Search : 위치 좌표(GPS) 기반 주변 즐길거리 및 코스 검색 최적화
- Data Pipeline : 공공데이터 API 2종 연동 및 DB 동기화/전처리 파이프라인 구축
- API Server: 클라이언트(Web)와의 통신을 위한 RESTful API 설계 및 배포
- System Infra : 무중단 배포와 자동화된 CI/CD 파이프라인을 기반으로 안정적인 인프라 구축
부산 전역에 걸쳐 행정구역별·테마별 다양한 추천 코스를 조회할 수 있습니다.
사용자는 현위치 기준 반경 5km 이내 코스, 부산의 특정 구역 코스, 또는 특정 테마에 해당하는 코스를 선택해 자신의 취향에 맞게 탐색할 수 있습니다.
특정 코스에 대하여 고도 정보, 전체 길이, 코스 실루엣 등 기본 정보부터 AI 기반 난이도 분석, 코스 주변 즐길거리, 사용자 리뷰 및 평점까지 다양한 정보를 한눈에 확인할 수 있습니다.
사용자는 지도에서 웨이포인트를 터치해 경로를 그리거나, 기존 GPX 파일을 업로드하여 손쉽게 자신만의 러닝 코스를 만들 수 있습니다.
생성된 코스는 거리, 예상 러닝 속도, 최대·최소 고도 등을 확인할 수 있으며, 되돌리기·다시 실행, 출발·종료 지점 전환, 코스 초기화, 마커 드래그 앤 드롭 등 편집 기능을 통해 원하는 형태로 수정한 뒤 공유할 수 있습니다.
사용자는 각 코스에 평점과 리뷰를 직접 남길 수 있으며, 다른 사용자들의 후기와 전체 평점도 함께 확인할 수 있습니다.
마음에 드는 코스를 북마크해 두고 언제든 빠르게 다시 찾아볼 수 있습니다.
마이페이지에서는 내가 생성한 코스와 즐겨찾기한 코스를 한눈에 관리할 수 있으며, 러닝과 관련된 용어를 정리한 러닝 용어사전도 함께 제공합니다.
각 도메인은 controller, service, repository, entity, dto 레이어를 기반으로 구성되며, Course와 Spot 도메인은 client, scheduler, event 레이어를 추가로 사용합니다. 전역 영역은 config, jwt, oauth, logging, response, util 등 공통 모듈을 담당합니다.
📦 Running-Handai-BE
├── 📁 docs
├── 📁 scripts
├── 📁 sql
├── 📁 src
│ ├── 📁 main
│ │ ├── 📁 java
│ │ │ └── 📁 com
│ │ │ └── 📁 server
│ │ │ └── 📁 running_handai
│ │ │ ├── 📁 domain
│ │ │ │ ├── 📁 admin
│ │ │ │ │ ├── controller
│ │ │ │ │ ├── dto
│ │ │ │ │ └── service
│ │ │ │ ├── 📁 bookmark
│ │ │ │ │ ├── controller
│ │ │ │ │ ├── dto
│ │ │ │ │ ├── entity
│ │ │ │ │ ├── repository
│ │ │ │ │ └── service
│ │ │ │ ├── 📁 course
│ │ │ │ │ ├── client
│ │ │ │ │ ├── controller
│ │ │ │ │ ├── dto
│ │ │ │ │ ├── entity
│ │ │ │ │ ├── event
│ │ │ │ │ ├── repository
│ │ │ │ │ ├── scheduler
│ │ │ │ │ └── service
│ │ │ │ ├── 📁 member
│ │ │ │ │ ├── controller
│ │ │ │ │ ├── dto
│ │ │ │ │ ├── entity
│ │ │ │ │ ├── repository
│ │ │ │ │ └── service
│ │ │ │ ├── 📁 review
│ │ │ │ │ ├── controller
│ │ │ │ │ ├── dto
│ │ │ │ │ ├── entity
│ │ │ │ │ ├── repository
│ │ │ │ │ └── service
│ │ │ │ └── 📁 spot
│ │ │ │ ├── client
│ │ │ │ ├── controller
│ │ │ │ ├── dto
│ │ │ │ ├── entity
│ │ │ │ ├── repository
│ │ │ │ ├── scheduler
│ │ │ │ └── service
│ │ │ ├── 📁 global
│ │ │ │ ├── config
│ │ │ │ ├── entity
│ │ │ │ ├── jwt
│ │ │ │ ├── log
│ │ │ │ ├── oauth
│ │ │ │ ├── response
│ │ │ │ └── util
│ │ │ └── 📄 RunningHandaiApplication.java
│ │ └── 📁 resources
│ └── 📁 test
│ └── 📁 java
│ └── (도메인별 서비스 단위 테스트)
├── 📄 build.gradle
├── 📄 docker-compose.yml
├── 📄 Dockerfile
├── 📄 appspec.yml
└── 📄 .env.example팀명 : TeamChuck
개발 기간 : 2025.05 ~ 2025.10
| 안소용 | 제예영 | 우인경 |
|---|---|---|
![]() |
![]() |
![]() |
| PM, 기획 | 디자인 | 프론트엔드 개발 |
| 문수현 | 한슬기 |
|---|---|
![]() |
|
| 백엔드 개발 | 백엔드 개발 |















