충북안길 — 충북형 AI 재난대피 디지털트윈
가장 가까운 대피소가 아니라, 지금 안전하게 도달할 수 있는 대피소를 계산합니다
NaDa· 게스트2026년 8월 29일조회 0
story · how it was built
설명
무엇을 (문제·대상)
집중호우 때 안내되는 것은 대개 「가장 가까운 대피소」입니다. 그런데 가장 가까운 길이 잠겨 있으면 그 안내는 사람을 물 쪽으로 보냅니다. 충북안길은 지금 안전하게 도달할 수 있는 대피소와 거기까지의 최소위험 대피경로를 실측 공공데이터로 계산합니다.
청주 4개 구에서 실증하고 증평군으로 넓혔습니다. 지역은 데이터를 적재하는 것만으로 늘어나는 레지스트리 구조로 만들었고, 실제로 사천·거제로 이식하면서 그 구조가 맞는지 확인했습니다.
주요 기능
- 최소위험경로 — 통행시간에 침수위험 가중과 통제 페널티를 더해 계산합니다.
- 대상별 이동 프로파일 — 차량 · 도보 · 고령자 · 휠체어를 각각 다른 상한으로 봅니다.
- 역검증 공개 — /verify 에서 2023년 7월 15일 오송 사고를 되짚어, 시스템이 그날 4시간 40분 앞서 통제 판정을 냈을 것인지를 공개합니다.
- 자가검증 — 불변식 · 성능 · 데이터 신선도를 화면에서 그대로 보여 줍니다.
- 다중지역 레지스트리 — 새 지역 추가가 코드 수정이 아니라 데이터 적재 절차입니다.
어떻게 만들었는가 (과정·도구 활용)
「안길」 계열의 첫 번째입니다. 수집→전처리→그래프·지형 빌드 파이프라인을 Python으로 먼저 세우고, 그 산출물을 읽는 Next.js 앱을 얹었습니다. 설계 근거(위험모델 방법론)와 다중지역 설계를 문서로 먼저 고정한 뒤 구현했기 때문에, 이후 사천·거제 이식이 며칠 단위로 가능했습니다.
구조·실행 (짧게)
app/ (Next.js 웹앱) · data-pipeline/ (수집·전처리·그래프 빌드) · docs/ (설계·방법론·운영) · output/ (QA 스크립트·증거물). 무엇을 만들었는가는 서비스설계안, 왜 이 계산이 옳은가는 위험모델 방법론 문서에 있습니다.
한계·다음
- 시제품입니다. 지자체 공식 안내가 아닙니다.
- 실증은 청주 4개 구 + 증평입니다. 충북 전역으로 넓히려면 그만큼의 데이터 적재가 필요합니다.
- 백업 주소는 https://cbuk-evac.vercel.app 입니다.
journey · lessons
과정 · 배운 점
본문 = 무엇·기능·사용법. 여기 = 시간순 여정 + 다음에 남긴 교훈.
대피 안내에서 「가장 가까운」은 답이 아닙니다. 2023년 오송에서 잘못된 것은 길이 멀었던 것이 아니라, 그 길이 잠긴다는 사실을 아무도 계산하지 않았다는 점이었습니다. 그래서 이 시스템의 출력은 거리가 아니라 위험도 가중 통행시간입니다.
지역을 늘리는 일을 처음부터 「데이터 적재」로 설계해 두면 두 번째 지역부터 속도가 완전히 달라집니다. 반대로 상수를 코드에 박아 두면, 이식할 때 화면은 새 지역인데 계산은 옛 지역인 상태를 만들게 됩니다.
피드백 원함 · 개선 제안 · 질문 · 스택·도구 조언