코드로 말하는 매니페스토: API와 데이터로 검증하는 디지털 정책

IT 정책 제안
코드로 말하는 매니페스토: API와 데이터로 검증하는 디지털 정책
  • 핵심을 3줄로 요약합니다
- 정부·지자체가 내세운 디지털 사업은 데이터 공개 방식(문서·PDF vs CSV/API)에 크게 의존합니다

- API·머신리더블을 기준으로 KPI와 실적의 갭을 측정하면 정책의 '실체'가 보입니다

- 개선은 조직적 메타데이터, 표준 API, 자동화 파이프라인으로 가능하다는 게 결론입니다

結論

안녕하세요~ 오카무입니다! 요약하자면, 정책을 믿기 전에 '데이터가 읽히는가'를 먼저 보세요. 문서로만 남아있는 KPI는 검증 불가능한 주장에 그치기 쉬워요. 정부·지자체는 PDF/HTML 보고서 위주로 결과를 공개하는 경우가 많지만, 엔지니어적으론 CSV·JSON·API 한 줄로 해결되는 문제가 많습니다. 要するに、데이터를 머신리더블하게 공개하면 정책 검증과 개선 주기가 빨라집니다.

레포트 본문

현재 생태계: 어디서 뭘 찾을 수 있나

이거 보세요: 중앙정부의 API 카탈로그는 e-Gov의 "行政API"(https://www.e-gov.go.jp/digital-government/api)에서 확인할 수 있고, 지방은 도쿄 오픈데이터 카탈로그(https://portal.data.metro.tokyo.lg.jp/)나 사이타마(https://opendata.pref.saitama.lg.jp/)처럼 CSV를 제공하는 곳도 있어요. 하지만 여전히 사업평가 자료는 PDF로 배포되는 경우가 많습니다(예: 地方創生 관련 가이드라인 PDF: https://www.chisou.go.jp/sousei/pdf/r5_guideline-checkaction.pdf, 지역별 성과평가 예: 須賀川市 평가 페이지).

  • 장점: 중앙·지방 모두 일부 표준화된 데이터셋(인구, 행정구역 등)을 공개하고 있음
  • 단점: KPI·사업별 실적은 PDF/HTML에만 묻혀 있거나, CSV라도 구조가 제멋대로인 경우가 많음

기술적 검증 포인트

1) 머신리더블 여부

  • PDF 내부 표는 자동 추출 어려움(레이아웃·폰트·인코딩). Tabula/ Camelot 같은 툴로도 깨지는 경우 많음
  • CSV/JSON/API로 제공되면 즉시 분석 가능

2) 메타데이터의 유무

  • 데이터셋 설명, 갱신일, 라이선스(머신리더블), 컬럼 설명이 필수
  • DCAT/Schema.org를 따라 메타데이터를 표준화하면 검색·연계가 쉬워짐

3) API의 존재와 형태

  • REST API가 나오면 실시간·자동화 수집 가능
  • OpenAPI 스펙 제공은 클라이언트 자동생성에 필수

4) 식별자와 정규화

  • 사업ID, 지자체코드, 기간 등의 고유 식별자가 없으면 병합 불가능

실제로 해볼 수 있는 기술 스텝(코드 예제 포함)

  • CSV/JSON으로 자동 수집 후 KPI 시계열 생성(파이썬 예시):
import requests

import pandas as pd

예: 도쿄 오픈데이터에서 CSV 직접 다운로드

url = "https://catalog.data.metro.tokyo.lg.jp/dataset/xxxx/resource/xxxx.csv"

df = pd.read_csv(url, encoding='utf-8')

날짜 파싱, 누락값 처리

df['date'] = pd.to_datetime(df['date'])

df = df.fillna(0)

간단한 KPI 시계열 계산

kpi = df.groupby('date')['value'].sum().sort_index()

print(kpi.tail())

  • PDF 테이블을 자동화로 추출해야 한다면 Tabula 사용(그러나 포맷 깨짐 주의):
# tabula-java 설치 후

tabula -a 10,10,500,400 -p 1 report.pdf -o output.csv

  • API가 있다면 페이징과 인증을 고려해서 안정적으로 수집:
def fetch_api(url, params=None):

while url:

resp = requests.get(url, params=params)

data = resp.json()

yield from data['items']

url = data.get('next')

요점: 코드로 수집 가능한 데이터가 많아지면 검증 자동화가 가능해져서 정책의 '실행성'이 높아집니다.

KPI와 실적의 갭 분석: 예시 접근법

  • 국(혹은 지자체) 가이드라인(https://www.chisou.go.jp/...)에서는 교부금 사업의 KPI 달성 여부를 점검하도록 명시하고 있어요. 그러나 실제로는 결과가 PDF보고서로만 남아있고, 연속된 시계열 데이터가 공개되지 않는 경우가 많습니다.
  • 접근 방법
1. 사업별 KPI 명세를 스크래핑/수작업으로 구조화(CSV)

2. 사업 집행 데이터(예: 예산 집행, 참여자 수)를 시간축으로 정렬

3. 목표 대비 실적 비율을 계산하고, 시각화해 갭을 표시

이렇게 하면 '목표 달성'이라는 문장 대신 숫자와 시계열로 말할 수 있어요. 예를 들어 연도별 달성률이 60→55→50%라면 경향이 한눈에 보이죠.

개선 제안(구체적, 엔지니어 관점)

  • 데이터 포맷: 모든 사업평가 자료는 PDF와 함께 CSV/JSON을 의무 공개
  • API 표준: OpenAPI 스펙 기반의 RESTful API를 공개하고, 페이징·정렬·필터를 지원
  • 메타데이터: DCAT 또는 schema.org Dataset을 적용해 검색 가능성 확보
  • 식별자: 사업ID, 지자체코드, 재무회계ID 등 표준화
  • 자동화 파이프라인: CI/CD 방식으로 데이터 유효성 검증(스키마 체크, 값 범위 검사)을 넣기
  • 품질지표 공개: 데이터신선도, 결측률, 스키마 적합성 등 지표를 공개해 신뢰도를 수치화

또한, 지역 간 비교를 쉽게 하려면 공통 스키마를 정부 차원에서 배포하고, 각 지자체는 이를 준수하는 템플릿으로 데이터를 업로드하면 돼요. BODIK API(https://www.bodik.jp/project/bodik-api/) 같은 사례를 참고하면, 전국 데이터셋을 DB로 모아 표준 테이블을 만들 수 있습니다.

まとめ

  • 정책의 실효성은 '문서의 존재'가 아니라 '데이터의 기계독해성'으로 판별됩니다
  • PDF만 있는 KPI는 검증이 어려우니 CSV/JSON/API를 우선 요구하세요
  • 기술적으로는 OpenAPI, DCAT, 표준식별자, 자동화 검증 파이프라인으로 빠르게 개선 가능
  • 지방행정의 오픈데이터 포털(도쿄·사이타마 등)과 중앙 e-Gov API를 연결하면 정책 검증의 기반이 만들어집니다

おかむーから一言

오카무입니다! 기술로 시민과 정책을 이어주는 건 생각보다 단순해요—데이터를 쓰기 편하게 만들면 끝입니다. 스타트업하던 시절처럼 작게 자동화하고, 빠르게 개선해보세요. 데이터를 열면 답이 보입니다!

공유하기