Skip to content

RunChuck/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

No packages published

Contributors 2

  •  
  •  

Languages