공문을 내려받았는데 확장자가 .hwpx라 당황하는 일이 늘었습니다. 한글에서 저장할 때도 두 형식이 나란히 뜨니, 어느 쪽을 골라야 상대가 문제없이 열지 판단이 서지 않습니다.
같은 문서를 한글 2020으로 두 형식에 각각 저장한 뒤, 파일을 코드로 직접 열어 안에 무엇이 어떻게 담기는지 재 봤습니다. 이름만 다른 게 아니라 담는 방식 자체가 다른 파일이었고, 흔히 알려진 "hwpx가 더 작다"는 말은 넣은 그림이 무엇이냐에 따라 맞기도 하고 틀리기도 했습니다.

앞 몇 바이트만 봐도 다른 종류입니다
파일 맨 앞에는 형식을 알리는 표식이 들어 있습니다. 두 파일의 앞부분을 그대로 찍어 보면 이렇습니다.
text.hwp 앞 8바이트 : D0 CF 11 E0 A1 B1 1A E1
text.hwpx 앞 4바이트 : 50 4B 03 04 (PK..)
hwp의 D0 CF 11 E0는 OLE 복합 문서라는 표식입니다. 한 파일 안에 폴더와 파일을 흉내 낸 구조를 넣는 오래된 방식으로, 예전 .doc와 .xls도 같은 틀을 씁니다.
hwpx의 50 4B는 글자로 읽으면 PK, 즉 zip 압축 파일이라는 표식입니다. 요즘 오피스 문서가 쓰는 방식이고, 안에 든 것은 XML 문서 여러 개입니다.
그래서 이름만 바꿔 두는 방법은 통하지 않습니다. 양쪽으로 실제 바꿔 본 결과입니다.
hwpx 인 척하는 hwp ZIP 으로 열리는가 : False
hwp 인 척하는 hwpx OLE 로 열리는가 : False
정상 파일
pic.hwpx ZIP 으로 열리는가 : True
pic.hwp OLE 로 열리는가 : True
이름표를 바꿔도 안에 든 짜임이 바뀌지 않기 때문이며, 확장자만 바꿔서는 변환이 되지 않는 이유와 같은 이야기입니다. 형식을 바꾸려면 한글에서 열어 다른 이름으로 저장하며 형식을 고르는 수밖에 없습니다.
hwpx가 작다는 말은 절반만 맞았습니다
같은 크기(1,600x1,200)의 그림을 두 종류로 준비했습니다. 하나는 도표나 화면 캡처처럼 같은 색 면이 넓은 그림이고, 다른 하나는 잡티가 고르게 퍼진 사진형입니다. 각각을 넣어 두 형식으로 저장했습니다.
| 넣은 것 | hwp | hwpx | hwpx 비율 |
|---|---|---|---|
| 텍스트만 | 30,720 B | 29,462 B | 96% |
| 도표나 화면 캡처 | 107,008 B | 59,174 B | 55% |
| 사진 | 670,208 B | 658,500 B | 98% |
hwp는 어느 경우에나 그림을 손대지 않고 그대로 담습니다. hwpx는 zip이라 안에 든 것을 한 번 눌러 담는데, 여기서 결과가 갈립니다. 문서 안의 그림만 따로 재 보면 이렇습니다.
| 그림 종류 | hwp 안에서 | hwpx 안에서 |
|---|---|---|
| 도표나 화면 캡처 | 74,880 B | 28,829 B (38%) |
| 사진 | 633,558 B | 628,156 B (99%) |
JPG 사진은 이미 압축된 상태라 zip으로 한 번 더 눌러도 나올 것이 없습니다. 그래서 사진이 많은 문서는 형식을 바꿔도 용량이 거의 그대로입니다. 반면 색 면이 넓은 도표나 캡처는 남은 여지가 많아 절반 가까이 줄어듭니다.
hwpx는 표준 zip이라 파이썬 기본 기능만으로 안을 볼 수 있습니다. 별도 프로그램이 필요 없습니다.
import zipfile
z = zipfile.ZipFile("문서.hwpx")
for i in z.infolist():
print(i.filename, i.file_size, "->", i.compress_size)
# BinData/image1.jpg 74880 -> 28829
# Contents/header.xml 32731 -> 3285
# Contents/section0.xml 6955 -> 2162
본문 서식이 담긴 header.xml은 32,731바이트가 3,285바이트로 줄었습니다. XML은 같은 낱말이 반복되는 글이라 압축이 특히 잘 듣습니다.
텍스트만 있는 문서의 70%는 본문이 아니었습니다
흥미로운 쪽은 사진이 없는 문서였습니다. 30,720바이트짜리 hwp 안을 열어 스트림별 크기를 봤더니 본문은 거의 자리를 차지하지 않았습니다.
| hwp 안의 항목 | 크기 | 비중 |
|---|---|---|
| PrvImage (미리보기 그림) | 21,455 B | 69.8% |
| DocInfo (글꼴, 문단 모양) | 1,553 B | 5.1% |
| PrvText (미리보기 글) | 820 B | 2.7% |
| BodyText/Section0 (본문) | 356 B | 1.2% |
탐색기에서 문서 내용을 미리 보여 주려고 넣는 썸네일 그림 하나가 파일의 70%였습니다. 이 그림은 이미 PNG로 압축된 상태라 hwpx에서도 21,455바이트 그대로 들어갔고, 그래서 텍스트 문서에서는 두 형식의 용량 차이가 1,258바이트밖에 나지 않았습니다.
그래서 무엇으로 저장할까
| 이럴 때 | 이 형식 |
|---|---|
| 어디로 갈지 모르는 문서, 구버전 한글을 쓰는 곳에 보낼 때 | hwp |
| 도표나 화면 캡처가 많아 용량을 줄이고 싶을 때 | hwpx |
| 다른 프로그램이나 시스템에서 내용을 꺼내 써야 할 때 | hwpx |
| 사진이 많을 때 | 어느 쪽이든 비슷, 사진을 미리 줄이는 편이 효과가 큼 |
받는 쪽을 모르면 hwp, 도표가 많거나 내용을 꺼내 써야 하면 hwpx입니다. hwpx는 한컴오피스 2018 이후부터 정식 지원이라, 구버전만 쓰는 곳에 보내면 열지 못할 수 있습니다.
자주 묻는 질문
Q. hwpx가 안 열립니다.
쓰는 한컴오피스가 hwpx를 지원하지 않는 버전일 가능성이 큽니다. 보낸 쪽에 hwp로 다시 저장해 달라고 요청하는 편이 빠릅니다. 한컴이 아예 없을 때 여는 방법은 한컴 없이 hwp 여는 법에 정리해 두었습니다.
Q. hwpx로 바꾸면 내용이 달라지나요?
같은 프로그램에서 저장한 것이라 본문과 서식은 그대로입니다. 달라지는 것은 담는 방식과 용량입니다.
Q. 미리보기 그림을 뺄 수 있나요?
한글의 저장 설정에서 미리보기 저장을 끄면 그만큼 줄어듭니다. 다만 탐색기에서 내용이 미리 안 보이게 됩니다.
위 바이트 수치는 한글 2020으로 같은 문서를 두 형식에 저장한 뒤, 윈도우 11에서 파이썬 3.14.3의 zipfile과 olefile로 파일 내부를 직접 읽어 얻은 값입니다.
발표 자료가 6MB가 됐습니다, 슬라이드를 지워도 안 줄어드는 이유는 따로 있습니다
발표 자료를 메일로 보내려는데 용량이 걸려 슬라이드를 몇 장 덜어낸 경험이 있으실 겁니다. 그런데 장수를 줄여도 파일이 별로 가벼워지지 않는 경우가 많습니다.파워포인트 파일의 용량이
richyeon.com
엑셀에는 15%로 보이는데, 파이썬으로 읽으면 왜 0.15가 나올까
엑셀 파일을 파이썬으로 불러와 처리하는 스크립트를 짜다 보면, 분명 화면에서는 "15%"라고 보이던 셀이 코드에서는 0.15로 찍히는 순간을 마주치게 됩니다. 처음 보면 데이터가 잘못 읽힌 줄 알
richyeon.com
'파일 형식 백과사전' 카테고리의 다른 글
| 이 폰트, PDF에 끼워 넣어 남에게 보내도 될까요? 코드로 확인하는 법 (0) | 2026.09.03 |
|---|---|
| 한글 문서에 사진을 작게 줄여 넣었는데 용량이 그대로인 이유 (0) | 2026.09.02 |
| PDF에 암호를 걸었는데 그냥 열립니다, 암호 칸이 두 개인 이유 (0) | 2026.08.31 |
| 워드 파일을 보낼 때 같이 따라가는 것들, docx를 열어 직접 확인했습니다 (0) | 2026.08.31 |
| 1.4MB 사진 한 장을 넣는 방법에 따라 워드 파일이 119KB도 되고 372KB도 됐습니다 (0) | 2026.08.31 |