대한민국 공공기관은 여전히 .hwp 확장자를 가진 파일을 많이 사용한다.
이 파일은 한글과컴퓨터에서 만든 독자 규격 문서다.
문제는 이 형식이 다른 프로그램과 완전히 호환되지 않는다는 데 있다.
문서를 열어보는 것은 가능하다.
하지만 그 내용을 구조적으로 읽고, 데이터처럼 활용하는 것은 전혀 다른 문제다.
그리고 바로 이 지점이, 공공문서를 AI로 처리하려 할 때 가장 큰 장애물이 된다.
1. 공문서 파싱이 어려운 이유 - hwp

HWP는 단순한 문서 파일이 아니다.
한글 전용 바이너리 포맷이라서, 사람이 눈으로 읽는 것과 기계가 구조적으로 해석하는 것이 완전히 다른 문제다.
파일을 열어보는 것 자체는 가능할 수 있다.
하지만 문단, 표, 항목, 서식 같은 의미 단위로 안정적으로 파싱하는 것은 훨씬 어렵다.
이유는 단순하다.
문단, 스타일, 레이아웃 구조가 복잡하게 얽혀 있고
텍스트 자체보다 출력 형태 중심으로 설계되어 있으며
표, 도형, 누름틀 같은 요소가 들어가면 난이도가 급격히 올라간다
결국 HWP는 사람이 보기에는 문서지만, AI나 코드 입장에서는 다루기 까다로운 포맷에 가깝다.
가장 큰 문제는, OOXML이나 PDF처럼 널리 쓰이는 표준 기반 문서 흐름과는 거리가 있다는 점이다.
2. hwp VS hwpx
이러한 한계를 의식해서인지, 최근에는 .hwpx 형식도 함께 사용되고 있다.
HWPX는 내부적으로 XML 기반 구조를 사용한다.
즉, 파일을 zip처럼 열고 XML을 파싱하는 방식으로 접근할 수 있다.
이 차이는 생각보다 크다.
HWP가 읽기 힘든 바이너리 덩어리라면, HWPX는 구조를 분석할 수 있는 문서에 가깝다.
나 또한 이 점을 활용해 성취기준 데이터를 추출하고, 데이터베이스로 정리해보기도 했다.
문서를 단순히 읽는 수준을 넘어서 데이터로 재활용할 수 있다는 점에서 HWPX는 분명 의미 있는 변화다.
3. hwpx + AI로 공문서 만들기
그렇다면 자연스럽게 이런 생각이 든다.
공문서를 HWPX로 다룰 수 있다면, AI로 읽고 쓰는 것도 가능하지 않을까?
그래서 ChatGPT와 Claude를 활용해 실제로 공문서를 읽히고, 신청서를 작성하도록 해보았다.
1) ChatGPT로 공문서 만들기

ChatGPT는 공문서 내용을 꽤 잘 읽는다.
요약이나 핵심 정리는 상당히 정확하다.
하지만 신청서를 작성해 달라고 하면 완성된 문서 형태가 아니라 내용만 텍스트로 출력하는 경우가 많다.
초안을 만드는 데는 충분히 유용하지만 바로 제출 가능한 문서를 만드는 데는 한계가 있다.
2) Claude로 공문서 만들기

Claude에게 동일하게 요청해보았다.
이번에는 .doc 형식의 문서를 생성해준다.
양식도 꽤 잘 맞고, 내용도 자연스럽다.
하지만 결국 결과물을 복사해서 기존 공문서 양식에 다시 붙여넣어야 한다.
여전히 완전한 자동화라고 보기는 어렵다.
4. kordoc + python-hwpx로 공문서 만들기
어쩌다가 깃허브에서 공문서를 파싱하는 라이브러릐를 하나 발견했다.
이걸 이용하면 vscode나 cursor에서도 공문서를 작성할 수 있을 것 같다는 생각이 들었다.
node기반이기에 npm을 이용해 설치해주었다.
korDoc라는 폴더를 만들고 설치했다.
mkdir korDoc
cd korDoc
npm i kordoc
이제 AI가 이용할 수 있도록 MCP를 설치해줄 차례.
F1을 누른 뒤 MCP를 검색해준다.

그리고 Tools&MCP로 들어간 뒤, 커스텀 MCP를 추가해주었다.

처음에는 공식 문서대로 아래와 같이 MCP를 추가해주었다.
그런데 오류가....?
{
"mcpServers": {
"kordoc": {
"command": "npx",
"args": ["-y", "kordoc-mcp"]
}
}
}2026-04-02 10:37:44.505 [error] npm error 404 'kordoc-mcp@*' is not in this registry.
Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'pdfjs-dist' imported from C:\Users\fecu\AppData\Local\npm-cache\_npx\5ea84d466de2b626\node_modules\kordoc\dist\chunk-VOMMXHNQ.js위 처럼 오류가 뜨길래 AI 형님에게 여쭤보니, 의존성 때문에 아래처럼 바꾸어 주라고 한다.
이렇게 등록하니 MCP를 순조롭게 등록할 수 있었다.
{
"mcpServers": {
"kordoc": {
"command": "npx",
"args": ["-y", "-p", "kordoc", "-p", "pdfjs-dist", "kordoc-mcp"]
}
}
}korDoc에 한글문서를 넣고 파싱하도록 해보았다.
커서에서 자동으로 공문서를 읽고 해당 내용을 요약해주었다.


이제 신청서를 작성하도록 시키기만 하면 되는데...
문제는 kordoc에 hwp, hwpx를 작성하는 기능이 없다는 것이다.

그래서 또 찾게된 것은 python-hwpx이다.
이건 학교에 계신 정보 선생님께서 만들어 두셨다.
hwpx가 xml을 지원하는 것을 활용해 문서를 제작하도록 만들어 놓았다.
이 또한 MCP를 지원하기에, 의존성과 함께 설치해준다.
MCP에 대한 깃허브 링크는 아래에 달아둔다.
pip install uv
pip install python-hwpx이전과 마찬가지로, 커스텀 MCP를 등록해준다.
{
"mcpServers": {
"hwpx": {
"command": "uv",
"args": ["tool", "run", "hwpx-mcp-server"]
}
}
}그리고 아래처럼 명령을 내려 보았다.
동아리 정보를 바탕으로 신청서 작성해줘.이렇게 하니 아래처럼 신청서를 작성해주었다.
내용은 제출할 수 있을 정도로 충실하지만, 여전히 양식은 갖추지 못한 상태이다.

5. 후기
여러 가지 AI 도구와 라이브러리를 활용해 공문서를 다뤄보았다.
HWPX처럼 구조화된 문서가 등장하면서 확실히 자동화 가능성은 이전보다 높아졌다.
하지만 여전히 한계는 명확하다.
HWP 기반 문서는 구조적으로 자동화에 불리하고, AI가 안정적으로 이해하기에도 적합하지 않은 포맷이다.
최근 어떤 글에서 “스크린에 찍을 수 있는 도장을 개발한 일본을 욕할 것이 아니다”라는 말을 본 적이 있다.
나 역시 여기에 공감한다.
국산 소프트웨어를 보호하기 위해 갈라파고스 같은 생태계를 계속 유지할 것인가?
아니면 국제 표준 기반의 문서 체계를 받아들일 것인가?
이제 공직 사회도 이 문제를 진지하게 고민해야 할 시점이다.







댓글을 불러오는 중...