처리중입니다. 잠시만 기다려주세요.
TTJ 코딩클래스
정규반 단과 자료실 테크 뉴스 코딩 퀴즈
테크 뉴스
Hacker News 2026.05.20 76

이미 압축된 ZIP을 더 작게? ZIP Shrinker가 보여준 빈틈

Hacker News 원문 보기

"ZIP은 이미 최대로 압축된 거 아닌가요?"

혹시 파일을 ZIP으로 압축해서 메일로 보내본 적 있죠? 우리는 보통 ZIP을 만들면 "이제 최대한 작아진 거야"라고 생각해요. 그런데 에반 한(Evan Hahn)이라는 개발자가 재미있는 도구를 공개했어요. "ZIP Shrinker"라는 건데, 이미 만들어진 ZIP 파일을 받아서 더 작게 만들어주는 도구예요. 마법처럼 들리지만 원리를 알면 "아, 그렇구나" 싶어요.

핵심은 ZIP 파일 안에 들어가는 메타데이터의 빈틈이에요. ZIP 형식은 1989년에 만들어졌어요. 당시 기준으로는 합리적이었지만, 지금 보면 "굳이 이렇게까지 안 채워도 되는데" 싶은 영역들이 꽤 있거든요. ZIP Shrinker는 그 영역들을 청소해서 파일 크기를 줄여요. 압축 알고리즘 자체를 건드리는 게 아니라, 형식의 군더더기를 다듬는 거예요.

ZIP 파일은 어떻게 생겼나

이게 뭐냐면, ZIP 파일은 단순히 "파일들을 압축해서 모아놓은 것"이 아니에요. 각 파일마다 헤더가 붙고, 파일 마지막에는 "중앙 디렉터리(Central Directory)"라는 일종의 목차가 또 붙어요. 그리고 그 헤더와 목차에는 파일 이름, 수정 시각, 권한 정보, 압축 방식 같은 여러 정보가 들어가요.

문제는 이 메타데이터가 이중삼중으로 중복된다는 거예요. 같은 정보가 로컬 헤더에도 있고, 중앙 디렉터리에도 있고, 추가 필드(extra field)에도 들어가 있어요. 그리고 어떤 ZIP 생성 도구는 추가 필드에 자기네 회사 시그니처나 운영체제별 메타데이터를 잔뜩 넣어요. macOS에서 만든 ZIP을 풀어보면 .DS_Store__MACOSX 같은 쓰레기 파일이 같이 들어가는 거 보신 적 있죠? 그런 식의 잉여 데이터가 형식 곳곳에 숨어 있어요.

ZIP Shrinker는 이런 부분을 분석해서, 압축 데이터 본체는 그대로 두고 메타데이터만 최소한으로 다듬어요. 그래서 원본 파일을 푸는 데는 아무 문제가 없어요. 일반적인 unzip 도구로도 똑같이 풀려요. 단지 파일 크기만 줄어드는 거죠.

얼마나 줄어들까

에반 한의 글에 따르면, 줄어드는 양은 파일에 따라 달라요. 압축된 콘텐츠가 큰 비중을 차지하는 ZIP은 별로 안 줄어요. 100MB짜리 ZIP에서 메타데이터가 100KB도 안 된다면, 그걸 다 청소해봐야 0.1%도 안 줄거든요. 반면에 많은 작은 파일을 모아놓은 ZIP에서는 효과가 커요. 파일 1만 개를 압축한 ZIP은 메타데이터만 수 MB일 수 있고, 그걸 절반으로 줄이면 의미 있는 절감이 되거든요.

실제로 EPUB(전자책), JAR(자바 패키지), DOCX/XLSX(MS 오피스 문서), APK(안드로이드 앱)는 모두 내부적으로 ZIP 형식을 써요. 즉 ZIP Shrinker는 이런 파일들도 더 작게 만들 수 있어요. 안드로이드 앱 빌드 결과물인 APK를 ZIP Shrinker로 줄이면, 사용자가 다운로드해야 할 용량이 조금이라도 줄어요. 수백만 명이 받는 앱이라면 누적된 절감이 무시 못할 수준이 되겠죠.

