Skip to content

moonxxpower/Running-Handai-BE

 
 

Repository files navigation

러닝한다이 (Running Handai)

부산의 다채로운 매력을 따라 달리는 데이터 기반 러닝코스 추천 플랫폼, 러닝한다이입니다

프로젝트 성과

  • 🏆 2025 관광데이터 활용 공모전 우수상 수상
  • 🎖️ 2025 관광데이터 활용 공모전 부산관광공사 특별상 수상

서비스 소개

1 2 3 4 5 6 7 8 9 10 11 12

프로젝트 소개

데이터 기반 러닝 코스 추천 플랫폼, '러닝한다이'의 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 파이프라인을 기반으로 안정적인 인프라 구축

주요 기능

1. 추천 코스 탐색

부산 전역에 걸쳐 행정구역별·테마별 다양한 추천 코스를 조회할 수 있습니다.

사용자는 현위치 기준 반경 5km 이내 코스, 부산의 특정 구역 코스, 또는 특정 테마에 해당하는 코스를 선택해 자신의 취향에 맞게 탐색할 수 있습니다.

2. 코스 상세 조회

특정 코스에 대하여 고도 정보, 전체 길이, 코스 실루엣 등 기본 정보부터 AI 기반 난이도 분석, 코스 주변 즐길거리, 사용자 리뷰 및 평점까지 다양한 정보를 한눈에 확인할 수 있습니다.

3. 코스 생성 및 공유

사용자는 지도에서 웨이포인트를 터치해 경로를 그리거나, 기존 GPX 파일을 업로드하여 손쉽게 자신만의 러닝 코스를 만들 수 있습니다.

생성된 코스는 거리, 예상 러닝 속도, 최대·최소 고도 등을 확인할 수 있으며, 되돌리기·다시 실행, 출발·종료 지점 전환, 코스 초기화, 마커 드래그 앤 드롭 등 편집 기능을 통해 원하는 형태로 수정한 뒤 공유할 수 있습니다.

4. 코스 리뷰

사용자는 각 코스에 평점과 리뷰를 직접 남길 수 있으며, 다른 사용자들의 후기와 전체 평점도 함께 확인할 수 있습니다.

5. 코스 즐겨찾기

마음에 드는 코스를 북마크해 두고 언제든 빠르게 다시 찾아볼 수 있습니다.

6. 마이페이지

마이페이지에서는 내가 생성한 코스와 즐겨찾기한 코스를 한눈에 관리할 수 있으며, 러닝과 관련된 용어를 정리한 러닝 용어사전도 함께 제공합니다.

기술 스택

Environment

Development

Test

Communication

ERD

runninghandai_ERD

시스템 아키텍처

infra_system

디렉토리 구조

각 도메인은 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, 기획 디자인 프론트엔드 개발
문수현 한슬기
백엔드 개발 백엔드 개발

About

[2025 관광데이터 활용 공모전] 부산 러닝코스 추천 웹 서비스 (🏆 우수상 ∙ 특별상)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Java 98.1%
  • Other 1.9%