이미지 압축, 사이트마다 결과가 다른 이유
같은 "품질 80"인데 결과가 다르다. JPEG 압축이 어떻게 작동하는지, 어떤 값을 골라야 하는지.
같은 사진을 두 사이트에 넣고 똑같이 "품질 80"으로 압축했는데, 한쪽은 멀쩡하고 한쪽은 망가졌다. 우리는 이 질문을 자주 듣는다. 답은 짧다. 80이라는 숫자가 표준이 아니라서 그렇다.
품질 80%는 누가 정해주는 숫자가 아니다
JPEG 압축 결과는 세 가지에 달려있다.
- 양자화 테이블(quantization table) — 인코더가 어떤 표를 쓰는지. libjpeg-turbo와 mozjpeg는 같은 "품질 80"이어도 결과 파일이 다르다. 보통 mozjpeg가 같은 시각 품질을 더 작은 용량으로 만든다.
- 크로마 서브샘플링 — 4:4:4 / 4:2:2 / 4:2:0 중 어느 것을 쓰는지. 4:2:0은 색 정보를 절반 이상 버린다. 글자나 빨간색 영역이 흐릿하게 번진다면 거의 이것 때문이다.
- 메타데이터·컬러 프로파일 — EXIF, 썸네일, ICC 프로파일을 살리느냐 지우느냐. 사진 한 장에서 200KB 넘게 차지하는 경우도 흔하다.
그러면 "80%"는 어디 기준인가
대부분의 웹 도구는 libjpeg 또는 browser-image-compression의 기본값을 그대로 쓴다. 같은 80이라도 인코더가 다르면 파일 크기·시각 품질 차이가 30%까지 난다. 도구 결과를 비교하려면 숫자보다 결과 이미지를 같은 화면에 띄워보는 게 정확하다.
상황별로 무엇을 골라야 하나
- SNS·블로그 업로드: 품질 75~85, 4:2:0. 시각 차이는 거의 없고 용량은 절반 가까이 줄어든다.
- 인쇄·디자인 원본 보관: 품질 90 이상, 4:4:4, ICC 유지. 손실은 누적되면 되돌릴 수 없다.
- 썸네일·아이콘: JPEG보다 WebP나 PNG가 보통 더 작다. 알파 채널이 필요하면 더더욱.
두 번 압축하지 말 것
이미 압축된 JPEG를 다시 압축하면 양자화 오차가 누적된다. 한 번 더 80%로 압축한다고 80%가 유지되는 게 아니라, 64%(0.8 × 0.8)에 가깝게 망가진다. 원본 PNG/HEIC가 남아있다면 거기서 시작하는 게 항상 낫다.
이미지 압축 도구는 mozjpeg 기반이라 같은 품질 80에서도 libjpeg보다 평균 12~18% 더 작게 나온다. 비교 모드를 켜면 원본과 결과를 나란히 보면서 품질 슬라이더를 조절할 수 있다.
다른 가이드