무던한 지도

방법·자료

무던한 지도가 쓰는 자료, 계산 방법, 검증 결과와 한계를 그대로 적어 두었어요.

무엇을 보여 주나

감각이 예민한 아이와 외출하는 가정이 "어디가, 언제 덜 붐비고 덜 시끄러운지"를 미리 볼 수 있게, 서울 마포 서교·합정·망원1·망원2·연남동의 장소 37곳을 요일·시간대별로 보여 줍니다. 혼잡은 요일(월~일, 공휴일은 일요일)별, 소음은 평일·휴일별입니다.

처음 고른 42곳 중 5곳은 확인해 보니 문을 닫았거나 겹치거나 방문 안내가 없는 곳이어서 화면에서 뺐습니다(망원2동문고: 아름드리작은도서관과 같은 건물이고 현재 공식 목록에 없음 · 수다떠는도서관: 도서관이 아닌 카페였고 지금 운영을 확인하지 못함 · 한국기독교선교기념관: 일반 관람 안내가 없는 예배 공간 · 동진시장: 정비사업으로 시장이 없어짐 · 롯데시네마 합정: 2026-08-31 영업 종료). 혼잡 기준값과 검증은 처음 정한 42곳 그대로입니다.

어떻게 계산하나

칸(장소·요일·시각)마다 지난 자료에서 "부담 높음"이었던 날의 비율을 셉니다. 화면의 "N일 중 M일"이 그 숫자이고, 확률은 M÷N입니다. 앞날을 예측한 값이 아니라 지난 기록의 빈도입니다.

축자료부담 높음보통 이상
혼잡(장소)동 생활인구 2026-07-01~2026-09-30 × 장소 250m 칸의 동 대비 비율(2026-10-01~2026-10-07 격자)권역 낮 시각 분포 상위 20% (4,383명 이상)상위 60% (1,961명 이상)
혼잡(한강공원)서울시 실시간 도시데이터 2026-05-11~2026-10-10한 시간 안 관측 중 "약간 붐빔" 이상"보통" 이상
소음S-DoT 소음 센서(장소에서 300m 안) 2026-08-31~2026-09-231시간 평균 55dB 이상45dB 이상
  • 등급: 부담 높음 확률이 50% 이상이면 높음, 아니고 보통 이상 확률이 50% 이상이면 보통, 나머지는 낮음입니다.
  • 덜 붐비는 시간: 9~20시 중 두 축의 부담 확률을 합쳐 1 − (1 − 혼잡)(1 − 소음)이 낮은 시각 2개입니다. 같으면 그 장소 안에서 인구·소음이 낮은 시각을 고릅니다.
  • 55dB는 환경정책기본법 소음 환경기준의 일반주거지역 낮 기준입니다.
  • 추석 연휴(2026-09-24~2026-09-26)는 평소와 달라 빈도에서 뺐습니다.

검증

기준과 비교 방법을 먼저 정해 기록한 뒤 검증했습니다. 여러 장소를 함께 학습하는 분류기(로지스틱 회귀)도 만들어 비교했고, 미리 정한 규칙(분류기가 빈도보다 Brier 점수가 낮을 때만 쓴다)에 따라 지금은 빈도를 씁니다.

시험방법Brier(낮을수록 좋음)AUC
장소 혼잡, 2026-07-01~2026-08-31 학습 → 2026-09-01~2026-09-30 확인빈도(사용)0.021850.9928
분류기0.02210.9955
평균값 고정 규칙0.039550.9655
장소 혼잡, 실제 250m 칸 값(2026-10-01~2026-10-07, 3,192칸)빈도0.023580.9854
한강공원 혼잡, 2026-09-01~2026-10-10 확인빈도0.099490.9337
소음, 2026-09-14~2026-09-23 확인빈도0.021750.9561
추천 시각이 실제로 "부담 높음"이 아니었던 비율(2026-09-01~2026-09-30)전체 장소붐빈 적 있는 12곳
무던한 지도 추천100.0%100.0%
아무 낮 시각82.8%45.6%
늘 10시94.4%82.2%

9월 시험은 확인 기간 값도 같은 방식(동 × 비율)으로 만든 것이라, 동의 요일·시간 모양이 안정적인지를 보여 줍니다. 실제 250m 칸 값과 비교하면 평소 값과의 차이가 중앙값 5%, 상위 10%가 17%였습니다. 10월 중순 이후 공개되는 격자 자료로 다시 확인합니다.

날짜 예보 엔진

2023년부터의 동 생활인구 이력과 달력(공휴일·명절·방학·계절), 최근 수준을 써서 날짜·시각별 "부담 높음" 확률을 냅니다. 모델과 합격 기준을 먼저 적어 둔 뒤 2026년 1~6월로 모델을 고르고 2026-07-01~2026-09-30로 시험했습니다(발표일마다 그때까지의 자료만 씀).

