압축 절감 계산기 쉽게 이해하기 — 개념과 원리
이 계산기는 텍스트 압축(Gzip, Brotli)을 켜거나 JPEG 이미지를 WebP나 AVIF로 바꿨을 때 파일이 얼마나 작아지는지, 그리고 전체 방문량 기준으로 한 달에 대역폭을 얼마나 아낄 수 있는지 추정합니다. 서버나 CDN에서 압축을 켤지 판단하거나 이미지 포맷 전환의 효과를 가늠할 때 씁니다.
계산 방법
- 새 크기(KB) = 원래 크기 × (1 − 절감률)입니다.
- 월간 절감 대역폭(GB) = 원래 크기 × 절감률 × 월간 페이지뷰 ÷ 1,000,000입니다.
방식 메뉴는 대표적인 절감률을 정합니다. 텍스트 Gzip 0.70, 텍스트 Brotli 0.76, JPEG→WebP 0.30, JPEG→AVIF 0.50입니다. KB를 100만으로 나누면 십진 단위 GB가 됩니다.
원리
HTML, CSS, 자바스크립트, JSON 같은 텍스트에는 같은 단어와 패턴이 반복해서 나옵니다. Gzip이 쓰는 DEFLATE 알고리즘은 반복되는 문자열을 앞쪽 위치를 가리키는 짧은 참조로 바꾸고(LZ77), 자주 나오는 기호에 짧은 비트를 주는 허프만 부호화를 적용합니다. Brotli는 비슷한 원리에 더 큰 탐색 범위, 문맥 모델링, 웹에서 흔한 문자열을 담은 내장 사전을 더해 텍스트에서 대체로 Gzip보다 조금 더 작아집니다. 이미지는 사정이 다릅니다. JPEG는 이미 압축된 형식이므로, WebP와 AVIF의 절감은 비슷한 화질에서 더 나은 예측과 변환 부호화를 쓰기 때문에 생깁니다. Gzip과 Brotli는 무손실이고, 이미지 변환은 대개 손실 압축이라 화질 설정에 따라 결과가 달라집니다.
예제 풀이
- 입력값은 500KB 파일, 텍스트 Gzip(0.70), 월간 페이지뷰 100,000회입니다.
- 새 크기는 500 × (1 − 0.70) = 150KB입니다.
- 한 번 방문할 때 아끼는 양은 500 × 0.70 = 350KB입니다.
- 월간 절감량은 350 × 100,000 ÷ 1,000,000 = 35GB입니다.
| 원래 크기 (KB) | 새 크기 (KB) |
|---|---|
| 125 | 37.5 |
| 250 | 75 |
| 375 | 112.5 |
| 500 | 150 |
| 625 | 187.5 |
| 750 | 225 |
| 1,000 | 300 |
결과 해석
절감률은 대표값일 뿐 보장된 값이 아닙니다. 공백과 주석을 줄인(minify) 자바스크립트도 흔히 60~80% 줄지만, 이미 압축된 JPEG, PNG, MP4, ZIP, WOFF2 파일은 Gzip을 적용해도 거의 줄지 않으므로 다시 압축하지 않는 것이 좋습니다. 이미지는 사진, 스크린숏, 일러스트마다 결과가 크게 다르니 대표 파일 몇 개를 원하는 화질로 직접 변환해 보십시오.
흔한 실수
- 이미 압축된 이미지나 동영상에 Gzip 절감률을 적용하는 경우입니다.
- 브라우저나 CDN 캐시를 무시하고 매 방문마다 파일 전체를 받는다고 계산하는 경우입니다.
- 원본 크기를 압축 전 기준으로 넣었는지, 이미 압축된 크기로 넣었는지 헷갈리는 경우입니다.
자주 묻는 질문
Brotli가 항상 Gzip보다 좋은가요?
텍스트에서는 비슷한 설정일 때 대체로 조금 더 작아지며, 최신 브라우저는 HTTPS에서 모두 지원합니다. Gzip은 안전한 대체 수단으로 남겨 둡니다.
압축하면 서버가 느려지나요?
요청마다 압축하면 CPU를 쓰므로, 정적 파일은 미리 높은 수준으로 압축해 저장해 두는 경우가 많습니다.
출처: IETF RFC 1951 (DEFLATE), RFC 1952 (GZIP 파일 형식) · IETF RFC 7932, Brotli Compressed Data Format