UTILS.
100% 브라우저 내 실행
🗜️

Gzip / Zlib / Deflate 압축 및 압축 해제

네이티브 gzip, zlib(deflate), 또는 raw DEFLATE 형식으로 브라우저에서 텍스트를 압축하거나 압축 해제합니다. base64/hex 출력과 압축률 제공.

위에 데이터를 입력하여 압축하거나 압축 해제하세요.

이 도구에 대하여

Gzip / Zlib / Deflate 도구는 네이티브 CompressionStream과 DecompressionStream API를 사용해 데이터를 전적으로 브라우저에서 압축하고 압축 해제합니다. 컨테이너 형식을 선택하세요 — gzip(0x1F 0x8B 매직 바이트를 가진 .gz 형식), zlib/deflate(zlib 헤더로 감싼 DEFLATE 데이터), 또는 deflate-raw(헤더 없는 순수 DEFLATE) — 그리고 방향을 선택하세요. 압축은 UTF-8 텍스트를 받아 압축된 바이트를 base64 또는 hex로 인코딩하여 반환하고, 압축 해제는 base64 또는 hex를 받아 원본 텍스트를 반환합니다.

브라우저에 내장된 스트리밍 압축을 사용하므로 아무것도 업로드되지 않고 외부 라이브러리도 로드되지 않습니다 — 데이터가 기기에 머뭅니다. 세 가지 형식은 서로 호환되지 않습니다. gzip과 zlib은 동일한 DEFLATE 페이로드 주위에 서로 다른 헤더와 체크섬(gzip은 CRC-32, zlib은 Adler-32)을 추가하는 반면, deflate-raw는 둘 다 생략하므로, 압축할 때 사용한 것과 동일한 형식으로 압축 해제해야 합니다. 압축 후 도구는 원본 크기, 압축된 크기, 그리고 백분율로 된 압축률(1 − compressed / original), 즉 출력이 얼마나 작아졌는지를 보고합니다.

반복이 많은 텍스트는 극적으로 압축됩니다. 짧거나 이미 압축된 입력은 헤더와 체크섬 오버헤드 때문에 실제로 커질 수 있는데, 이는 정상입니다. 브라우저가 CompressionStream을 제공하지 않으면 도구는 잘못된 출력을 만드는 대신 그렇다고 알립니다. 네이티브 API는 고정된 기본 압축 레벨을 사용하므로 레벨 선택기가 없습니다. 결과를 한 번의 클릭으로 복사하세요.

자주 묻는 질문

gzip, zlib, raw deflate의 차이는 무엇인가요?
세 가지 모두 DEFLATE 알고리즘을 사용합니다. gzip은 10바이트 헤더, 매직 바이트 0x1F 0x8B, CRC-32로 감쌉니다. zlib(deflate)은 짧은 헤더와 Adler-32 체크섬으로 감쌉니다. deflate-raw는 헤더나 체크섬이 없습니다. 압축할 때 사용한 것과 동일한 형식으로 압축 해제하세요.
압축 해제는 어떤 입력을 기대하나요?
압축된 데이터를 base64 또는 hex로 붙여넣으세요(출력 인코딩 선택기와 일치시킴). 도구는 이를 바이트로 디코딩하고 선택한 형식으로 inflate합니다. 바이트가 잘렸거나 형식이 잘못되면 데이터를 압축 해제할 수 없다고 보고합니다.
압축 후 텍스트가 왜 더 커졌나요?
gzip과 zlib은 헤더와 체크섬 바이트를 추가하며, DEFLATE는 절약을 찾으려면 충분한 반복이 필요합니다. 매우 짧거나 이미 무작위/압축된 입력의 경우 그 오버헤드가 이득을 넘어서므로 출력이 더 커질 수 있는데, 이는 예상되는 일입니다.
압축 레벨을 선택할 수 있나요?
아니요. 네이티브 CompressionStream API는 레벨 매개변수를 제공하지 않으므로 고정된 기본 레벨이 사용됩니다. 출력은 여전히 어떤 표준 도구(gunzip, zlib, pako)로도 압축 해제할 수 있는 완전히 유효한 gzip/zlib/deflate 스트림입니다.

더 많은 도구