코드로 읽는 마니페스토: 일본 정부 데이터와 시스템을 엔지니어 관점에서 후벼파기

IT 정책 제안
코드로 읽는 마니페스토: 일본 정부 데이터와 시스템을 엔지니어 관점에서 후벼파기

안녕하세요~ 오카무입니다! 오늘은 정부 데이터와 시스템을 코드 관점에서 파헤쳐볼게요〜

  • 일본 정부의 공적 데이터 포털(Japan Dashboard, e-Stat 등)은 잘 정리돼 있지만 기계가 바로 쓰기엔 장애물이 남아 있다
  • PDF에 묻힌 표, 불일치한 스키마, 제한적 API가 실무에서 병목을 만든다 — 엔지니어적으로 해결 가능한 문제다
  • 구체적 개선안: CSV/JSON 우선 공개, OpenAPI·DCAT·バージョン管理, 간단한 ETL 코드 예시 제공

結論

데이터는 공개돼 있지만 ‘개발자가 바로 쓰는 데이터’ 수준은 아니다. PDF·웹 시각화 중심의 배포 방식 때문에 재현가능한 분석과 자동화가 어렵다. 엔지니어 관점으로는 API 일원화, 기계가 읽기 쉬운 포맷(CSV/JSON/JSON-LD), 메타데이터 표준(DCAT), 그리고 깃 기반 버전 관리만 있으면 많은 문제가 해결된다.

레포트 본문

현황 스냅샷 — 소스와 상황

これ見てくださいよ: 디지털청의 Japan Dashboard(https://www.digital.go.jp/resources/japandashboard)와 통계청의 e-Stat 대시보드(https://dashboard.e-stat.go.jp/)는 시각화와 접근성 측면에서 훌륭하다. 하지만 실제로 데이터를 기계적으로 끌어다 쓰려면 몇 가지 걸림돌이 보인다.

  • Kantei(首相官邸, https://www.kantei.go.jp/) 문서는 보도자료·정책문서가 PDF로 배포되는 경우가 많다. PDF 내 표는 스크래핑 전용 작업이 필요하다
  • e-Stat는 API(REST)를 제공하지만, 엔드포인트, 파라미터 구조, 인증(appId) 등 사용법을 처음 접하는 사람에게는 진입 장벽이 존재
  • 지방자치체는 포털 표준이 달라서 lg.jp 형태의 개별 포맷 관리 필요

要するに: 데이터가 "있다"와 "바로 쓸 수 있다"는 다른 문제다.

기술적 문제 상세

1) PDF vs CSV/JSON

  • PDF는 레이아웃 기반이라 테이블 추출 툴(예: tabula, Camelot)로도 깨지는 경우가 많다
  • 제안: 원자료는 CSV/JSON으로 동시 제공, PDF는 사람용 보조물로 유지

2) API 품질과 문서화

  • e-Stat API처럼 존재하지만, OpenAPI 스펙이 공개되어 있지 않으면 자동화 파이프라인 작성이 번거롭다
  • 제안: OpenAPI 3.0 명세 제공 + 샘플 코드 스니펫

3) 메타데이터・스키마 불일치

  • 기관별로 컬럼명, 단위, 코드체계가 달라 통합에 비용이 든다
  • 제안: DCAT/Schema.org/JSON-LD로 데이터 카탈로그 표준화

4) 버전관리와 변경 이력

  • 데이터가 업데이트될 때 변경 로그가 없으면 재현성 문제 발생
  • 제안: 데이터셋별 Semantic versioning + GitHub/GitLab mirror

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

  • 배포 포맷: CSV + UTF-8, JSON(ライン区切り), JSON-LD 메타데이터
  • 카탈로그: DCAT 호환 데이터 카탈로그를 단일 포털에 통합
  • API: OpenAPI 명세 + OAuth2 또는 API Key로 안정적 인증(요율 제한 표기)
  • 파이프라인 예시: GitHub Actions로 ETL 자동화 및 데이터 린팅

샘플 코드: e-Stat API 간단 호출(Python)

import requests

APP_ID = 'YOUR_APP_ID'

url = 'https://api.e-stat.go.jp/rest/2.1/app/json/getStatsData'

params = {'appId': APP_ID, 'statsDataId': 'YOUR_STATS_DATA_ID'}

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

res.raise_for_status()

data = res.json()

요약: data['GET_STATS_DATA']['STATISTICAL_DATA'] 이하를 파싱

PDF에서 표 추출 예시 (tabula-py)

# Java 필요

pip install tabula-py

python -c "import tabula; df=tabula.read_pdf('report.pdf', pages=1, multiple_tables=False); print(df[0].head())"

정책 수치 목표와 데이터의 갭 분석

  • 정책 문건(예: 내각의 경제·사회 목표)은 목표 수치와 기간을 제시하지만, 실시간 추적 가능한 KPI 데이터가 연결되어 있지 않은 경우가多い
  • 해결: 각 정책 페이지에 관련 e-Stat ID 또는 Dashboard 데이터셋 링크를 명시해 KPI를 자동으로 갱신·시각화

오픈데이터 활용 사례 제안

  • 재난 대응: 기상·인프라·인구 데이터를 합쳐 실시간 취약지역 맵 생성
  • 예측 모델: 통계청 API + 지방 공공데이터로 사회지표 예측 파이프라인 운영
  • 시민 참여: GitHub 기반 데이터 포털에서 시민이 바로 Issue로 오류 리포트 가능

まとめ

  • 현재 일본 중앙정부·통계 포털은 데이터 공개에 노력하고 있지만, 엔지니어가 바로 쓰기엔 포맷·문서·버전 관리 면에서 개선 여지 크다
  • 단기: CSV/JSON 동시공개, OpenAPI 문서화, 샘플 코드 제공
  • 중장기: DCAT 기반 카탈로그, Git 기반 버전 관리, 기관 간 코드화 표준화

おかむーから一言

테크로 사회를 바꾸는 건 결국 작은 개선의 축적이에요. PDF를 CSV로 한 줄 바꿔주는 것만으로도 분석의 문턱이 확 줄어듭니다. 같이 해보죠!

공유하기