story · how it was built
설명
무엇을 (문제·대상)
휠체어를 쓰는 사람이 처음 가는 곳을 갈 때 필요한 정보는 전부 다른 사이트에 있습니다. 그 건물에 경사로가 있는지, 근처에 전동보장구 급속충전기가 있는지, 그 정류장에 저상버스가 서는지가 각각 따로입니다. 이음지도는 그것들을 한 지도 위에 모아 놓고, 내 위치에서 가까운 순서로 보여 줍니다.
주요 기능
- 통합 지도 — 휠체어 충전, 복지시설, 병원, 약국, 편의점, 관공서, 장애인 주차를 필터로 켜고 끄며 봅니다. 지도 아래에는 주변 시설이 거리순 목록으로 함께 나옵니다.
- 배터리 범위 — 전동보장구 배터리로 갈 수 있는 범위를 지도에 그립니다. 「거기까지 가면 돌아올 수 있는가」가 실제 판단 기준이기 때문입니다.
- 대중교통 · 이동 계획 — 저상버스와 특별교통수단 정보를 함께 보고 경로를 짭니다.
- 생활·복지 — 복지시설 안내, 주거지원, 장애인 친화 식당, 이동지원 안내, 고용 안내.
- 맞춤 안내 — 처음 들어오면 장애 유형을 물어보고, 그에 맞는 시설을 우선 안내합니다.
- 즐겨찾기 — 자주 가는 곳을 저장합니다.
어떻게 만들었는가 (과정·도구 활용)
원래 Streamlit 으로 만들었던 것을 Next.js 로 전면 재작성한 버전이 지금의 정본입니다. Streamlit 판은 2026년 6월에 종료하고 코드를 제거했습니다. 데이터는 공공데이터 API 로 수집해 Supabase 에 적재합니다.
가장 손이 많이 간 부분은 지도 표시가 아니라 주소 정합이었습니다. 공공데이터 상당수가 주소를 주지 않거나 표기가 제각각입니다. 지오코딩으로 좌표를 확보하고, 좌표로 다시 행정구역을 배정하는 방식으로 맞췄습니다.
한계·다음
- 시설 정보는 원 데이터의 갱신 주기를 넘어설 수 없습니다.
- 접근성의 「있음/없음」은 알 수 있지만 지금 쓸 수 있는 상태인지(고장·잠김)는 알 수 없습니다. 이용자 제보 경로를 둔 이유입니다.
- 위치 권한을 주지 않으면 기본 지역으로 시작합니다.
journey · lessons
과정 · 배운 점
본문 = 무엇·기능·사용법. 여기 = 시간순 여정 + 다음에 남긴 교훈.
공공데이터에서 「주소가 없다」는 흔한 결손입니다. 이걸 빈 문자열이나 기본값으로 채우면 집계가 한 줄에 몰려 버립니다. 좌표가 있으면 좌표로 행정구역을 배정하고, 좌표도 없으면 「미상」으로 남기는 게 맞습니다.
접근성 앱에서 「가까운 순」은 충분한 답이 아니었습니다. 전동보장구는 배터리가 곧 행동반경이라, 거리보다 「갔다가 돌아올 수 있는 범위」가 먼저였습니다. 사용자의 제약을 모델에 넣지 않으면 정렬이 아무리 정확해도 쓸모가 없습니다.
건수 지표는 단독으로 판단하면 안 됩니다. 시설이 몇 개인지보다 인구 대비 몇 개인지가 실제로 쓰이는 숫자입니다.
피드백 원함 · 개선 제안 · 질문 · 아이디어