본문 바로가기

MEMOINFO · FILE LAB

파일이 왜 이렇게 됐을까?

이미지·PDF·파일 관리의 궁금증을 직접 만든 예제와 측정값으로 살펴봅니다.
결과를 확인할 수 있도록 원본 파일과 재현 방법을 함께 공개합니다.

질문별로 글 찾아보기 →실험 자료 내려받기 →
파일 관리

ZIP으로 묶었는데 더 커졌다: 텍스트·PNG·JPG 압축 실험

by memoinfogarage 2026. 10. 17.

ZIP 압축을 했는데 용량이 거의 줄지 않거나 조금 늘었다면 반드시 오류는 아닙니다. 압축할 데이터의 반복 정도와 이미 적용된 압축, ZIP 자체의 부가 정보가 함께 영향을 줍니다. 크기가 같은 반복 텍스트와 난수 데이터, PNG와 JPG를 각각 한 파일씩 ZIP으로 만들었습니다.

측정 방법

Python 3.12.14의 zipfile에서 ZIP_DEFLATED, compresslevel=6을 사용했습니다. 각 ZIP에는 원본 하나만 넣었습니다. 압축률은 내부 데이터 크기가 아니라 ZIP 파일 전체 크기로 계산했습니다. 공식은 (1−ZIP 크기÷원본 크기)×100이며 음수는 파일이 더 커졌다는 뜻입니다.

원본 원본(B) ZIP(B) 감소율
repeated-text.txt 280000 1173 99.58%
random-data.bin 280000 280218 -0.08%
diagram.png 31763 27661 12.91%
noise.jpg 1369819 1370275 -0.03%

반복 텍스트 280,000바이트는 1,173바이트가 됐습니다. 같은 크기의 난수 데이터는 280,218바이트가 되어 218바이트 늘었습니다. 노이즈 JPG도 456바이트 늘었습니다. 반면 이번 PNG는 12.91% 감소했습니다. ‘이미지 파일은 압축이 전혀 안 된다’고 단정하는 설명도 이 결과와 맞지 않습니다.

전송 용량을 줄이려면

문서 여러 개를 한 번에 보내거나 폴더 구조를 보존하려는 목적이면 ZIP은 용량이 거의 줄지 않아도 유용합니다. 반면 JPG 하나가 첨부 한도를 넘는다면 ZIP을 반복하기보다 원본에서 픽셀 크기와 저장 품질을 조절한 복사본을 검토하는 편이 적합할 수 있습니다.

이때 무조건 낮은 품질로 저장하지 말고 필요한 글자나 사진 세부가 유지되는지 확인해야 합니다. ZIP을 한 번 더 ZIP으로 묶는 것도 이미 줄어든 데이터를 다시 포장하는 작업이므로 큰 감소를 기대하기 어렵습니다. 추가 압축률은 원본과 설정에 따라 따로 측정해야 합니다.

크기만큼 중요한 복원 확인

네 ZIP을 다시 읽어 원본과 바이트 단위로 같음을 검사했습니다. 측정 기록에는 복원한 데이터의 SHA-256도 남겼습니다. 작은 ZIP이 만들어졌다는 사실만으로 압축과 전송이 완전하게 끝났다고 판단하지 말고, 중요한 자료는 다른 폴더에 풀어 열리는지도 확인하세요.

다른 PC에서 값이 다르면

압축 알고리즘, 수준, 파일명 길이, 부가 메타데이터가 달라지면 ZIP 전체 크기도 달라집니다. 이번 표는 네 샘플의 관측값으로, 모든 텍스트가 99% 줄거나 모든 JPG가 커진다는 예측표가 아닙니다. 운영체제의 KB 표시 대신 정확한 바이트 수를 비교하면 반올림에 따른 혼동도 줄어듭니다.

설정 정의: Python zipfile 공식 문서.


실험 조건과 확인 자료

2026년 10월 17일, Windows 환경에서 합성 샘플을 만들고 자동화 코드로 저장·분석했습니다. 실제 회사 문서나 촬영 사진을 사용한 시험은 아닙니다. 특정 앱의 버튼을 직접 눌러 비교한 결과로 해석하지 마세요. 결과가 달라질 수 있는 조건은 본문에 구분했습니다.

실험 원본·결과 파일과 재현 방법에서 샘플 ZIP과 측정 기록을 확인할 수 있습니다.


소개 및 문의 · 개인정보처리방침 · 면책조항

© 2026 memoinfogarage