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

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

18
통과
전체 19건 = 불변식 13 + 역검증 2 + 성능 3 + 신선도 1(참고)
0
실패
없음
2026-08-25 14:34
실행 시각
소요 3.4초
36,060
검사 대상
도로 링크 · 노드 27,509

불변식

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

같은 입력에 같은 답
출발지 3곳 재계산 — 일치 3곳 · 최대 차이 0.000000초
무작위가 섞이면 보고서와 화면이 다른 값을 낼 수 있고, 재현·감사가 불가능해진다
위험가중을 켜면 위험 노출이 늘지 않는다
표본 3건 모두 성립
비용함수가 위험을 제대로 벌하고 있는지를 직접 확인한다
통제 구간을 지나는 경로가 하나도 없다
통제 0개소(엣지 0) · 경로 64건 검사 · 위반 0건
통제된 지하차도로 안내하면 이 서비스는 존재 이유를 잃는다
견딜 수 없는 침수 구간으로 안내하지 않는다
경로 18건 검사 · 위반 0건
휠체어 이용자에게 허용치를 넘는 구간을 안내하면 그 안내는 위험 그 자체가 된다
오를 수 없는 경사로 안내하지 않는다
경로 18건 중 경사 상한이 걸린 4건 검사 · 위반 0건
휠체어 이용자에게 5%를 넘는 비탈을 안내하면 그 경로는 존재하지 않는 경로다
갈 수 없는 거리의 대피소를 권하지 않는다
답 51건 검사 · 상한 초과 0건
고령자에게 1.2km 를 넘는 곳을 권하면 그 안내는 실행되지 않는다
취약지 격자와 상황판이 같은 답을 낸다
표본 3칸 모두 일치
예방 지도와 대응 화면이 다른 규칙으로 계산되면 둘 중 하나는 반드시 틀린 것이다
대피 주체에 맞는 사람을 센다
65세 이상 28,062명 (공표 30,182명 대비 7.0%) · 휠체어 모수는 등록장애인 읍면동 자료 확보 후 추가
고령자 조건으로 계산하고 전 주민을 세면 숫자는 그럴듯해도 가리키는 대상이 다르다
재난 신호가 없으면 아무 곳도 닫지 않는다
평시 상황 통제 0개소
무차별로 닫는 규칙은 규칙이 아니다. 닫지 않는 경우가 있어야 판정이라 부를 수 있다
차량이 출발하지 못하는 지점이 없다
도로 200m 이내 표본 2,802개 · 차량 출발 불가 0개
보행로 노드에 붙으면 차량은 한 발도 못 나가 전 후보가 경로 없음이 된다. 차가 갈 곳이 없다는 뜻이 아니라 엔진이 못 찾는 것이다
관측 연계 없는·임계 없는 구간이 위험 0으로 취급되지 않는다
관측 연계 없는 지상 도로 32,264개 · 임계 없는 관측소 연계 0개(전 관측소 임계 보유) — 가정 호우에서 각각 위험>0 15,395개(47.7%) · 0개(0.0%) · 통제 0개
기준 관측소가 없거나 임계수위가 미확보라고 안전하다는 뜻이 아니다. 지형과 강우로라도 위험을 잡아야 하고, 반대로 그 어떤 구간도 근거 없이 통제되어서는 안 된다
대피소 선언 통계는 목록에서 다시 센 값과 같다
선언 111개소 · 12,073명 — 재계산 111개소 · 12,073명 · 수용률 11.2%
생산자와 소비자의 세는 규칙이 어긋나면 폐쇄된 시설을 쓰는 셈이다
지하차도 0개소는 등록 자료와도 같다
그래프 지하차도 0 · 국토교통 등록 0개소
등록 시설이 없는데 화면에 통제 대상이 있으면 근거 없는 표시다

역검증

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

사건마다 다르게 반응한다
사례 4건 · 도달 단계 종류 2종 (심각 / 주의)
모든 사건에서 똑같이 반응하면 그것은 판정이 아니라 상수다
2026.8 사천 호우 — 솥골교 심각단계 도달을 실측으로 재현
곤양천 솥골교 2026.08.17 04시 심각 도달 · 첨두(17일 08시, 3.01m) 4시간 전
공표 기준수위가 없는 지역에서도 이력 기반 잠정치로 같은 판정 구조가 동작함을 확인한다

성능

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

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

신선도

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

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

역검증 상세

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

재난수위 첨두통제 판정확보한 선행시간
2026.8.15~17 사천 극한호우2026081708 · 3.01m없음
2020.8 경남 호우2020080824 · 7.95m없음
2022.9.5~6 태풍 힌남노2022090820 · 3.26m없음
2023.8 경남 호우2023081017 · 3.20m없음

사천권에는 등록 지하차도가 없어 통제 대상은 하천변 도로·교량 접근로이고, 2022.9 태풍 힌남노에서는 어느 구간도 경계단계에 닿지 않았습니다. 규칙이 비만 오면 닫는 것이 아니라는 것을 보이려면 닫히지 않는 사례가 있어야 합니다. 선행시간의 기준은 실제 침수 시각이 공개된 경우 그 시각, 아니면 그 관측소의 수위 첨두입니다.

운영에 드는 비용

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

호스팅Vercel현재 이용량에서는 무료 구간실측
하천 수위·강우WAMIS공개 조회. 호출 비용 0원실측
기준수위(잠정)WAMIS 시수위 이력 재산출공표 기준수위 미확보 — 백분위 파생. 비용 0원파생
대피시설·인구행정안전부 공공데이터생활안전지도·주민등록 통계. 비용 0원실측
도로망·행정경계OpenStreetMap · 행정안전부 admdongkor출처 표기 조건. 비용 0원실측
경사(링크)국토지리정보원 수치표고모델 DEM 90m공표 수치지형자료 — 보행 경사 상한 판정. 비용 0원실측
표고·저지대Copernicus DEM GLO-30공개 라이선스. 저지대지수 파생에 사용. 비용 0원파생
지도 표시카카오맵무료 사용량 범위 내. 초과하면 유료 전환 필요확인 필요
AI 브리핑DeepSeek상황 1건당 약 1,000토큰. AI 가 멈춰도 규칙 기반으로 같은 브리핑이 나옴실측

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

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

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

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

이 검사가 실제로 잡아낸 것

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

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

통과한 검사만 골라 싣지 않는다. 실패가 있으면 실패로 적고 그대로 공개한다. 성능은 이 스크립트를 돌린 기기 기준이며 서버 응답시간과는 다르다. 검사 표본 출발지 — 동서동 대방동(삼천포) · 사천시청(용현) · 정동면 예수리(예수지구) · 곤양면 검정리(가화천변) · 곤명면(북부 내륙) · 사천읍(공항 방면).