그럴듯한 화면과 옳은 계산은
다른 문제입니다

엔진이 지켜야 할 성질을 실제 데이터로 걸어 본 결과입니다. 통과한 것만 골라 싣지 않습니다. 실패가 있으면 실패로 적습니다. 같은 자료로 다시 돌리면 같은 결과가 나옵니다 — 무작위가 섞이지 않습니다.

13
통과
전체 14건 = 불변식 8 + 역검증 2 + 성능 3 + 신선도 1(참고)
0
실패
없음
2026-08-23 09:24
실행 시각
소요 4.9초
110,722
검사 대상
도로 링크 · 노드 84,495

불변식

어떤 입력에도 성립해야 하는 성질. 하나라도 깨지면 그 답은 못 믿는다

같은 입력에 같은 답
출발지 5곳 재계산 — 일치 5곳 · 최대 차이 0.000000초
무작위가 섞이면 보고서와 화면이 다른 값을 낼 수 있고, 재현·감사가 불가능해진다
위험가중을 켜면 위험 노출이 늘지 않는다
표본 4건 모두 성립
비용함수가 위험을 제대로 벌하고 있는지를 직접 확인한다
통제 구간을 지나는 경로가 하나도 없다
통제 2개소(엣지 3) · 경로 76건 검사 · 위반 0건
통제된 지하차도로 안내하면 이 서비스는 존재 이유를 잃는다
견딜 수 없는 침수 구간으로 안내하지 않는다
경로 51건 검사 · 위반 0건
휠체어 이용자에게 허용치를 넘는 구간을 안내하면 그 안내는 위험 그 자체가 된다
갈 수 없는 거리의 대피소를 권하지 않는다
답 73건 검사 · 상한 초과 0건
고령자에게 1.2km 를 넘는 곳을 권하면 그 안내는 실행되지 않는다
취약지 격자와 상황판이 같은 답을 낸다
표본 6칸 모두 일치
예방 지도와 대응 화면이 다른 규칙으로 계산되면 둘 중 하나는 반드시 틀린 것이다
재난 신호가 없으면 아무 곳도 닫지 않는다
평시 상황 통제 0개소
무차별로 닫는 규칙은 규칙이 아니다. 닫지 않는 경우가 있어야 판정이라 부를 수 있다
차량이 출발하지 못하는 지점이 없다
도로 200m 이내 표본 4,059개 · 차량 출발 불가 0개
보행로 노드에 붙으면 차량은 한 발도 못 나가 전 후보가 경로 없음이 된다. 차가 갈 곳이 없다는 뜻이 아니라 엔진이 못 찾는 것이다

역검증

과거에 실제로 있었던 재난에 규칙을 그대로 걸어 본 결과

사건마다 다르게 반응한다
2023.7.15 오송 통제 4 · 2017.7.16 청주 통제 2 · 2020.8 충북 호우 통제 0 · 2018.9.4 청주 통제 0 · 2022.8.10 청주 통제 0 · 2025.7 충북 호우 통제 5 · 통제 없는 사례 3건
모든 사건에서 똑같이 닫히면 그것은 판정이 아니라 상수다
2023.7.15 오송 — 실제 침수보다 앞서 통제 판정
궁평지하차도 2023-07-15 04시 통제 판정 · 공개 보도 기준 침수(08:40) 대비 4시간 40분 선행
그날 이 규칙이 있었다면 몇 시간을 벌었는지가 이 제품의 값어치다

성능

계산 자체에 걸리는 시간. 검사를 돌린 기기 기준이며 서버 응답시간과는 다르다

경로 1건 계산 시간
표본 72건 · 중앙값 2.4ms · p95 8.4ms
재난 상황에서 몇 초씩 기다리는 화면은 쓰이지 않는다
대피 계획 1회(후보 전수 + 대조군)
141ms — 후보마다 최소위험경로와 최단경로를 각각 계산한 값
화면이 한 번에 내놓는 답 전체를 만드는 데 걸리는 시간
도달권 1회(역방향 전수 탐색)
17ms · 대피소 12개소 기준
취약지 지도를 다시 만드는 데 드는 비용. 사전 계산이라 화면에서는 기다리지 않는다

신선도

어느 시점 자료로 계산한 결과인가

·
계산에 쓴 자료의 생성 시점
도로망 그래프 2026-08-21 · 대피시설 2026-08-21 · 기준수위 2026-08-21 · 주민등록 인구 2026-08-21 · 행정경계 2026-08-22 · 취약지 격자 2026-08-22
언제 자료로 계산한 결과인지 모르면 그 숫자는 근거가 되지 못한다

