STILL CODING / NOTES
Bus Explorer 개발 노트
버스의 흐름을 따라 도시를 새롭게 읽는 노선 탐색 도구
정류장과 노선을 오가며 익숙한 도시의 연결을 다른 시선으로 살펴봅니다. 이동 정보가 하나의 탐험 경험이 됩니다.
-
버스를 지켜보며 구간 시간을 배우다 — 모든 구간이 40초로 나온 이유와 하루 1만 번의 예산
Bus Explorer는 정류장 사이 소요 시간을 예측값이 아니라 관측으로 재려고 차량 위치를 반복 수집합니다. 첫 측정에서 모든 구간이 폴링 간격과 같은 40초로 나온 버그의 원인, 도착 시점을 중간에 놓는 해법, 하루 호출 한도 안에서 도는 수집기 설계를 정리합니다.
-
공공 API를 덜 두드리는 법 — 30초 캐시, 동시 요청 합치기, 실패한 뒤 물러서기
호출 한도가 있는 공공 버스 API를 쓰는 Bus Explorer가 실시간 위치를 캐시하는 방법을 정리합니다. 같은 키의 동시 요청 병합, 실패 시 30·60·120초 물러서기, 한도 초과 시 서비스 단위 차단, 오래된 값을 신선한 척하지 않는 규칙을 코드로 설명합니다.
-
환승 경로를 어떻게 찾나 — 우선순위 큐가 무너진 자리에 라운드 탐색과 '건너편 정류장 걷기'를 놓다
버스 환승 경로 탐색을 우선순위 큐로 만들었더니 실제 질의에서 아무것도 찾지 못했습니다. 탑승 횟수별 라운드 탐색과 도보 환승으로 바꾼 과정, 후보를 고르는 규칙, 300개 질의로 잰 결과를 정리합니다.
-
시간표가 없는 버스 경로에 '몇 분'을 붙이는 법 — Bus Explorer의 소요 시간 추정
공공데이터에는 정류장 사이 소요 시간표가 없습니다. Bus Explorer가 실시간 도착 정보, 관측한 구간 중앙값, 기본값을 섞어 경로의 소요 시간을 추정하고, 그 추정이 어디서 왔는지 함께 보여 주는 방법을 코드로 정리합니다.