스펙 문서 부실함


10여년전에 개발할 당시 맨땅에 헤딩하던 느낌이었음

스펙 문서가 너무 부실했고 그걸로 한컴사 열라 까댔었지;;;

ruby 를 활용하여 포맷 역공학 열라했고~~

호환 목적으로 포맷을 역공학하는건 불법이 아닌 걸로 알고 있음.

게다가 10여년 전에는 hwp 문서를 국가기관, 공공기관이 1종으로만 배포해서 사실상의 공문서 포맷이 hwp 라서.

hwp 포맷을 역공학하는 건 법적 문제가 없다고 봄!

ruby 에 unpack 이라는 함수가 있어서 데이터를 랜덤 길이로 unpack 해서 pack 로 하면서

포맷 맞춰가고 그랬었었지. 진짜 신물 나더라 ㅋㅋ

그렇게 해서 스펙 문서 부실한 걸 해결해 나갔음


렌더링


근데 진짜 어려운 점은.... 문서 포맷이 아니라 렌더링이더라구

옛날에 2D 그래픽, 렌더링 이런 걸 해봤어야지 ㅋㅋ

첨에 ruby 를 활용하여 html 로 변환하여 그걸 웹 브라우저 이용하여 문서 보다가

리눅스에서 광범위하게 사용되려면 evince 플러그인이 좋겠다 싶어서

evince 에 2D 그래픽 시도해보다가... 방향을 잘못 잡은 걸 깨닫고,

나중에 리브레오피스 플러그인으로 방향을 잡았음.

hwp 파일에 있는 데이터를 파싱해서 리브레오피스 플러그인으로 넘겨주고

리브레오피스 API 를 활용하니까 렌더링은 리브레오피스가 알아서 해주니까

진짜 편하더라구~~

리브레오피스 API 를 활용하여 리브레오피스 내에 있는 객체들을 조작할 수 있음.

이 말은 html 문서 작성하듯이, 파싱된 hwp 데이터를 리브레오피스 API 로  작성하면

리브레오피스가 렌더링을 알아서 해주니까 화면에 표시하기 쉬움.

게다가 리브레오피스용 hwp 플러그인 만드는거는 쉬움!!


공문서를 2종 이상으로 배포하는 공공기관이 많고

hwp 스펙이 공개된지가 10여년이 지나서 이제는 한컴을 욕할 명분도 없음.

나라를 욕하기도 뭐한게 예전에 나라에서 hwp 관련 개발하라고 돈을 3천만원인가... 지원해줬는데 그거 어떻게 됐냐.


지금은 hwp 관련 공개된 구현체들도 꽤 있고, 공개는 하지 않았지만 개인적으로 만들어 쓰는 사람도 꽤 있을걸

리눅스에서 hwp 가 아쉬우면 리눅스 커뮤니티에서 그걸 직접 만들어 써야하는 거구!

역사적으로 봐도 리눅스라는게 이런 식으로 발전해 온거 잖아

리눅스 리브레오피스용 hwp 플러그인 만드는거 쉬어~~ 난 이미 만들어서 쓰고 있음!