반응형


2010년 6월 한글과 컴퓨터는 한/글의 파일 포맷을 공개했다. 


현재까지의 최신 버전은 2010년 12월에 공개된 1.1


한글과컴퓨터는 한/글 문서의 바이너리 파일(.Hwp) 형식 공개 계획을 밝힌 바 있으며 이를 차질 없이 진행하였으며 Hwp의 XML 포맷인 HwpML의 국가표준(KS)화도 현재 진행되고 있습니다.


그런데, 막상 공개를 하고 나니 많은 프로그래머들이 포맷 공개에 대해 비판했다.

공개된 포맷만으로는 아무런 프로그램도 만들 수 없다는 내용이 주였다.


수년의 세월을 걸쳐 개발한 것을 기껏 공개했더니 반응이 그런 식이라니…




1. 압축 파일의 이유 모를 왜곡


그런데, 이전 포스팅을 작성하기 위해 HwpML(이하 HML)의 자료를 분석하다보니 이상한 점이 발견되었다.

압축을 한 첨부파일의 압축을 해제할 수 없었다.



한/글은 한컴에서 공개한 바와 같이 zlib으로 데이터를 압축한다[각주:1].

그런데, 막상 HML에서 파일을 추출해서 zlib로 압축을 풀려고 하면 잘 되지 않는다.


zlib으로 압축하는 법은 크게 둘로 나뉜다.

compress() 함수를 사용하는 방법과 deflate() 함수를 사용하는 방법.


- 두 방식 공히 맨 앞부분엔 0x78, 0x9C의 두 바이트짜리 헤더가 존재

- 결과는 사실상 동일하며, compress() 는 파일 끝에 원본 파일의 길이를 기록함


01


그런데, 한/글에서 첨부한 파일에는 앞에서 언급한 헤더를 확인할 수 없다.

게다가, 추가로 확인해본 결과 마지막에 의미 없는 2바이트를 추가했다.


헤더가 이상한 한/글에서 zlib으로 압축했다는 결과


아마도 추측하건데, 두 바이트의 헤더를 감추는 과정[각주:2]에서 저런 어설픈 결과가 나온 것 같다.


이 부분은 정말로 이해가 되지 않는다.

멀쩡히 공개된 형식(BMP 등등)의 데이터를 멀쩡히 공개된 형식으로 압축하면서 왜곡이라니.


어쩌면 포맷 공개를 질질 끌었던 것이 이런 구린 부분들이 많아서 그런 게 아닐까하는 생각도 들었다.



다음글에 계속




  1. 오픈소스에, 속도도 빠르고, 안정적인 라이브러리이니 합리적인 선택임 [본문으로]
  2. 어쨌거나 이해가 안 됨 [본문으로]
반응형

'IT > 잡담' 카테고리의 다른 글

간단 디스크 복원기  (0) 2013.02.05
5년만의 PC 업글  (3) 2012.09.20
이상한 한/글(한컴)의 데이터 구조 #2  (8) 2012.08.12
2012년 만우절 구글 장난: 8비트 구글 맵스  (2) 2012.07.09
한 폴더에 같은 파일명이…?  (1) 2012.06.22

공유하기

facebook twitter kakaoTalk kakaostory naver band