コードで語るマニフェスト:政府データの今をエンジニア目線で検証

IT 정책 제안
コードで語るマニフェスト:政府データの今をエンジニア目線で検証

안녕하세요~ 오카무입니다! 오늘은 정부·지자체 공개 데이터들을 코드 관점에서 뜯어보는 글입니다. 정책을 CSV, API, 스키마로 검증하는 ‘코드로 말하는 매니페스토’ 스타일로 갑니다~

  • 이 글 3줄 요약
- 정부·지자체는 CSV 공개를 하고 있어 접근성은 나아짐, 하지만 형식 일관성·머신리더블 수준은 제각각이에요

- API 부재·엔코딩·스키마 불명시는 개발자가 실제로 쓸 때 큰 장벽입니다

- 개선안은: 명확한 스키마(CSVW/JSON Schema), API 우선 공개, 자동화된 검증 파이프라인입니다

結論

공개된 CSV들은 '가능성'을 보여주고 있어요! 하지만 엔지니어 관점에서는 아직 생산성 높은 데이터 플랫폼이라고 하기엔 멀었어요. 要するに、機械がそのまま読み取れるルールとAPIがないと、現場での利活用が進まないということです。

レポート本文

何が見えているか(データソース確認)

これ見てくださいよ:検索結果にあるように、notice.go.jp の NICTER注意喚起(https://notice.go.jp/docs/status_nicter.csv)や、環境省・厚労省のCSV(https://www.env.go.jp/content/900398071.csv、https://www.mhlw.go.jp/content/001429177.csv)など、公式ドメインでCSVが直接公開されてるケースが複数あります。

エンジニア的に言うと、CSVで出してくれるのはめっちゃ嬉しいんですけど、次の点が気になるんですよね:

  • エンコーディング不明/Shift_JISとUTF-8混在の可能性
  • カラム名や日付フォーマットの不統一
  • スキーマ定義(型・必須・説明)がない
  • API(REST/GraphQL)でのアクセスが用意されていない

総務省の「統計表における機械判読可能なデータの表記方法の統一ルール」(https://www.soumu.go.jp/menu_news/...)や内閣官房の資料(https://www.cas.go.jp/.../data8_siryou1.pdf)は策定が進んでるけど、実運用とギャップがある印象です。

技術的な検証ポイント

ここからは具体的な技術チェックリストと簡単なコード例を出します。コード書く人ならわかると思うんですけど、初歩的なパイプラインでも次が必要です。

  • 取得: HTTPヘッダでContent-Type, charsetを確認
  • 読込: pandas等で encoding 指定、parse_dates
  • スキーマ検証: JSON Schema または CSVW
  • 公開: API化(ページネーション、クエリ、メタデータ)

Pythonでの取り込み例(イメージ):

import requests

import pandas as pd

r = requests.get('https://notice.go.jp/docs/status_nicter.csv', timeout=10)

encodingはヘッダ確認後適宜

r.encoding = 'utf-8' # または 'shift_jis'

from io import StringIO

df = pd.read_csv(StringIO(r.text), parse_dates=['date'], dtype={'id': str})

スキーマ簡易チェック

expected_cols = ['date','region','alert_level']

missing = set(expected_cols) - set(df.columns)

print('missing', missing)

要するに、現場ではこういう小手先処理を毎回書くのが面倒なんです!API一本、またはスキーマ付きのデータカタログがあれば不要になるんですよね。

政策評価との接続(KPIと実績のギャップ)

デジタル田園都市国家構想交付金関連の公表資料(https://www.chisou.go.jp/...)を見ると、交付金の成果はKPIベースで報告されていますが、評価の多くが自己評価ベースだったり、機械的な達成率算出に頼っていたりします(検索結果[13])。

エンジニア的には、KPIと実際のデータを直接リンクして検証可能にするのがベスト。例えば交付金の実績レコードに「project_id」「geo_id」「kpi_達成値」を構造化データとして公開して、外部からクロスチェックできるようにする、という話です。

改善提案(具体的)

  • データカタログ+スキーマレジストリ
  • - 各CSVに machine-readable metadata (CSVW/JSON-LD) を付与

  • API優先設計
  • - GET /datasets, GET /datasets/{id}/records のようなRESTを提供

  • 署名付きURL+バージョン管理
  • - データを更新するときはバージョンを切って後追い可能に

  • 自動検証パイプライン
  • - CIでスキーマ検証、NULLチェック、型チェックを回す

    短いJSON Schemaイメージ:

    {
    

    "$id": "https://example.go.jp/schemas/nicter.json",

    "type": "object",

    "properties": {

    "date": {"type": "string", "format": "date"},

    "region": {"type": "string"},

    "alert_level": {"type": "integer"}

    },

    "required": ["date","region"]

    }

    まとめ

    • CSV公開は前進。ただし開発者がそのまま使える品質・仕様になってないことが多い
    • API化、スキーマ付与、エンコーディング明示、バージョニング、CIによる自動検証が鍵
    • 政策KPIと公開データを結びつけて外部検証可能にすれば、透明性と活用が一気に上がる

    おかむーから一言

    스타트업·엔지니어 출신으로서 말하자면, 테크로 공공을 리모델링할 수 있어요. 데이터가 살아있으면 정책도 살아납니다! 같이 코드로 증명해봅시다!

    공유하기