전체 프로젝트

Personal case study

광역버스 잔여석 통계

공공데이터 API에서 광역버스의 잔여석을 주기적으로 수집하고, 정류장과 요일, 시간대별 평균을 조회할 수 있게 만든 개인 프로젝트입니다.

2025.03 — 현재Full-stack

01

공공데이터 수집과 통계 저장

Context

화면을 열 때마다 공공데이터 API를 호출하면 요청 한도를 빠르게 소진하고 화면도 늦게 열리며, 수집 작업이 동시에 실행되면 같은 노선과 정류장 데이터가 중복 저장될 수 있었습니다.

Goal

화면 조회와 별도로 데이터를 주기적으로 수집하고, 같은 작업이 겹치지 않게 관리하는 것이 목표였습니다.

What I changed

  • 노선을 그룹으로 나누고 운영 시간과 요일, 시간대에 따라 수집 간격을 조정했습니다.
  • 같은 그룹의 수집이 진행 중이면 다음 실행을 건너뛰고, 노선과 정류장 조합을 기준으로 중복 저장을 막았습니다.
  • 수집한 잔여석을 정류장과 요일, 시간대별 평균과 표본 수로 저장했습니다.

Outcome

화면 요청과 관계없이 잔여석 통계가 쌓이고, 수집 작업이 겹치거나 같은 정류장 통계가 중복 저장되는 일이 사라졌습니다.

02

정류장과 시간대별 잔여석 조회

Context

같은 노선에서도 정류장과 요일, 시간에 따라 잔여석이 달라, 현재 값만으로는 탑승 시점을 비교하기 어려웠습니다.

Goal

노선 흐름을 따라 정류장을 고르고, 원하는 요일과 시간대의 평균 잔여석을 비교할 수 있어야 했습니다.

What I changed

  • 상행과 하행 정류장을 노선 순서대로 보여 주고, 정류장을 선택하면 해당 통계가 열리도록 구성했습니다.
  • 평일과 주말, 개별 요일과 시간대를 고르는 필터를 추가했습니다.
  • 정류장별 평균 잔여석은 표로, 선택한 정류장의 요일과 시간대별 값은 색상표로 표시했습니다.

Outcome

사용자는 노선과 정류장, 요일, 시간대를 바꿔 가며 평균 잔여석을 비교하고 탑승 시점을 고를 수 있습니다.