コードで語るマニフェスト:政府データの機械可読性をエンジニア視点で検証する

안녕하세요~ おかむー입니다! 오늘은 정부·지방자치단체가 공개하는 데이터(특히 CSV)들을 코드로 들여다보고, 정책과 시스템의 갭을 엔지니어링 관점에서 파헤쳐볼게요~
- 이거 3줄 요약입니다!
- 2026년 "行政データの機械可読性に関するルール" 결정은 전진이지만, 현장 적용을 위한 API·スキーマ整備が必須
- 엔지니어로서 제안: UTF-8 표준, CSVW/JSON-LD 메타데이터, OpenAPI 기반 데이터 API, 데이터카탈로그(DCAT) 연계
結論
실무적으로 말하면 "파일 공개"만으로는 데이터 개방성의 목표를 달성할 수 없다. 에ンジニア的に言うと, 데이터의 재현성(reproducibility)·결합가능성(joinability)·신뢰성(trustability)을 보장하려면 표준 스키마와 API 레이어를 반드시 도입해야 한다!
レポート本文
現状観察:これ見てくださいよ
検索結果에서 실제로 발견되는 공개소스들을 보자: NOTICE(https://notice.go.jp/docs/status_notice.csv), 環境省의 지역별 CSV(https://www.env.go.jp/content/900398071.csv), 総務省の全国CSV(https://www.soumu.go.jp/main_content/000323625.csv) 등. 파일 자체는 공개돼 있어서 접근성은 좋다.
하지만 엔지니어가 실무에서 느끼는 문제는 다음과 같다:
- 인코딩 문제: 일본 관서의 CSV는 UTF-8인 경우도 있지만 Shift_JIS나 기타 인코딩으로 제공되는 경우가 있어 파싱 전 단계에서 실패 발생
- 스키마 부재: 컬럼명·타입·単位·許可ライセンス 등 메타데이터가 파일 내부 또는 별도 문서로 거의 없음
- 更新頻度와恒常的API의 부재: 파일다운로드형 배포는 스냅샷 용도로는 괜찮지만, 실시간성/差分同期를 요구하는 서비스엔 부적합
- フォーマットの不一致: 日付フォーマット、数値の区切り文字、欠損値表現が不統一で前処理コストが高い
要するに、データはあるけど"使える"状態になってないということです。
政策面の動きとギャップ
内閣官房/デジタル行財政改革会議で2026/03/31に「行政データにおける機械可読性に関するルール」が決定されている(参考: https://www.cas.go.jp/...、https://www.digital.go.jp/...)。これは大きな前進!ただ、現場はこういったルールを"落とし込み・運用"するための実装ガイドやツールが必要です。
政策の数値目標と実績のギャップ例(一般的観察):
- 目標: 行政データの機械可読性を100%に
- 実績: ファイル公開のみでメタデータ未整備。結果、実稼働で利用できるデータは部分的
技術検証(コード例で見る現場の処理)
エンジニア的に言うと、まずはデータを安全に読み込んで正規化するパイプラインが必須。以下は Python/pandas の簡単な例:
# encoding 감지 후 읽기 예시
import chardet
with open('status_notice.csv', 'rb') as f:
raw = f.read(10000)
enc = chardet.detect(raw)['encoding']
import pandas as pd
df = pd.read_csv('status_notice.csv', encoding=enc)
컬럼 표준화
df.columns = [c.strip().lower().replace(' ', '_') for c in df.columns]
날짜 파싱
df['date'] = pd.to_datetime(df['date'], errors='coerce')
さらに、여러 CSV를 결합할 때는 공통キー와永続ID가 없으면 매칭비용이 폭발한다。CSVをREST APIに変換して型検証を行う簡単な Flask スタブ:
from flask import Flask, jsonify, request
import pandas as pd
app = Flask(__name__)
df = pd.read_csv('some_gov_data.csv', encoding='utf-8')
@app.route('/api/data')
def list_data():
page = int(request.args.get('page', 1))
per = int(request.args.get('per', 100))
start = (page-1)*per
return jsonify(df.iloc[start:start+per].to_dict(orient='records'))
改善提案(具体的にやること)
技術的なコスト見積もりの目安: CSV→API化 + メタデータ整備は中規模のシステムで数百万円〜数千万円。ただし長期的な運用コストは大幅に下がるし、二次利用で生まれる価値は大きいです。
オープンデータ活用のユースケース提案
- 都道府県・市区町村のCSVを正規化して、災害時の避難所マップや自動化レポートに連携
- 統計と行政サービスの利用ログをつなげて政策効果を測定(A/Bテストのように)
まとめ
要するに、ファイル公開はスタート地点に過ぎない。エンジニアの立場から言うと「標準化されたスキーマ+APIレイヤ+メタデータ」がなければ行政データは実用的な資産になりにくい。内閣官房のルール決定は良い流れだけど、現場で動く実装ガイドとツールが今こそ要るんですよね!
おかむーから一言
おかむーです。テクノロジーで社会をアップデートするって言うと大げさに聞こえるかもだけど、データの"最後の1歩"を埋めるだけで政策はずっと効くようになります。エンジニアと行政が一緒に手を動かす時代ですよ〜
정보 출처
- https://notice.go.jp/docs/status_notice.csv
- https://www.env.go.jp/content/900398071.csv
- https://www.inpit.go.jp/content/100869372.csv
- https://www.mhlw.go.jp/content/001682075.csv
- https://www.soumu.go.jp/main_content/000323625.csv
- https://www.zhihu.com/question/290714454
- https://www.cas.go.jp/jp/seisaku/digital_gyozaikaikaku/kakusyoDX4/kakusyoDX4.html
- https://www.zhihu.com/question/6430289390
- https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/256dcba6-b936-4031-b88d-3abb27e27f9b/7c809f2f/20260331_meeting_executive_outline_05.pdf
- https://www.zhihu.com/question/38923279
- https://catalog.data.metro.tokyo.lg.jp/dataset
- https://portal.data.metro.tokyo.lg.jp/
- https://www.city.niigata.lg.jp/shisei/seisaku/it/open-data/
- https://opendata.pref.saitama.lg.jp/datasets
- https://www.harp.lg.jp/opendata/dataset/79.html
공유하기
관련 리포트

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

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

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