01문제
이 조직의 의사결정은 문서로 이뤄집니다. 초안이 오가고, 상급자가 변경추적을 켠 채로 고치고, 코멘트로 질문을 달고, 최종본이 PDF로 굳습니다. 자동화를 붙이려면 이 문서들을 읽어야 하는데, 일반적인 텍스트 추출은 본문만 긁고 변경추적과 코멘트를 버립니다. 그런데 조직 입장에서 중요한 정보는 대개 버려지는 쪽에 있습니다. 누가 무엇을 왜 고쳤는지가 최종 문장보다 더 많은 것을 말해 줍니다.
기존 방법은 두 가지였고 둘 다 막혔습니다. 첫째, 오피스 프로그램을 서버에 띄워 변환하는 방식은 무거운 데스크톱 의존을 파이프라인에 끌어들이고 실패 시 원인 추적이 어렵습니다. 둘째, 변환기를 그냥 통과시키는 방식은 변경추적을 삭제하거나 반대로 취소선 텍스트를 본문에 섞어 버려 원본보다 나쁜 입력을 만듭니다.
여기에 한국어 조건이 하나 더 붙었습니다. 스캔된 한국어 PDF의 표와 레이아웃이 깨지면 그 문서는 요약 단계에서 조용히 왜곡됩니다. 읽기 실패가 눈에 보이는 오류로 나타나지 않는다는 점이 이 문제의 위험한 부분입니다.
02제약
- 데스크톱 오피스 의존 제거. 서버에서 GUI 프로그램을 띄우는 구성은 쓰지 않습니다. 순수 라이브러리로 처리해야 합니다.
- 왕복 무손실. 읽고 다시 쓰는 과정에서 변경추적·코멘트가 사라지면 실패입니다. 형식 규격을 직접 다뤄야 합니다.
- 한국어 우선. 영문 문서에서 잘 되는 것으로는 판단하지 않습니다. 한국어 표·주석·줄바꿈에서 검증합니다.
- 실무자가 쓸 수 있어야 합니다. 파이프라인을 아는 사람만 쓸 수 있으면 도입 효과가 특정 인원에 묶입니다.
- 검증 없는 개선 주장 금지. 체감 대신 같은 과업을 두 번 돌려 나온 수치로 말합니다.
03접근
1) 규격을 직접 다뤘습니다
DOCX의 변경추적과 코멘트를 문서 규격(OOXML) 수준에서 읽고 쓰는 라이브러리를 만들었습니다. 중간 변환기를 거치지 않으므로 무엇이 왜 사라졌는지 추적할 수 있고, 외부 오피스 설치가 필요 없습니다.
2) 왕복 검사를 개발 규칙으로 못 박았습니다
기능을 추가할 때마다 문서를 변환해 되돌린 뒤 원본과 같아지는지 확인하는 pandoc round-trip 테스트를 기본 규칙으로 채택했습니다. 이 규칙 때문에 초기 사이클에서 여러 번 설계를 되돌렸지만, 그 대가로 "특정 문서에서만 조용히 깨지는" 부류의 결함이 초기에 걸러졌습니다.
3) v1에서 v4까지 반복했습니다
한 번에 완성하지 않고 네 번의 사이클로 나눴습니다. 각 사이클은 실패하는 문서 유형을 먼저 확보하고 그것을 통과시키는 방식으로 진행했습니다. 최종적으로 테스트 48건이 라이브러리에 남아 회귀를 막습니다.
4) 스캔 PDF는 비전 모델로 읽고 조판으로 검증했습니다
스캔된 한국어 PDF는 텍스트 추출로 표를 살릴 수 없어 비전 언어 모델 기반 문서 파서 MinerU VLM을 붙였고, 결과를 조판 엔진 typst로 다시 렌더해 원본과 비교하는 방식으로 확인했습니다. 표가 깨졌는지를 눈으로 볼 수 있게 만든 것이 핵심입니다.
5) 실무자에게는 스킬로 포장했습니다
파이프라인을 라이브러리로만 남기면 쓰는 사람이 개발자에 한정됩니다. 그래서 Claude Code 스킬로 패키징해, 문서를 던지면 처리 절차가 자동으로 선택되게 했습니다.
6) 효과를 A/B로 측정했습니다
스킬 도입 효과를 체감으로 말하지 않기 위해 동일 과업을 스킬 없이 한 번, 스킬을 붙여 한 번 수행하는 파일럿을 돌렸습니다. 처리 시간과 도구 호출 횟수를 같이 기록해 개선이 어디에서 나왔는지 분리했습니다.
04결과
| 항목 | 실측 |
|---|---|
| 동일 과업 처리 시간 | 67초 → 31초 |
| 처리 시간 단축률 | 55% |
| 도구 호출 횟수 | 절반으로 감소 |
| 라이브러리 회귀 테스트 | 48건 |
| 변환에 필요한 데스크톱 오피스 설치 | 0건 |
| 개발 사이클 | 4회 (v1-v4) |
변경추적과 코멘트가 살아 있는 상태로 문서를 파이프라인에 넣을 수 있게 되면서, 보고 문서의 수정 이력 자체가 자동화의 입력이 됐습니다. 최종본만 읽던 흐름에서 "무엇이 왜 바뀌었는지"까지 읽는 흐름으로 바뀐 것이 실제 변화입니다.
05재현 가능한 부분
다음은 고객사 고유 정보 없이 이식할 수 있는 산출물입니다.
- DOCX 변경추적·코멘트 처리 라이브러리. 규격 수준 읽기·쓰기, 데스크톱 오피스 의존 없음, 회귀 테스트 48건 포함.
- pandoc round-trip 테스트 규칙. 변환 후 복원 결과를 원본과 비교하는 개발 기본 규칙과 실패 유형 목록.
- 스캔 PDF 검증 루프. MinerU VLM으로 읽고 typst로 다시 렌더해 표·레이아웃 손상을 눈으로 확인하는 절차.
- Claude Code 스킬 패키징 골격. 문서 유형에 따라 처리 경로를 자동 선택하는 구성과 실패 시 사람에게 넘기는 조건.
- A/B 측정 방식. 동일 과업을 도구 유무로 두 번 돌려 처리 시간과 도구 호출 횟수를 함께 기록하는 파일럿 설계.
재현되지 않는 것은 고객사의 문서 서식, 결재 흐름, 그리고 실제 보고 내용입니다. 서식이 바뀌면 실패하는 문서 유형도 바뀌므로, 이식할 때는 그 조직의 실패 문서를 먼저 모으는 편이 정확합니다.
문서 기반 업무를 자동화 흐름에 넣고 싶다면
[email protected] 문의 폼은 두지 않습니다. 메일 한 통이면 됩니다.