HWPX 문서 수정 후 한글에서 열리지 않음¶
한 줄 요약: 한글 프로그램 밖에서 HWPX의 글자를 고쳤더니 파일이 안 열렸다. 원인은 문단의 줄 배치 정보(
<hp:linesegarray>)가 짧아진 글의 길이를 넘는 위치를 가리킨 것이었다. 글자가 바뀐 문단에서 이 정보를 지워 해결했다.
🚨 증상¶
- 데이터 수집·통합 프로토타입 설계서 v0.7(HWPX)을 한글 밖에서 고친 뒤, 한글에서 파일이 열리지 않았다.
- 예전에 겪은 문제와 똑같은 증상이었다.
- 오류 메시지 원문은 기록에 없다. zip(HWPX는 XML 파일들을 묶은 zip이다) 구조는 멀쩡해 보였다.
📍 상황¶
- 2026-11-11 15:03 — 재난 과제 문서를 검토하던 중이었다(→ 작업 7). 특허 출원 때문에 아키텍처 수준을 넘는 내용을 빼느라, v0.7의 18곳(문장 수정 12, 문단 삭제 6)을 HWPX와 MD에 같이 고친 직후였다. → 그날 일지
🔍 원인¶
HWPX는 문단마다 줄 배치 정보(<hp:linesegarray>: 한글이 저장할 때 계산해 둔 "각 줄이 몇 번째 글자에서 시작하는지" 목록, textpos)를 함께 저장한다.
제2장 8절 표의 접근 제어 칸 문장이 두 줄에서 한 줄(27자)로 줄었다. 그런데 줄 배치 정보는 여전히 "49번째 글자에서 둘째 줄 시작"을 가리켰다. 한글은 문단 길이를 넘는 이 위치 때문에 파일을 열지 못했다.
겉으로는 "파일이 깨진 것"처럼 보였다. 실제로는 zip도 메타데이터도 멀쩡했고, 문단 하나의 낡은 계산값이 문제였다.
"예전과 같은 문제"였던 이유(추정): 예전에 고친 문단들은 원본에서부터 줄 배치 정보가 지워져 있었다. 그때 같은 문제를 이 방법으로 풀었던 흔적으로 보인다. 이번에 처음으로 줄 배치 정보가 남아 있던 문단(표 칸 등)을 고치면서 다시 생겼다.
🧭 해결 과정¶
- zip 구조·메타데이터 의심 → 원본과 바이트 단위로 같았다. 원인이 아니었다.
- 문단 전수 검사 → 문단 728개(표 칸 포함)에서
textpos가 문단 글자 수를 넘는 곳을 찾았다. 원본은 0개, 고장 난 파일은 접근 제어 칸 1개뿐이었다. - 최종 해결 → 원본과 글자가 달라진 문단 25개를 모두 찾았다. 그중 줄 배치 정보가 남아 있던 6개(표 칸 3, 글머리표 문단 3)에서 지웠다. 나머지 19개는 원래 없었다.
문제 문단의 모양은 대략 이렇다(속성은 줄였다).
<hp:p>
<hp:run><hp:t>접근 제어는 …(27자)</hp:t></hp:run>
<hp:linesegarray> <!-- ① -->
<hp:lineseg textpos="0" /> <!-- ② -->
<hp:lineseg textpos="49" /> <!-- ③ -->
</hp:linesegarray>
</hp:p>
<hp:linesegarray> 묶음을 통째로 지웠다.
한글은 줄 배치 정보가 없으면 열 때 다시 계산한다. 이 파일에도 처음부터 정보가 없는 문단이 118개 있었고, 정상으로 열렸다.
- 확인 → 글자 수를 넘는 문단 0개, zip 무결성 정상, 본문 텍스트 변화 없음. 같은 날 손댄 v0.6도 검사했는데 넘는 문단이 없었다.
- 재발 방지 → 저장소 README §9의 HWPX 항목에 "한글 밖에서 글자를 고쳤으면 그 문단의
<hp:linesegarray>를 지운다"와 이유를 적었다.
사용자는 이후 바로 v0.7 본문 검토를 이어 갔다. 파일이 다시 열린 것으로 본다.
✅ 다음에 같은 증상이 보이면¶
- 한글 밖에서 글자를 고쳤나? 그렇다면 바뀐 문단에
<hp:linesegarray>가 남아 있는지부터 본다. textpos가 문단 글자 수를 넘는 문단을 찾는다. 원본에는 0개여야 정상이다.- zip 구조나 메타데이터 비교는 그다음이다. 이번에는 원인이 아니었다.
- 그래도 안 열리면 수정 직전 판으로 되돌리고, 바꾼 곳을 하나씩 나눠 적용해 범인을 좁힌다.
재발 방지: 스크립트로 HWPX 글자를 고칠 때는 그 문단의 줄 배치 정보도 같이 지우는 것을 규칙으로 둔다. 저장 뒤에는 "넘는 문단 0개" 검사를 돌린다.
🔗 관련¶
- 참고 자료: KS X 6101 개방형 워드프로세서 마크업 언어(OWPML) 문서 구조 (국가표준) — HWPX가 따르는 XML 문서 구조 표준
🗓️ 이력¶
- 2026-11-11: v0.7 HWPX를 한글 밖에서 고친 뒤 안 열림. 낡은 줄 배치 정보가 원인이었고, 바뀐 문단 6개에서 지워 해결 → 일지