Skip to content

lyn0719/Algorithm_2025-1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

🚲 서울 자전거 경로 추천 서비스

서울시 공공데이터를 기반으로, 실시간 혼잡도·사고위험을 반영한 자전거 경로를 추천하는 Flask 기반 백엔드 서비스입니다.


① 실행 환경 안내

  • 개발 도구: Visual Studio Code (VSCode)
  • Python 버전: 3.9 이상 권장
  • 실행 방식: 로컬 실행 또는 WSGI 서버 배포 가능
  • 지도 기반 경로 탐색: OSMNX + NetworkX 활용

⚠️ Colab 환경에서는 GUI 기반 지도 출력과 Flask 실행에 제약이 있으므로 로컬 실행을 권장합니다.


② 실행 시 필요한 라이브러리

  • 아래 라이브러리들은 requirements.txt에 명시되어 있습니다.

③ 실행 전 환경변수 설정 (.env)

서울시 공공데이터 API 인증키를 아래와 같이 .env 파일에 저장해주세요. 현재는 같이 제공되었습니다.

SEOUL_API_KEY=발급받은_실시간_자전거_API_키

SEOUL_HISTORY_API_KEY=발급받은_대여이력_API_키

SEOUL_STATIONS_API_KEY=발급받은_대여소정보_API_키


④ 주요 API 목록

Endpoint 설명
/stations 대여소 정보 조회
/bike 실시간 대여 상태 조회
/accident 자치구별 자전거 사고 통계
/history 시간대별 대여 이력 정보
/history/average-congestion 과거 시간대 기반 평균 혼잡도 조회
/route 📌 다익스트라 기반 경로 탐색
/osm/route 📌 혼잡도+사고위험 기반 경로 탐색
/osm/congestion_clusters 📌 KMeans 클러스터 기반 혼잡 구역

📎 클러스터링: 📌 KMeans 알고리즘
📎 최단경로 탐색: 📌 Dijkstra 알고리즘
📎 그래프 기반 데이터 모델링: 📌 Graph, Priority Queue 사용


⑤ 프로젝트 구조

📦project-root

┣ 📁routes/ # Flask 블루프린트 라우터

┣ 📁utils/ # 데이터 처리 유틸 함수

┣ 📁osm/ # OSM 기반 그래프 처리 로직

┣ 📁core/ # 커스텀 다익스트라, 그래프 구성 등

┣ 📄app.py # Flask 엔트리포인트

┣ 📄requirements.txt # 필요 라이브러리 명시

┣ 📄.env # (개인용) API 키 환경변수

┣ 📁data/ # 사고통계 CSV 등 데이터파일


백엔드 실행 방법 (Mac)

  1. 백엔드 폴더로 이동
cd backend
  1. conda 환경 비활성화 (사용 중일 경우)
conda deactivate
  1. 가상환경 활성화
source venv/bin/activate
  1. 서버 실행
python app.py

프론트엔드 실행 방법

  1. 프론트엔드 프로젝트 폴더로 이동
cd frontend
  1. 의존성 설치
npm install
  1. 개발 서버 실행
npm run dev
  1. 브라우저에서 아래 주소로 접속
http://localhost:5173

⚠️ 주의 사항 : 백엔드 API 서버(python app.py)가 먼저 실행 중이어야 정상 동작합니다.

⚠️ 주의 사항 : 백엔드 동작에 시간이 걸리므로 실행이 완벽하게 되었는지 확인 부탁드립니다.

About

2025년 1학기 알고리즘 프로토타입 구현

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published