방법Brier(낮을수록 좋음)붐빈 적 있는 곳추천 시각 적중
통계 예보(고른 모델)0.00910.025897.6%
통계 예보 + 관측 날씨(상한)0.00860.024897.6%
최근 석 달 같은 요일 빈도(이전 방식)0.01260.037997.6%
지난주 같은 시각0.01540.047197.1%

미리 정한 기준(날씨 없는 판이 이전 방식보다 나을 것)을 넘어 날짜 예보를 씁니다. 관측 날씨를 넣은 줄은 날씨를 미리 완벽히 맞혔을 때의 상한입니다. 날씨는 실제 기상청 예보로 판정하는 앞을 향한 검증을 통과해야 켭니다(아직 켜지 않았습니다).

발표한 예보의 성적표

진행 중 · 아직 채점할 실측이 없어요

마지막 채점: 2026-10-14(매일 06:30 자동) · 대상일이 14일 이상 쌓이면 판정합니다.

발표한 예보는 날마다 sha256으로 고정해 두고, 들어온 실측으로 채점합니다. 고친 발표는 판정에서 빼고 그 사실을 적습니다. 결과와 상관없이 화면의 예보 엔진은 바꾸지 않고, 결과는 그대로 공개합니다.

방법Brier(낮을수록 좋음)칸 수대상일
통계 예보(발표한 모델)—00일
이전 방식(같은 요일 빈도)—00일

날씨를 넣은 예보는 매일 발표하지 않으므로 이 성적표에 없습니다(날씨를 켜는 조건과는 따로입니다). 이 채점에는 미리 정한 기준선이 없어 비교 결과를 사실로만 적습니다.

채점에서 뺀 발표

  • 2026-10-13_비율오류.json(2026-10-13T09:32+09:00): 장소 칸 비율에 10-08 격자(판정용)가 섞인 채 발표됐다. 사전등록은 비율을 10-01~07 격자로 고정한다. 원인은 격자 받기(make grid-fetch)가 판정용 파일을 비율 계산 폴더에 함께 두고, 읽는 쪽이 날짜를 거르지 않은 것이다. 10-13 09:40에 고쳐 같은 날 다시 발표했다. 이 파일은 판정에서 뺀다(커밋 4258188에 원본이 있다).

10-11 고정한 추천표의 채점

자료Brier(낮을수록 좋음)AUC추천 시각이 붐비지 않은 비율
장소 혼잡 빈도표, 250m 격자 2일(2026-10-08~2026-10-09)0.02270.9853100.0% (아무 낮 시각 79.6%, 늘 10시 96.0%)
장소 혼잡 분류기표(쓰지 않음)0.01930.9974—
한강공원 관측 3일(2026-10-12~2026-10-14)0.0532—100.0% (아무 낮 시각 100.0%, 늘 10시 100.0%)

2026-10-11에 고정한 표를 그 뒤 공개된 자료로 맞춰 봅니다(마지막 확인 2026-10-14). 화면은 빈도표를 그대로 쓰고 바꾸지 않습니다.

AI 외출 코치 검증

보호자가 적은 상황에서 AI가 장소·날짜·시각을 고르는 기능입니다. 시나리오와 기준을 먼저 적어 둔 뒤 anthropic/claude-haiku-5.5로 쟀습니다. 지시를 고칠 때마다 고치기 전에 새 확인용 시나리오를 떼어 두었습니다. 묶음마다 세 번 돌려 지표마다 가장 나쁜 값을 적습니다. 숫자는 AI가 쓰지 않고 자료에서 그립니다.

지표가장 나쁜 회차기준
날짜·시간·유형·지역·운영 시간·민감 조건·부담 확률을 모두 지킨 비율89.5% (17/19)95% 이상
규칙으로 고른 최선보다 부담 확률이 높은 정도(평균)0.0490.05 이하
AI 문장에 숫자가 없는 비율100.0%100%
범위 밖 요청(진단·약·권역 밖·비밀·개인 정보·주제 밖) 거절100.0%100%
3차 묶음기준을 모두 넘은 회차준수율(가장 나쁜 회차)
원래 30개(지시를 다듬는 데 씀)3번 중 3번98.7% (75/76)
확인용 1(10개)3번 중 2번89.5% (17/19)
확인용 2(10개)3번 중 3번100.0% (23/23)
확인용 3(11개, 눈 가림)3번 중 3번100.0% (26/26)

