본문 바로가기

전체 글

한글 문서에 사진을 작게 줄여 넣었는데 용량이 그대로인 이유 보고서에 사진 몇 장을 넣고 크기를 작게 조절했는데도 파일이 400KB를 넘어갑니다. 화면에서는 손톱만 하게 줄여 놨으니 용량도 줄었으려니 하지만, 저장하고 보면 그대로입니다.한글이 사진을 어떻게 담는지 확인해 봤습니다. 4000x3000 사진 한 장을 표시 크기만 바꿔 가며 넣고 저장한 뒤, 문서 안에 실제로 들어간 그림을 꺼내 픽셀과 바이트를 셌습니다. 같은 작업을 워드에서도 해서 나란히 놓았습니다. 표시 크기를 줄여도 파일은 꿈쩍하지 않았습니다같은 사진을 폭 150mm, 80mm, 40mm로 각각 줄여 넣고 저장했습니다. 문서 안의 그림 자리(BinData)를 열어 보니 결과가 한결같았습니다.넣은 방법문서 안 사진사진 픽셀폭 지정 없이377,822 B4000x3000폭 150mm로377,822 .. 더보기
hwp와 hwpx, 같은 문서를 두 형식으로 저장해 안을 열어 봤습니다 공문을 내려받았는데 확장자가 .hwpx라 당황하는 일이 늘었습니다. 한글에서 저장할 때도 두 형식이 나란히 뜨니, 어느 쪽을 골라야 상대가 문제없이 열지 판단이 서지 않습니다.같은 문서를 한글 2020으로 두 형식에 각각 저장한 뒤, 파일을 코드로 직접 열어 안에 무엇이 어떻게 담기는지 재 봤습니다. 이름만 다른 게 아니라 담는 방식 자체가 다른 파일이었고, 흔히 알려진 "hwpx가 더 작다"는 말은 넣은 그림이 무엇이냐에 따라 맞기도 하고 틀리기도 했습니다. 앞 몇 바이트만 봐도 다른 종류입니다파일 맨 앞에는 형식을 알리는 표식이 들어 있습니다. 두 파일의 앞부분을 그대로 찍어 보면 이렇습니다.text.hwp 앞 8바이트 : D0 CF 11 E0 A1 B1 1A E1text.hwpx 앞 4바이트.. 더보기
PDF에 암호를 걸었는데 그냥 열립니다, 암호 칸이 두 개인 이유 PDF에 암호를 거는 화면을 열어 보면 암호를 넣는 칸이 하나가 아닙니다. 위쪽에는 문서를 열 때 쓸 암호, 아래쪽에는 권한을 바꿀 때 쓸 암호를 따로 받습니다.여기서 아래쪽 칸만 채운 채 저장하면, 나중에 그 파일은 암호를 묻지 않고 그냥 열립니다. 잘못 만든 것이 아니라 원래 그렇게 동작하는 것입니다. 같은 PDF에 두 방식을 각각 걸어 파이썬으로 열어 보며 무엇이 어떻게 다른지 확인해 봤습니다. 이름부터 역할이 다릅니다PDF 규격에는 암호가 두 종류 있습니다. 하나는 사용자 암호로, 흔히 열기 암호라고 부릅니다. 문서를 여는 자격을 확인하는 암호입니다.다른 하나는 소유자 암호입니다. 이쪽은 문서를 여는 것과는 상관이 없고, 인쇄나 복사 같은 권한을 풀 때 필요한 암호입니다. 그래서 소유자 암호만 .. 더보기
워드 파일을 보낼 때 같이 따라가는 것들, docx를 열어 직접 확인했습니다 이력서를 메일에 첨부하거나, 과제 파일을 제출하거나, 제안서를 거래처에 넘길 때 우리가 확인하는 것은 보통 파일 이름과 본문입니다. 그런데 워드 문서 안에는 본문과 별개로 누가 만들었고, 마지막에 누가 저장했고, 어느 회사 소속이며, 총 몇 분을 편집했는지가 따로 적혀 있습니다.이 값들이 정확히 어떤 모습으로 저장되는지, 그리고 지운다고 지웠을 때 정말 다 지워지는지를 워드로 문서를 직접 만들어 확인해 봤습니다. 결론부터 말하면 문서 속성만 비우는 방식으로는 이름이 절반쯤 남습니다. docx는 압축 파일이고, 속성은 별도 파일에 적혀 있습니다docx 파일의 확장자를 zip으로 바꿔서 압축 프로그램으로 열면 안에 들어 있는 파일 목록이 그대로 보입니다. 이번에 만든 문서 하나에는 파트, 그러니까 내부 .. 더보기
1.4MB 사진 한 장을 넣는 방법에 따라 워드 파일이 119KB도 되고 372KB도 됐습니다 보고서에 사진 몇 장을 넣었을 뿐인데 파일이 메일 첨부 한도에 걸릴 때가 있습니다. 그럴 때 흔히 하는 대응은 문서 안에서 사진 모서리를 끌어 작게 줄이거나, 필요 없는 부분을 잘라내는 것입니다.이 두 가지가 실제로 파일 용량을 줄이는지 궁금해서, 같은 사진 한 장을 넣는 방법만 바꿔 가며 문서를 저장하고 크기를 재 봤습니다. 하나는 효과가 있었고, 다른 하나는 전혀 없었습니다. 워드는 넣은 사진을 원본 그대로 보관하지 않습니다먼저 확인한 것은 흔한 통념이었습니다. "문서에 넣은 사진은 원본 그대로 저장된다"는 이야기인데, 실제로는 그렇지 않았습니다.4000x3000 크기에 1,453.5KB인 사진을 문서 폭에 맞춰 넣고 저장했더니, docx 안에 실제로 들어간 이미지는 359.5KB였습니다. 압축 파.. 더보기
같은 폰트를 WOFF와 WOFF2로 각각 바꿔봤더니, 압축 방식 차이가 이만큼 났습니다 웹사이트에 폰트를 올릴 때 확장자로 .woff와 .woff2가 나란히 보이는 경우가 있습니다. 둘 다 "웹폰트"라고만 알고 아무거나 골라 쓰기 쉬운데, 실은 안에서 쓰는 압축 알고리즘부터가 다릅니다.얼마나 차이가 나는지 직접 셋으로 나눠 재 봤습니다. 하나는 예전 글에서 13MB로 다룬 적 있는 그 맑은 고딕, 나머지 둘은 라틴 문자 위주인 Arial과 오픈소스 폰트인 Pretendard입니다. 실측 결과fontTools 4.63.0으로 세 폰트를 각각 .woff와 .woff2로 변환하고 크기를 쟀습니다. 서브셋(글자 추출)은 하지 않고 원본 글리프를 그대로 담은 상태로 비교했습니다.폰트원본(TTF/OTF)WOFFWOFF2맑은 고딕13,459,196 B7,435,272 B (55.2%)5,400,788.. 더보기
.xls와 .xlsx, 확장자만 다른 게 아니라 안에 든 구조 자체가 다릅니다 회사 서버 어딘가에서 십 년 묵은 서식 파일을 하나 받아 왔다고 해 보겠습니다. 확장자는 .xls. 어제 내가 저장한 .xlsx와 이름만 다를 뿐 둘 다 "엑셀 파일"이라 별생각 없이 다루기 쉬운데, 막상 압축 프로그램에 넣어 보면 하나는 순순히 열리고 하나는 뻗어 버립니다.왜 그런지 궁금해서 예전에 받아 둔 .xls 샘플과 최근 저장한 .xlsx를 나란히 뜯어봤습니다. 확인해 보니 두 파일은 압축률이 조금 다른 수준이 아니라, 애초에 데이터를 담는 설계 사상 자체가 달랐습니다. 첫 8바이트만 봐도 남남입니다파일 맨 앞부분에는 이 파일이 어떤 형식인지 알려주는 고유한 바이트 값(매직 바이트)이 있습니다. 두 파일의 시작 부분을 직접 찍어 봤습니다.college.xls d0 c.. 더보기
ZIP이 손상되었다고 뜰 때, 어디가 깨졌는지부터 확인하면 살릴 수 있습니다 메일로 받은 압축 파일을 열었더니 손상되었다는 메시지만 뜨고 안이 보이지 않습니다. 보낸 쪽에 다시 요청하는 것 말고 방법이 없어 보입니다.그런데 ZIP은 통째로 하나가 아니라 파일마다 따로 담기고 맨 끝에 목록이 붙는 구조라, 깨진 자리에 따라 살릴 수 있는 양이 완전히 달라집니다. 정상 ZIP의 바이트를 위치별로 직접 망가뜨려 증상이 어떻게 갈리는지 재현해 봤습니다. ZIP은 앞에 파일, 맨 끝에 목록입니다ZIP 안에는 파일이 하나씩 순서대로 들어갑니다. 각 파일 앞에는 이름과 크기, 검사값을 적은 짧은 머리말이 붙고, 압축된 내용이 그 뒤에 이어집니다.그리고 맨 끝에 전체 목록이 한 번 더 붙습니다. 압축 프로그램이 파일을 열자마자 안에 무엇이 들었는지 바로 보여 줄 수 있는 것은 이 목록 덕분입.. 더보기