비슷한 도구들과의 비교

이런 "포맷 다이어트" 도구는 ZIP Shrinker가 처음은 아니에요. 구글이 만든 Zopfli라는 도구가 있어요. 이건 Deflate(ZIP이 쓰는 압축 알고리즘)를 훨씬 더 시간 들여서 압축해서 결과 파일을 5% 정도 더 작게 만들어요. 단점은 압축 시간이 100배 가까이 걸린다는 거예요. 압축은 한 번, 다운로드는 수백만 번이라는 상황에서만 의미가 있죠. 구글이 자기네 웹폰트 같은 정적 자산에 Zopfli를 쓰는 이유예요.

ZIP Shrinker는 Zopfli와는 결이 달라요. 재압축을 하지 않아요. 그래서 빨라요. 메타데이터만 정리하니까 거의 즉시 끝나죠. 두 도구는 사실 같이 써도 돼요. Zopfli로 콘텐츠를 재압축하고, ZIP Shrinker로 메타데이터를 청소하면 양쪽 효과를 다 얻을 수 있어요.

또 다른 비교 대상은 AdvanceCOMP 같은 도구예요. 이건 PNG, GZIP, ZIP 등 여러 형식을 더 작게 만드는 통합 도구인데, 주로 콘텐츠 재압축에 초점이 맞춰져 있어요. ZIP Shrinker는 그것보다 좁고 빠른 도구라고 보면 돼요.

한국 개발자에게 주는 시사점

실무에서 이 도구를 바로 도입할 만한 곳이 의외로 많아요. 가장 먼저 떠오르는 건 모바일 앱 배포예요. APK나 AAB 파일을 빌드 파이프라인 마지막에 ZIP Shrinker로 한 번 돌리는 거죠. 사용자 다운로드 용량과 디스크 사용량이 조금이라도 줄면 그만한 가치가 있어요. 특히 동남아 같은 데이터 비싼 시장을 노리는 서비스라면 더 그렇고요.

백업 파이프라인에도 쓸 수 있어요. 매일 수많은 작은 로그 파일을 ZIP으로 묶어서 S3에 올린다면, 그 ZIP들을 한 번씩 청소하는 것만으로 스토리지 비용을 줄일 수 있어요. 클라우드 비용은 1%만 줄여도 연 단위로 보면 큰 돈이거든요.

그리고 더 본질적으로는, 이 도구가 보여주는 "표준 형식에도 빈틈이 있다"는 교훈이 중요해요. 우리는 종종 PDF, JSON, XML 같은 형식을 "이미 다 정해진 것"이라고 생각하고 그대로 써요. 하지만 그 안에는 항상 최적화의 여지가 있어요. ZIP Shrinker는 그 여지를 발견하고 도구로 만든 좋은 사례예요.

마무리

ZIP Shrinker는 화려한 새 기술이 아니에요. 30년 묵은 형식의 군더더기를 닦아내는 청소 도구예요. 그런데도 충분히 가치가 있어요. 여러분이 매일 쓰는 형식 중에 "이거 빈틈이 있을 것 같은데" 싶은 게 있나요? 그걸 도구로 만들어내는 게 어쩌면 다음 사이드 프로젝트가 될 수도 있어요.


🔗 출처: Hacker News

이 뉴스가 유용했나요?

TTJ 코딩클래스 정규반

월급 외 수입,
코딩으로 만들 수 있습니다

17가지 수익 모델을 직접 실습하고, 1,300만원 상당의 자동화 도구와 소스코드를 받아가세요.

144+실전 강의
17개수익 모델
4.9수강생 평점
정규반 자세히 보기

"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"

실제 수강생 후기
  • 비전공자도 6개월이면 첫 수익
  • 20년 경력 개발자 직강
  • 자동화 프로그램 + 소스코드 제공

매일 AI·개발 뉴스를 받아보세요

주요 테크 뉴스를 매일 아침 이메일로 전해드립니다.

스팸 없이, 언제든 구독 취소 가능합니다.