관보 12.8만 건을 마크다운으로 변환해서 AI가 읽을 수 있게 만들었습니다

관보 12.8만 건을 마크다운으로 변환해서 AI가 읽을 수 있게 만들었습니다

정부가 매일 발행하는 공식 기록이 있습니다. 관보(官報)입니다.

법률 공포, 인사발령, 고시, 공직자 재산공개까지 — 정부가 ‘했다’고 선언하는 모든 행위는 관보에 실려야 효력이 생깁니다. 조선시대 조보(朝報)부터 따지면 500년 된 기록 체계인데, 지금은 gwanbo.go.kr에서 PDF로 누구나 열람할 수 있습니다.

문제는 이 PDF를 AI에 넣으려고 하면 생깁니다.

왜 만들었나

중앙부처에서 일하면서 다른 부처 직제 개정이나 인사발령을 추적할 때 관보를 자주 봅니다. 그런데 매번 PDF를 열어서 눈으로 훑는 게 비효율적이었고, RAG에 넣으려 해도 매번 전처리부터 다시 해야 했습니다. 관보는 저작권법 제7조에 따라 자유 이용 대상이라 법적 장벽도 없습니다. 그래서 원본 PDF는 그대로 두고, 같은 내용을 AI가 읽기 쉬운 형태로 한 벌 더 만들자고 생각했습니다.

무엇을 만들었나

2020-01 ~ 2026-04, 약 128,000건의 관보를 Markdown + YAML frontmatter로 변환했습니다.

• 날짜별·기관별 정적 JSON 인덱스 제공 (CORS 제한 없음)

• 정적 HTML 리더에서 바로 탐색·본문 읽기 가능

• 외부에서 fetch해서 RAG / 임베딩 파이프라인에 바로 연결 가능

# 예시: 코퍼스에서 날짜·기관·본문 추출

from pathlib import Path

import re

ROOT = Path('derived/readable-corrected')

fm_re = re.compile(r'^---\n(.*?)\n---\n', re.DOTALL)

for md in ROOT.rglob('*.md'):

text = md.read_text(encoding='utf-8')

fm_match = fm_re.match(text)

body = text[fm_match.end():] if fm_match else text

yield {

'date': md.parent.name,

'inst': md.name.split('_')[1],

'body': body,

}

// 정적 인덱스 API — 브라우저에서 바로 fetch 가능

fetch('https://hosungseo.github.io/ai-readable-gazette-kr/data/meta.json')

.then(r => r.json())

.then(meta => console.log(meta.total_docs, meta.date_range));

OCR 파이프라인

PDF → 텍스트 추출에는 한글과컴퓨터의 오픈소스 오픈데이터로더(opendataloader)를 사용했습니다. 공공 데이터를 다루는 작업이니 도구도 국산 오픈소스 위에서 돌리는 게 맞다고 생각했습니다.

변환 과정에서 ‘위’→’옄’, ‘번’→’뮈’ 같은 OCR 깨짐이 있었는데, 사전 기반 12단계 보정 파이프라인을 만들어 자체적으로 고쳤습니다. 초기에 단일 글자를 무작정 전역 치환했다가 ‘모친동산’ 같은 과보정 사고가 나서, 지금은 1,000+ 샘플에서 이웃 글자 분포를 확인한 뒤에만 전역 치환을 허용하는 정책을 쓰고 있습니다. 오픈데이터로더 자체가 발전하면 깨진 글자도 줄어들 것이고, 도구가 좋아지면 코퍼스도 같이 좋아지는 구조입니다.

활용 시나리오

• Claude / ChatGPT에 날짜별 관보 md를 첨부해서 “이 날 어떤 인사발령이 있었나” 질문

• 법령 공포 이력을 시계열로 추적

• 기관별 고시·공고 트렌드 분석

• 공직자 재산공개 데이터 구조화

• 커스텀 GPT / RAG 시스템의 공공 법령 지식 베이스로 활용

링크

• 라이브 리더: https://hosungseo.github.io/ai-readable-gazette-kr/

• GitHub: https://github.com/hosungseo/ai-readable-gazette-kr

• 배경 에세이: https://gongpenclaw.substack.com/p/ai-readable

한 줄 요약

공개는 계속 중요하지만, 이제는 공개만으로 충분하지 않습니다. 공개 다음에는 AI-readable이 와야 합니다

2

뉴스레터 무료 구독