발견 영역
PR #601 검토 영역에서 작업지시자가 발견한 외부 사용자 평가 영역 (X @scope_the_hyena, 4월 28일) 의 권위 본질:
일례로 폰트 크기부터 제대로 조정하기 힘들고 마우스로 셀 선택이 안되는 건 기본에
저장하고 다시 열어봤더니 표가 문서 구석탱이에 처박혔음.
표준이라던 hwpx 저장은 아직 지원조차 안함.
그래서 한컴이 웃을 수 있는 거임.
결함 영역의 본질
시나리오 영역
- 메인테이너 영역: rhwp-studio 에서 빈 문서 → 표 생성 → HWPX 저장
- 한컴 2020 으로 본 HWPX 영역 열기 → 표 위치 비정상 (표가 구석탱이에 처박힘)
- 한컴 2020 종료 후 다시 열기 → HWP 영역과 동일 정상 렌더링 회복
본 환경의 시리얼라이제이션 영역 정답지 영역
- 본 환경의 HWPX 시리얼라이제이션 영역은 한컴 2010 정답지 영역으로 개발됨
- 한컴 2010 영역에서는 정상 시각 영역 ✅
- 한컴 2020 영역에서 결함 발현 ⚠️
메인테이너 권위 가정 영역
한컴은 hwpx 를 기존 hwp 의 디시리얼라이즈 파이프라인에 매핑하는 구조로 개발했을 것. 왜? 한컴의 개발자들은 생각보다 부지런하지 않음. 엔진도 2026년인데 여전히 32비트.
→ 한컴 영역에서:
- HWP → binary deserialize → 내부 IR → renderer
- HWPX → 한컴 자체에서 HWP binary 영역의 동일 IR 으로 변환 → 동일 renderer
- → 한컴 영역에서 HWP / HWPX 시각 결과 동일
본 task 의 본질 — 3 가지 가설 검증
가설 영역의 본질 영역은 다음 보고서 영역에서 도출:
mydocs/report/hwpx_serialize_hancom2020_misalignment_hypothesis.md
가설 #1 (가장 유력) — attribute 누락 / 기본값 영역 차이
본 환경이 만든 HWPX 영역에 한컴 2020 이 필수로 요구하는 일부 attribute 영역이 누락, 한컴 2010 은 누락 영역에 대해 관용적 영역으로 default 처리하지만 한컴 2020 은 엄격 영역으로 처리 → 표 위치 영역 부풉.
검증 영역:
- 본 환경 출력 HWPX 의
<hp:tbl> element 의 attribute sweep
- 한컴 2020 자체 출력 HWPX 의 동일 element 영역 sweep
- attribute 차이 영역 정량 측정 (
cellSpacing, noAdjust, lock, dropcapstyle, numberingType, textWrap, textFlow 등)
가설 #2 — 좌표 / 단위 영역 정합 결함
본 환경의 HWPX 시리얼라이제이션 영역이 vert / horz 영역의 좌표 영역 단위 변환 영역에서 한컴 2010 영역과 한컴 2020 영역 사이 정합 결함 → 표 위치 영역 부풉.
좌표 영역 변환 영역의 결함 가능성:
검증 영역:
- 본 환경 출력 HWPX 의
<hp:tbl> 의 vert* / horz* attribute 영역 측정
- 한컴 2020 자체 출력 HWPX 의 동일 attribute 영역 비교
- vertOffset / horzOffset 영역의 단위 영역 정합
가설 #3 — element 순서 / schema 영역 결함
본 환경이 만든 HWPX 영역의 XML element 영역의 순서 / 구조 영역이 한컴 2010 영역의 schema 영역과 정합하지만 한컴 2020 영역의 강화된 schema 영역과 정합 안 됨 → 표 영역의 위치 영역 부풉.
구조 영역 결함 가능성:
<hp:tbl> 영역 내부의 <hp:sz> / <hp:pos> / <hp:outMargin> / <hp:inMargin> 영역의 순서
<hp:p> 영역 내부의 <hp:run> / <hp:linesegarray> 영역의 순서
<hp:tc> (cell) 영역 내부의 <hp:cellAddr> / <hp:cellSpan> / <hp:cellSz> / <hp:cellMargin> 영역의 순서
검증 영역:
- 본 환경 출력 HWPX 와 한컴 2020 자체 출력 HWPX 의 element 순서 영역 정밀 비교
- diff 영역 자동 점검 (XML canonicalization 후 비교)
검증 영역의 절차
단계 0 — 빈 문서 + 표 영역 fixture 영역 생성
- rhwp-studio 에서 빈 문서 + 표 1 영역 → HWPX 저장 →
samples/hwpx/empty_table_rhwp.hwpx
- 한컴 2020 에서 동일 빈 문서 + 표 1 영역 → HWPX 저장 →
samples/hwpx/empty_table_hancom2020.hwpx
- 두 영역의 시각 영역 비교 영역 (한컴 2010 + 한컴 2020 양쪽)
단계 1 — 가설 #1 검증 (attribute 영역 sweep)
- 두 HWPX 영역의 모든 element 의 attribute 영역 정량 비교 (Python script 또는 별도 도구 영역)
- 누락 attribute 영역 / 다른 default 영역의 영역 식별
단계 2 — 가설 #2 검증 (좌표 / 단위 영역)
<hp:tbl> / <hp:pos> / <hp:offset> 등 좌표 영역의 attribute 영역 정량 비교
- 좌표 단위 영역 변환 영역의 정합 점검
단계 3 — 가설 #3 검증 (element 순서 영역)
- XML canonicalization 영역의 결과 비교
- element 순서 영역의 정합 점검
단계 4 — 가설 영역의 권위 본질 영역 결정
단계 5 — 본질 영역 정정 PR 영역
영향 범위 영역
본 결함 영역의 권위 본질 영역
- 외부 사용자 영역의 평가 영역 ("hwpx 저장은 아직 지원조차 안함") 의 권위 본질 영역
- rhwp 의 시장 가치 영역 — DTP 엔진 정체성 영역의 본질 영역의 핵심 영역 (
project_dtp_identity 메모리 영역)
- v1.0.0 진입 직전 핵심 영역 — 사용자 사용성 영역의 본질 영역
연관 영역
→ 두 방향 영역 (디시리얼라이제이션 영역 + 시리얼라이제이션 영역) 모두 본 환경의 HWPX 영역 처리 영역의 본질 결함 영역.
메모리 영역 정합
- ✅
feedback_self_verification_not_hancom — 본 시나리오 (rhwp 출력 → 한컴 2020 거부) 가 권위 케이스 영역
- ✅
project_hwpx_to_hwp_adapter_limit — 단순 어댑터 영역으로 한컴 호환 영역 미달, 완전 변환기 영역 정체성 영역 필요
- ✅
reference_authoritative_hancom — 한컴 2010 정답지 영역의 한계 영역 → 한컴 2020 영역 추가 영역 권고
- ⚠️
feedback_v076_regression_origin — 자기 환경 PDF 영역을 정답지 영역으로 사용한 회귀 영역 본질의 시리얼라이제이션 영역의 본질 영역
본 task 의 마일스톤
M100 (v1.0.0) — 외부 사용자 평가 영역의 권위 본질 영역으로 v1.0.0 진입 전 우선 처리 영역.
컨트리뷰터 안내
본 이슈는 외부 컨트리뷰터의 PR 을 환영합니다. 진행 전 댓글로 의향 알려주시면 메인테이너가 assignee 지정 + 추가 자료 (한컴 2020 정합 fixture 영역) 안내드립니다.
진행 시 참고
- 본 보고서 영역:
mydocs/report/hwpx_serialize_hancom2020_misalignment_hypothesis.md
- 한컴 (한컴 2010 + 한컴 2020) 영역의 시각 판정 영역이 권위 기준 (
reference_authoritative_hancom 메모리 영역)
- 본 환경의 HWPX 시리얼라이제이션 영역:
src/serializer/hwpx/
- HWP 시리얼라이제이션 영역과의 정합 영역:
src/serializer/control.rs / src/serializer/body_text.rs
- 권위 영역 점검 영역의 fixture 영역:
samples/hwpx/aift.hwpx (한컴 2020 출력 영역, 디시리얼라이제이션 영역의 권위 영역)
참고 영역
발견 영역
PR #601 검토 영역에서 작업지시자가 발견한 외부 사용자 평가 영역 (X @scope_the_hyena, 4월 28일) 의 권위 본질:
결함 영역의 본질
시나리오 영역
본 환경의 시리얼라이제이션 영역 정답지 영역
메인테이너 권위 가정 영역
→ 한컴 영역에서:
본 task 의 본질 — 3 가지 가설 검증
가설 영역의 본질 영역은 다음 보고서 영역에서 도출:
mydocs/report/hwpx_serialize_hancom2020_misalignment_hypothesis.md가설 #1 (가장 유력) — attribute 누락 / 기본값 영역 차이
본 환경이 만든 HWPX 영역에 한컴 2020 이 필수로 요구하는 일부 attribute 영역이 누락, 한컴 2010 은 누락 영역에 대해 관용적 영역으로 default 처리하지만 한컴 2020 은 엄격 영역으로 처리 → 표 위치 영역 부풉.
검증 영역:
<hp:tbl>element 의 attribute sweepcellSpacing,noAdjust,lock,dropcapstyle,numberingType,textWrap,textFlow등)가설 #2 — 좌표 / 단위 영역 정합 결함
본 환경의 HWPX 시리얼라이제이션 영역이 vert / horz 영역의 좌표 영역 단위 변환 영역에서 한컴 2010 영역과 한컴 2020 영역 사이 정합 결함 → 표 위치 영역 부풉.
좌표 영역 변환 영역의 결함 가능성:
vert="PARA"/vertRelTo="PARA"영역의 default 값horz="COLUMN"/horzRelTo="COLUMN"영역의 default 값vertOffset/horzOffset영역의 단위 영역 (HU vs 1/100 mm)treat_as_char=true영역과wrap=TopAndBottom영역의 동시 영역 영역 (Issue aift.hwp/aift.hwpx 표 조판 영역의 vpos 단위 해석 의심 — 페이지 수 +30 / 표 위 빈 공간 +103mm 부풀음 #652 의 본질 영역과 정합)검증 영역:
<hp:tbl>의vert*/horz*attribute 영역 측정가설 #3 — element 순서 / schema 영역 결함
본 환경이 만든 HWPX 영역의 XML element 영역의 순서 / 구조 영역이 한컴 2010 영역의 schema 영역과 정합하지만 한컴 2020 영역의 강화된 schema 영역과 정합 안 됨 → 표 영역의 위치 영역 부풉.
구조 영역 결함 가능성:
<hp:tbl>영역 내부의<hp:sz>/<hp:pos>/<hp:outMargin>/<hp:inMargin>영역의 순서<hp:p>영역 내부의<hp:run>/<hp:linesegarray>영역의 순서<hp:tc>(cell) 영역 내부의<hp:cellAddr>/<hp:cellSpan>/<hp:cellSz>/<hp:cellMargin>영역의 순서검증 영역:
검증 영역의 절차
단계 0 — 빈 문서 + 표 영역 fixture 영역 생성
samples/hwpx/empty_table_rhwp.hwpxsamples/hwpx/empty_table_hancom2020.hwpx단계 1 — 가설 #1 검증 (attribute 영역 sweep)
단계 2 — 가설 #2 검증 (좌표 / 단위 영역)
<hp:tbl>/<hp:pos>/<hp:offset>등 좌표 영역의 attribute 영역 정량 비교단계 3 — 가설 #3 검증 (element 순서 영역)
단계 4 — 가설 영역의 권위 본질 영역 결정
단계 5 — 본질 영역 정정 PR 영역
영향 범위 영역
본 결함 영역의 권위 본질 영역
project_dtp_identity메모리 영역)연관 영역
→ 두 방향 영역 (디시리얼라이제이션 영역 + 시리얼라이제이션 영역) 모두 본 환경의 HWPX 영역 처리 영역의 본질 결함 영역.
메모리 영역 정합
feedback_self_verification_not_hancom— 본 시나리오 (rhwp 출력 → 한컴 2020 거부) 가 권위 케이스 영역project_hwpx_to_hwp_adapter_limit— 단순 어댑터 영역으로 한컴 호환 영역 미달, 완전 변환기 영역 정체성 영역 필요reference_authoritative_hancom— 한컴 2010 정답지 영역의 한계 영역 → 한컴 2020 영역 추가 영역 권고feedback_v076_regression_origin— 자기 환경 PDF 영역을 정답지 영역으로 사용한 회귀 영역 본질의 시리얼라이제이션 영역의 본질 영역본 task 의 마일스톤
M100 (v1.0.0) — 외부 사용자 평가 영역의 권위 본질 영역으로 v1.0.0 진입 전 우선 처리 영역.
컨트리뷰터 안내
본 이슈는 외부 컨트리뷰터의 PR 을 환영합니다. 진행 전 댓글로 의향 알려주시면 메인테이너가 assignee 지정 + 추가 자료 (한컴 2020 정합 fixture 영역) 안내드립니다.
진행 시 참고
mydocs/report/hwpx_serialize_hancom2020_misalignment_hypothesis.mdreference_authoritative_hancom메모리 영역)src/serializer/hwpx/src/serializer/control.rs/src/serializer/body_text.rssamples/hwpx/aift.hwpx(한컴 2020 출력 영역, 디시리얼라이제이션 영역의 권위 영역)참고 영역
mydocs/report/hwpx_serialize_hancom2020_misalignment_hypothesis.md