역검증 상세

같은 규칙을 세 재난의 실측값에 그대로 걸었을 때 그날 무엇이 나왔는가

재난수위 첨두통제 판정확보한 선행시간
2023.7.15 오송 궁평2지하차도 침수2023071510 · 10.08m궁평 · 석화 · 창리 · 터미널궁평 4시간 40분 · 석화 6시간 · 창리 없음 · 터미널 4시간
2017.7.16 청주 집중호우2017071614 · 9.28m궁평 · 석화궁평 2시간 · 석화 2시간
2020.8 충북 호우2020080323 · 7.53m없음
2018.9.4 청주 도심·도로 침수2018090406 · 6.04m없음
2022.8.10 청주 집중호우 침수2022081118 · 6.07m없음
2025.7 충북 호우·청주 특별재난지역2025071714 · 8.90m궁평 · 내수지하도 · 도원리 · 석화 · 터미널궁평 5시간 · 내수지하도 없음 · 도원리 없음 · 석화 5시간 · 터미널 없음

2020.8 충북 호우에서는 어느 지하차도도 통제되지 않았습니다. 규칙이 비만 오면 닫는 것이 아니라는 것을 보이려면 닫히지 않는 사례가 있어야 합니다. 선행시간의 기준은 실제 침수 시각이 공개된 경우 그 시각, 아니면 그 관측소의 수위 첨두입니다.

운영에 드는 비용

현재 구성 그대로의 값. 모르는 것은 모른다고 적습니다

호스팅Vercel현재 이용량에서는 무료 구간실측
하천 수위·강우WAMIS공개 조회. 호출 비용 0원실측
홍수특보 기준수위금강홍수통제소공표 자료 수집. 비용 0원실측
대피시설·인구행정안전부 공공데이터표준데이터·통계 내려받기. 비용 0원실측
도로망·행정경계OpenStreetMap (ODbL)출처 표기 조건. 비용 0원실측
지형표고Copernicus DEM GLO-30공개 라이선스. 비용 0원실측
지도 표시카카오맵무료 사용량 범위 내. 초과하면 유료 전환 필요확인 필요
AI 브리핑DeepSeek상황 1건당 약 1,000토큰. AI 가 멈춰도 규칙 기반으로 같은 브리핑이 나옴실측

수위·강우·기준수위처럼 판단을 좌우하는 신호는 모두 공개 자료로 확보합니다. 외부 계약이 끊겨 서비스가 멈추는 구조가 아닙니다.

다음 사람이 이어받을 수 있는가

한 사람만 아는 절차가 남아 있으면 그것은 제품이 아닙니다

데이터 적재8단계 자동 처리수집부터 도로망 구축까지 사람 손이 들어가는 단계가 없습니다
다른 도시 적용대피시설·관측소 자료 교체같은 절차를 그대로 돌리면 그 도시의 취약지 격자가 만들어집니다
검증배포 전 자동 검사이 페이지의 숫자를 만드는 검사입니다. 하나라도 실패하면 배포가 멈춥니다
사건 추가실측 이력 등록관측 이력이 있는 재난은 한 건 등록으로 사례가 늘어납니다
판정 규칙한 곳에서만 정합니다지하차도 통제와 구간 위험도의 기준이 한 곳에 있어, 화면·보고서·격자가 같은 답을 냅니다

이 검사가 실제로 잡아낸 것

「갈 수 없는 거리의 대피소를 권하지 않는다」 검사가 처음 실행에서 실패했습니다. 대피소 후보를 직선거리로 골라 놓고 실제 보행거리는 확인하지 않아, 「최대 이동거리 2,500m」 라고 적어 두고 2,795m 를 걷게 하는 안내가 나오고 있었습니다. 같은 이유로 예방 화면의 취약지 격자와 대응 화면의 판정이 한 칸에서 어긋났습니다. 경로 탐색에 이동거리 상한을 넣어 두 화면이 같은 규칙을 쓰도록 고쳤고, 지금은 두 검사 모두 통과합니다.

화면만 보고는 알 수 없는 종류의 결함입니다. 검사를 만들지 않았다면 그대로 남았을 것입니다.

통과한 검사만 골라 싣지 않는다. 실패가 있으면 실패로 적고 그대로 공개한다. 성능은 이 스크립트를 돌린 기기 기준이며 서버 응답시간과는 다르다. 검사 표본 출발지 — 오송읍 궁평리 · 청주 도심(상당) · 무심천변(서원) · 내수읍(청원) · 미원면(상당 동부) · 강내면(흥덕 서부).