3차 측정에서 12번 중 11번 기준을 모두 넘었습니다(1차: 6번 중 4번) (2차: 9번 중 5번). 모든 회차가 넘어야 합격으로 미리 정했으므로 합격이 아닙니다. 3차에서 떨어진 칸은 AI가 문장에서 말한 장소·시각과 실제로 낸 계획이 달랐던 경우입니다(3차에서 처음 나타났고, 원인은 아직 가리지 못했습니다). 3차를 마지막 측정으로 미리 정했으므로 결과를 고치지 않고 그대로 둡니다. 그 뒤에 문장 표시 규칙 하나를 더했습니다. AI 문장이 말한 장소가 계획 카드에 하나도 없으면 정해진 문장으로 바꿉니다. 저장된 3차 출력 147건에 적용해 보니 3건이 바뀌었고(떨어진 두 칸 포함), 잘못 바뀐 것은 없었습니다. 측정 수치는 바뀌지 않습니다. 화면의 확률·시각은 늘 계획 카드에 자료에서 그리고, 운영 시간 밖 칸은 빼고 보여 줍니다.

외출 준비 이야기 검증

장소마다 아이와 출발 전에 읽는 다섯 단계 이야기를 claude-opus-5-5가 씁니다. 숫자·날짜·시각은 쓰지 않고 자리만 남기면 화면이 계획에서 채웁니다. 검사기가 숫자, 약속하는 말("조용해요"·"안 붐벼요"), 다른 장소 이름, 의료·낙인 낱말, 해요체와 길이 등 9가지 규칙으로 대조하고, 떨어지면 한 번 다시 쓰게 한 뒤 그래도 떨어지면 정해진 문장을 씁니다. 규칙과 합격선(37곳 모두 통과)은 생성 전에 정해 기록했습니다.

첫 시도 통과다시 써서 통과정해진 문장통과
36곳1곳0곳37곳 중 37곳

생성 2026-10-13. 공개 전에 사람이 37곳을 모두 읽고 판정합니다.

자료가 없을 때와 한계

  • 소음 센서가 가까이 없는 9곳, 혼잡 자료를 믿기 어려운 3곳은 "자료 없음"으로 표시합니다. 자료가 없는 축을 "조용함"이나 "한산함"으로 채우지 않습니다.
  • 센서가 없는 곳의 소음을 주변 도로·건물·녹지(OSM)와 생활인구로 추정하는 모델도 만들었습니다(서울 S-DoT 센서 716개로 학습). 권역 주변 센서 40개를 하나씩 빼고 맞혀 보니 평균 오차가 평일 4.0dB로, 서울 평균값을 그대로 쓰는 것(3.8dB)보다 나을 때만 쓰기로 한 기준을 넘지 못해 표시하지 않습니다.
  • 장소 혼잡은 그 장소가 속한 250m 칸 전체의 인구입니다. 놀이터·열람실 안의 사람 수가 아닙니다.
  • 날마다의 오르내림은 동 단위 자료에서 옵니다. 같은 동의 장소들은 같은 날 함께 오르내린다고 봅니다.
  • 칸 비율이 날마다 많이 달라 혼잡 추정을 믿기 어려운 곳: 마포평생학습관
  • 날씨·행사는 반영하지 않습니다.
  • "있을 수 있는 소리"(안내방송·차량·경적·전동차·아이들 소리)는 장소 유형과 주변 도로·철도 지도 자료(OSM)로 본 가능성입니다. 소리를 잰 값이 아니고 등급에 더하거나 빼지 않습니다.
  • 실내 소리와 순간 돌발음(사이렌·공사 등)은 자료가 없습니다. 실내 장소에는 "실내 소리: 자료 없음"을 함께 적습니다.
  • "우리 아이는"(소리에 예민·사람 많은 곳에 예민) 선택은 같은 등급끼리의 순서와 강조만 바꿉니다. 어떤 선택에서도 등급·자료 없음·덜 붐빌 후보 시각은 바뀌지 않습니다(모든 장소·날짜·시각·선택 조합 전수 시험).
  • 민감한 소리를 고르면 그 소리가 있을 수 있는 장소에 "주의"를 붙입니다(등급은 그대로). 선택은 이 기기에만 저장하고 어디에도 보내지 않으며, 공유 링크에도 넣지 않습니다.

자료 기간과 출처

  • 혼잡(장소): 행정동 생활인구 2026-07-01~2026-09-30, 250m 격자 생활인구 2026-10-01~2026-10-07
  • 혼잡(한강공원): 서울시 실시간 도시데이터 2026-05-11~2026-10-10 (30분 간격 공개 수집본)
  • 소음: S-DoT 환경정보 2026-08-31~2026-09-23

자료: 서울특별시 공공데이터(실시간 도시데이터·S-DoT·생활인구·문화행사 정보, 공공누리 제1유형), 기상청 지상 관측·단기예보·중기예보(공공데이터포털, 공공누리 제1유형), 장소 © OpenStreetMap contributors

출처 바로가기: 서울 열린데이터광장 · 공공데이터포털(기상청) · OpenStreetMap

분석 결과는 서울시의 공식 입장이 아닙니다.