서울 자전거 도로는 늘어나는데 사고는 표만 봐서는 어디부터 손볼지 안 보입니다. TAAS 자전거 사고와 OSM 전용도로를 붙여, 전용도로 안팎·시간대·블랙스팟을 대시보드와 지도로 보여 줍니다.

프론트는 Next.js 대시보드·지도·AI 인사이트입니다. 데이터는 파이썬으로 모아 좌표를 맞추고 도로에 붙인 뒤 인사이트 JSON으로 내보냅니다.

질문은 세 가지입니다. 전용도로 안과 밖 어디가 더 위험한가, 사고는 같은 도로·시간에 반복되는가, 구별 사고와 전용도로는 어떤 관계인가.

Seoul Bike2025

표만 봐서는 안 보이는 위험을, 지도와 대시보드로 시각화합니다. 어느 도로부터 손봐야 하는지를 사고 지점과 전용도로 위에서 바로 볼 수 있게 했습니다.

프론트엔드데이터 파이프라인지도AI 인사이트
Seoul Bike Accident Insights

초점

어려운 건 사고 점을 찍는 일이 아닙니다. 전용도로 안과 밖을 가르고, 같은 도로에 반복되는 지점을 한 화면에 모으는 일입니다.

핵심 질문: 어느 도로부터 손봐야 하는가. 표만으로는 그 답이 안 나옵니다.

네 가지에 집중했습니다.

전용도로 안팎

OSM 자전거 도로와 사고 지점을 매칭해, 전용도로 위와 밖의 위험 차이를 같은 지표로 비교합니다.

반복되는 블랙스팟

구·도로 단위로 건수·치사율·심각률을 묶어, 한 번 일어난 사고가 아니라 반복되는 구간을 앞에 둡니다.

시간대가 보이는 차트

요일×시간 히트맵, 계절·월, 상대 연령. 새벽과 출퇴근이 같은 ‘사고’로 묶이지 않게 했습니다.

데이터 위의 AI

채팅은 추측하지 않습니다. 대시보드에 올라온 집계만 넣고, 대형차·고령·교차로처럼 손댈 곳을 묻습니다.

구성

화면

  • 구·기간 KPI 대시보드
  • 사고·전용도로 지도
  • 블랙스팟 순위
  • AI 개입 채팅

파이프라인

  • TAAS 자전거 사고 수집
  • 좌표 변환과 구 매칭
  • 전용도로 폴리곤 생성
  • 인사이트 JSON 발행

프론트

  • Next.js App Router
  • MapLibre 지도 레이어
  • 기간·구 필터
  • 차트와 히트맵

모델

  • OpenRouter · Gemini
  • 제공 집계만 근거
  • 개입 방향 대화
  • 참고 표와 같이 둠

데이터 파이프라인

TAAS API에서 원본을 받고, 좌표를 맞춘 뒤 구와 도로에 붙입니다. 전용도로 폴리곤과 겹치면 인사이트 JSON이 됩니다.

다이어그램은 영어입니다. Collect, Clean, Enrich, Publish. 노드를 누르면 펼쳐집니다.

시스템

클라이언트는 세 화면입니다. 대시보드는 집계, 지도는 지점과 도로, AI 인사이트는 그 숫자로 개입을 이야기합니다.

런타임 서버는 거의 없습니다. 파이썬이 JSON을 만들고 프론트가 읽습니다. LLM은 채팅 한 경로에만 붙어 있습니다. 다이어그램은 영어입니다. Clients, Pipeline, Data. 노드를 누르면 펼쳐집니다.

제품

대시보드

기간과 구를 고르면 KPI, 도로 유형, 시간·계절, 블랙스팟이 같이 바뀝니다. 전용도로 안팎 비교가 한 화면에 있습니다.

지도

사고 포인트와 전용도로를 겹칩니다. 호버하면 구·도로·심각도가 나오고, 사이드 필터로 레이어를 켭니다.

AI 인사이트

대형차 사망 비중, 고령 사고, 교차로, 전용도로 밖처럼 손을 대는 질문을 던집니다. 답은 올려 둔 표 안에서만 나옵니다.