코드로 읽는 정책: 일본 정부 데이터와 API를 기술적으로 검증해봤다

안녕하세요~ 오카무입니다! 오늘은 일본 정부·지자체 공개 데이터와 시스템을 엔지니어 관점에서 파헤쳐보는 내용이에요. 코드로 말하는 매니페스토, 들어가볼게요~
- e-Gov API 카탈로그가 있지만 실제 현장 데이터는 CSV/PDF 혼합이라 활용에 걸리는 노력 차이가 큼
- 기계가 읽기 쉬운 API 설계(스키마·認証·メタ데ータ)가 부족한 부분은 표준화로 크게 개선 가능
- 구체적 코드 예시로 API 호출→정형화→시각화까지 워크플로우를 제시함
結論
실무적으로 말하면, 일본 중앙부처는 API·CSV·公開カタログ을 갖추고 있지만 '엔드투엔드' 기계가독성/스키마 일관성·メタデータ 관리가 약해서 재사용 비용이 높음. 엔ジニア視点으로는 OpenAPI/JSON Schema·DCAT/ISOコード·CI導入로 큰 개선 효과를 낼 수 있다!
レポート本文
データソースとアクセス状況(これ見てくださいよ)
참조한 공개 자료들:
- e-Gov 포털 행정API(https://www.e-gov.go.jp/digital-government/api) — 중앙 API 카탈로그
- e-Gov APIカタログ 목록(https://api-catalog.e-gov.go.jp/info/ja/apicatalog/list)
- 総務省 오픈データ戦略(https://www.soumu.go.jp/...) — 표준API·データモデル 언급
- 각종 CSV 링크(内閣府やdigital.go.jp에 공개된 CSV들)
이거 보세요! 중앙 레벨에서 API와 CSV가 병존하는데, 엔지니어적으로 보면 두 가지 문제가 섞여 있어요:
- 같은 주제의 데이터가 부처별로 다른 스키마로 제공됨(컬럼명·코드体系 불일치)
- 메타데이터(更新日、ライセンス、スキーマ定義)가 불十分で、結合や自動化が難しい
要するに、API가 "ある"だけでは足りないということです。データの発見性・相互運用性・自動更新が重要なんですよね。
技術的評価: API vs CSV/PDF
- API(e-Gov):
- 단점: 全体としてOpenAPI 스펙이나共通スキーマ가必須で、まだ部局間標準化が進んでいない印象
- CSV/PDF:
- PDFは最悪。ス캔형 PDF나レイアウト依存表は抽出コストが高い
엔지니어적 포인트: 표준化되지 않은 CSV는 ETL 파이프라인에서 매번 변환 코드를 추가해야 해서 기술부채가 쌓여요.
データ品質とスキーマ設計の観点
チェックリスト:
- スキーマ定義があるか(JSON Schema/OpenAPI/CSVW)
- 使用コード体系(都道府県コード・法人番号・ISO)が明示されているか
- ライセンスと更新頻度が明示されているか
- 結合キー(法人番号・地域コード)が一貫しているか
現状の問題点(観察に基づく一般的課題):
- スキーマがドキュメント化されてないケースが多い
- 地理座標が文字列で混在している、NULLハンドリングが曖昧
- 大きなCSVを丸ダウンロード前提にしていて、APIでのページ分割が不十分
政策目標と実績のギャップを見る視点
総務省のオープンデータ戦略は「標準API・データ規格の確立」を掲げているけど、現場のデータ運用はまだ移行途中。目標:標準化→実績:部分的導入、って感じですね。
要するに、政策の数値目標(例:公開率、再利用数)と実際の利用障壁(スキーマ不整合・メタデータ不足)がかみ合っていないケースが多いです。
改善提案(技術的に刺さるもの)
- JSON Schema / CSV on the Web (CSVW) / DCATを公式ガイドラインに組み込む
- 自動クライアント生成、テスト、モックで開発効率UP
- 更新日・version・ライセンスを必須化、データカタログで横断検索可能に
- API利用者向けに統一的なOAuth2/キー管理とSLAを提供
- スキーマバリデーション・重複チェック・NULL割合アラートをパイプライン化
- curl / Python(pandas) / JavaScript(fetch) のテンプレートを用意
コード例: e-Gov API 호출 → CSV 병행 처리 워크플로우
- API 호출 예시 (curl)
curl -s "https://api.example.go.jp/v1/resource?limit=100" -H "Authorization: Bearer YOUR_TOKEN" | jq .
- Python으로 가져와서 pandas로 정형화하기
import requests
import pandas as pd
url = 'https://api.example.go.jp/v1/resource'
headers = {'Authorization': 'Bearer YOUR_TOKEN'}
resp = requests.get(url, headers=headers, params={'limit':100})
data = resp.json()['items']
df = pd.json_normalize(data)
스키마 정리
expected_cols = ['id','name','code','lat','lon','updated_at']
for c in expected_cols:
if c not in df.columns:
df[c] = None
型変換
df['lat'] = pd.to_numeric(df['lat'], errors='coerce')
CSV 불러오기 (부처 제공 CSV와 병합)
csv_df = pd.read_csv('https://www.digital.go.jp/.../xxxxxx_hospital.csv', encoding='utf-8')
조인キー 정리
merged = df.merge(csv_df, how='outer', left_on='code', right_on='医療機関コード')
print(merged.head())
要するに、APIとCSVを両方サポートしておいて、クライアント側で統一スキーマにマップするのが現実的なやり方です。
活用提案: オープンデータのユースケース
- 統合ダッシュボード(河川監視・診療所検索・法人統計の横断)
- スマートシティのリアルタイムセンサデータと行政データの結合(APIで低遅延取得)
- 民間向けアプリケーション: 位置ベースのオープンデータ検索(現状、CSVだけだと実装コストが高い)
まとめ
- 中央官庁はAPIカタログとCSVを提供しているが、スキーマ・メタデータの統一が不十分で再利用コストが高い
- OpenAPI/JSON Schema/CSVW/DCATなど既存標準を採用すれば、再利用性と開発効率が飛躍的に上がる
- 技術的にはAPI設計・認証・CIによる品質保証・サンプルコードの整備で即効性のある改善が可能
おかむーから一言
テクノロジーで社会をアップデートしたいなら、データの"取り出しやすさ"をインフラとして整備するのが先。小さな標準化が、大きなイノベーションを生むんですよ!
정보 출처
- https://www.e-gov.go.jp/digital-government/api
- https://www.soumu.go.jp/menu_seisaku/ictseisaku/ictriyou/opendata/opendata03.html
- https://japan-opendata.github.io/awesome-japan-opendata/
- https://www.jichi.ac.jp/
- https://api-catalog.e-gov.go.jp/info/ja/apicatalog/list
- https://www5.cao.go.jp/j-j/wp/wp-je24/csv/d1-1-4.csv
- https://www.jinji.go.jp/content/900024615.csv
- https://www.digital.go.jp/assets/contents/node/basic_page/field_ref_resources/0066e8a8-6734-44ab-a9a9-8e09ba9cb508/xxxxxx_hospital.csv
- https://www.env.go.jp/content/900398071.csv
- https://www.mofa.go.jp/mofaj/kids/ichiran/files/info.csv
- https://ja.wikipedia.org/wiki/%E5%85%AC%E5%85%B1
- https://www.intec.co.jp/column/smartcity-08.html
- https://kotobank.jp/word/%E5%85%AC%E5%85%B1-494676
- https://www.digital.go.jp/resources/data_case_study_private
- https://www.takeda.tv/saga/blog/post-230907/
공유하기
관련 리포트

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

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

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