코드로 검증하는 공공데이터 매니페스토 — PDF에서 API로 넘어가기

- 오카무 인사! 오늘은 정부·지자체 데이터의 '기계해독 가능성'을 엔지니어 관점에서 파고들어요
- PDF에 갇힌 KPI, CSV·API로 풀면 감시와 개선이 쉬워진다! 실제 사례와 개선안 제시합니다
- 코드 예시로 데이터 파이프라인 설계, 메타데이터·버전관리·UI 개선까지 실무적 제안
결론
공공정책은 수치로 약속하고 수치로 검증해야 합니다. 그런데 많은 행정문서가 PDF에 갇혀 있어 자동화·재현성이 떨어지죠. 엔지니어적으론 CSV·API·공식 메타데이터 제공이 기본입니다. 이렇게 바꾸면 KPI 추적, 대시보드 자동화, 시민 감시가 가능해집니다!
레포트 본문
무엇을 봤나 — 출처 정리
이 리포트는 공개 자료(예: 디지털청의 UI 개선 가이드, 도쿄 오픈데이터 카탈로그, 지자체 오픈데이터 포털, 'デジタル田園都市国家構想交付金' 관련 지침 및 일부 현황 PDF)를 기준으로 기술적 분석을 했습니다. 구체적으로는
- 도쿄 데이터 카탈로그(catalog.data.metro.tokyo.lg.jp) — 여러 데이터셋이 CSV로 제공되는 예
- 중앙区, 埼玉県 등 지방 포털(opendata.pref.saitama.lg.jp 등) — 공개 형식과 이용약관 관찰
- 국토교통성·내각府(지침 PDF) — 보조금사업 KPI 보고서(PDF 중심)와 평가 지침
- 디지털청 UI 가이드(website) — 서비스 디자인·검증 절차
문제 진단: PDF vs CSV, API 부재
이 데이터, PDF에 묻혀있는 경우가 많습니다. PDF는 인간 친화적이지만 기계적 재사용에 취약하죠. 문제를 정리하면:
- 머신리더빌리티 부족: PDF 표는 구조가 깨지거나 스캔본이면 끝
- 메타데이터 부재: 컬럼 설명·단위·측정 방법 불명
- 버전관리 없음: 같은 문서가 업데이트되면 변경 이력 추적 어려움
- API 부재로 자동화 불가능: 수동 다운→수작업 가공
요컨대, 엔지니어적으론 "API 한 줄이면 해결" 되는 문제들이 많습니다!
정책 수치와 실적의 갭 — 사례 관찰
예를 들면 디지털田園都市交付金 관련 지침은 KPI 설정과 달성평가를 요구합니다(지침 문서 참조). 그런데 현황 리포트(예: 山口県의 실적보고 PDF)를 보면 KPI 표기가 있으나 원자료가 PDF에 갇혀 있어 자동화된 집계·교차검증이 어렵습니다. 결과적으로 실적 검증이 사람이 수동으로 확인하는 수준에 머무를 가능성이 큽니다.
기술적 개선 제안 (우선순위 포함)
1) 우선: CSV·JSON-LD 공개
- 모든 KPI, 연도별 실적은 CSV로 공개하고 JSON-LD로 스키마 연결
- 메타데이터(단위, 산정식, 소스 링크) 포함
2) API 제공 (RESTful + OpenAPI 스펙)
- 필터(기간, 지역, 사업) 및 페이징 제공
- CORS 허용해 시민 앱에서 직접 호출 가능
3) 데이터 카탈로그 표준화 (DCAT)
- 데이터셋 수준 메타데이터 자동 수집·노출
4) 버전관리와 변경로그
- 스냅샷과 changelog 공개, DOI나 버전 태그 부여
5) UI/UX 개선 및 피드백 루프
- 디지털청 가이드처럼 서비스 디자인 체크리스트 도입
코드 예시: CSV → KPI 자동 대시보드 파이프라인
다음은 간단한 파이프라인 예시(pandas 사용). 코드 쓰는 사람이라면 바로 이해될 거예요!
import pandas as pd
데이터 로드 (도쿄 카탈로그의 CSV 예시 URL 사용)
url = 'https://catalog.data.metro.tokyo.lg.jp/dataset/example.csv'
df = pd.read_csv(url)
날짜 파싱, 결측 처리
df['date'] = pd.to_datetime(df['date'], errors='coerce')
df = df.dropna(subset=['kpi_value'])
KPI 비교
targets = pd.read_csv('kpi_targets.csv')
merged = df.merge(targets, on=['region','kpi_name'])
merged['achievement_rate'] = merged['kpi_value'] / merged['target']
요약 리포트
report = merged.groupby('kpi_name')['achievement_rate'].mean()
print(report)
요컨대, CSV+메타데이터+API만 있으면 이 파이프라인을 자동화해서 매월 리포트를 뽑고, 시민 대시보드에 즉시 반영할 수 있습니다.
운영상 고려사항
- 권한·프라이버시: 개인식별정보는 비식별화·집계로 제공
- 데이터 품질: 수집단계에서 스키마 검증(예: JSON Schema, CSV Schema) 도입
- 지속성: 데이터 서비스는 SLA 및 백업 정책 필요
정리
- PDF 중심의 공개는 투명성·재현성에서 손해
- CSV와 API, 메타데이터 표준(DCAT/JSON-LD), 버전관리로 문제 대부분 해결
- 기술은 간단한데 행정 체계와 운영 관행을 바꾸는 것이 핵심
오카무에서 한마디
테크로 사회를 업그레이드합시다! 작은 API 한 줄이 정책의 신뢰를 바꿉니다. 저도 코드로 감시 가능한 정부, 함께 만들고 싶습니다!
정보 출처
- https://ja.wikipedia.org/wiki/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB
- https://www.chisou.go.jp/sousei/pdf/r5_guideline-checkaction.pdf
- https://dxlab.jp/blog-arase-2021-11-15-digital/
- https://www.pref.yamaguchi.lg.jp/uploaded/attachment/160746.pdf
- https://e-words.jp/w/%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB.html
- https://catalog.data.metro.tokyo.lg.jp/dataset
- https://portal.data.metro.tokyo.lg.jp/
- https://catalog.data.metro.tokyo.lg.jp/dataset/?tags=%E8%87%AA%E6%B2%BB%E4%BD%93%E6%A8%99%E6%BA%96%E3%82%AA%E3%83%BC%E3%83%97%E3%83%B3%E3%83%87%E3%83%BC%E3%82%BF%E3%82%BB%E3%83%83%E3%83%88
- https://opendata.pref.saitama.lg.jp/
- https://www.city.chuo.lg.jp/kusei/gaiyou/toukeidate/opendata.html
- https://metidx-gov.note.jp/n/n9468573c213b
- https://lg.reserva.be/ux-design/
- https://www.zhihu.com/question/290714454
- https://www.digital.go.jp/policies/servicedesign/government-system-ui
- https://zenn.dev/govtechtokyo/articles/b65dc687e50918
공유하기
관련 리포트

コードで語るマニフェスト:自治体データとシステムをエンジニア視点で検証する
自治体データはPDFやUIに閉じがち。API-firstとJSON Schemaで再利用性を高め、ガバメントクラウドへ移行する実務ロードマップを提示します。

コードで語るマニフェスト:日本政府データの現場から見る技術検証
政府データは可視化が進むも機械可読性不足が課題。CSV/JSON/API、スキーマ、ID統一で政策検証を自動化しよう。

코드로 읽는 마니페스토: 일본 정부 데이터와 시스템을 엔지니어 관점에서 후벼파기
일본 정부 데이터의 PDF·API·메타데이터 문제를 엔지니어 관점에서 분석하고, 실무 가능한 개선안을 코드 예시와 함께 제시합니다。