검색어 'PNG 압축'으로 찾은 도구들은 대부분 '무손실', '화질 변화 없음'을 주장하지만, 압축률은 수십 배 차이가 납니다.
차이는 알고리즘이 아닌, '무손실'이라는 표현의 정의가 다르기 때문입니다.
이 글에서 차이를 설명하고 사용 시나리오별로 도구를 추천합니다.
먼저 구분하세요: 두 가지 '무손실'
진짜 무손실: 픽셀 하나도 변하지 않음
PNG 자체가 무손실 포맷이며, 파일 크기는 픽셀 데이터의 저장 방식과 Deflate 압축 방식, 그리고 파일에 포함된 메타데이터의 양에 따라 결정됩니다.
진짜 무손실 압축은 이 두 가지에만 집중합니다:
- 더 공간을 아끼는 저장 방식 사용. 예를 들어 실제로 200가지 색상만 사용 중이라면 팔레트 모드로 변경, 반투명이 없으면 알파 채널 제거, 그레이스케일 이미지는 그레이스케일로 저장.
- 더 나은 필터와 Deflate 파라미터 시도. 동일한 픽셀이라도 인코딩 방식이 다르면 압축 크기에 큰 차이가 납니다. 디자인 도구에서 내보낼 때는 속도를 우선하기 때문에 이 부분을 충실히 하지 않는 경우가 많습니다.
- 메타데이터 제거. 소프트웨어 정보, 타임스탬프, 주석, 썸네일 등 제거.
압축된 이미지를 디코딩하면 원본과 픽셀 단위로 완전히 동일합니다. 대신 크기 절감은 많지 않습니다—'인코딩이 충분히 깊이 있지 않은 부분의 수분만 빼낼 수 있기 때문'입니다.
'눈에 보이는 무손실': 사실은 손실 양자화
TinyPNG, pngquant 같은 도구가 크게 줄이는 이유는 PNG의 색상 수를 256색 이하로 줄이는(양자화) 작업을 수행하고, 이를 무늬(스플레터링)로 보정해 눈에 잘 보이지 않게 만들기 때문입니다.
이는 손실이며 픽셀이 이미 변경되었습니다. 대부분의 웹 아이콘이나 일러스트레이션에는 효과가 좋지만, '픽셀이 절대 변하지 않아야 하는' 경우—UI 이미지를 디자인도와 정확히 일치시켜야 하거나, 스크린샷을 픽셀 단위로 비교해야 하거나, 나중에 편집해야 하는 자료—에는 사용하지 않는 것이 좋습니다.
도구가 진짜 무손실인지 확인하는 가장 쉬운 방법: 압축 전후에 ImageMagick로 비교
compare -metric AE 원본.png 압축후.png null:
출력이0이면 픽셀이 하나도 변하지 않은 것입니다.
진짜 무손실 PNG 도구 추천
명령줄: oxipng (추천)
oxipng은 Rust로 작성된 PNG 무손실 최적화 도구로, 옛날 도구 OptiPNG의 현대적인 후속자라고 볼 수 있습니다:
- 멀티스레딩, 빠른 속도, 대량 처리에 적합.
-o 0부터-o 6(그리고-o max)로 압축 강도 조절, 레벨이 높을수록 느리지만 더 많이 줄임.--zopfli옵션 추가로 더 압축 가능하지만 속도가 매우 느려짐.- Squoosh의 PNG 무손실 압축은 이 도구를 사용합니다.
bash
brew install oxipng
oxipng -o 2 --strip safe -r ./images # 디렉터리를 재귀적으로 처리, 표시에 영향을 주지 않는 메타데이터만 제거
명령줄: zopflipng (극한 용량 추구)
구글에서 만들었으며 Zopfli 알고리즘을 사용해 Deflate 압축을 다시 구현했습니다. oxipng의 기본 레벨보다 조금 더 압축을 줄이는 경우가 많지만, 속도가 훨씬 느립니다. 큰 이미지는 오래 걸릴 수 있습니다. '한 번만 압축해서 오래 쓸' 정적 리소스에 적합합니다. 예: 웹사이트 로고, 앱 내 아이콘.
명령줄: OptiPNG, pngcrush (고전)
두 도구 모두 전통적인 PNG 무손실 최적화 도구이며 많은 빌드 파이프라인에서 여전히 볼 수 있습니다. 기능은 oxipng에 거의 포함되어 있으므로 새 프로젝트에서 별도로 선택할 필요는 없습니다.
웹: Squoosh
구글의 온라인 도구로, PNG에서 OxiPNG 인코더를 선택하면 무손실이 됩니다(주의: '팔레트 축소' 체크 해제).
장점은 설치 불필요하고 좌우 비교가 가능하다는 점이지만, 한 번에 한 파일만 처리되며 다운로드 후 수동으로 이름을 바꿔야 합니다. 가끔씩 몇 장씩 압축할 때 유용합니다.
Mac 그래픽 인터페이스: ImageOptim
오픈 소스이고 무료인 고전적인 Mac 도구로, oxipng, Zopfli, pngcrush 등 여러 최적화기를 내부에 통합하여 가장 작은 결과를 선택합니다. 기본은 무손실 모드입니다(손실 옵션은 수동으로 켜야 함).
압축 강도가 크지만 모든 최적화기를 켤 경우 속도가 느립니다. 원본 파일을 직접 덮어쓰므로 압축 전 백업을 하는 것이 좋습니다.
Mac 그래픽 인터페이스: ImgZilla
ImgZilla는 우리가 만든 macOS 이미지 압축 도구입니다. PNG 처리 방식이 매우 직관적입니다:
- oxipng를 사용하여 진짜 무손실 압축 수행, 압축 레벨은 2(Squoosh 기본값과 동일)로 속도와 용량 사이의 균형을 맞춥니다. 픽셀 하나도 변하지 않으므로 위
compare명령어로 검증 가능합니다. - 양자화하지 않고, 색상 감소도 없으며, 포맷도 바꾸지 않고 크기도 조정하지 않습니다. 압축 후에도 여전히 PNG입니다.
- 원본 위치 압축: 파일 이름과 경로가 그대로 유지되므로 코드나 문서의 참조를 수정할 필요가 없습니다.
- 폴더 전체를 드래그하여 처리: 하위 디렉터리를 재귀적으로 스캔하며 숨김 파일과
node_modules는 자동 건너뜁니다. JPG, GIF, WebP, HEIC, AVIF, SVG도 함께 처리됩니다. - 원본은 기본적으로 휴지통으로 이동, 불만족 시 우클릭 '원본 위치로 복원' 가능합니다.
- 압축할 수 없으면 강제하지 않음: 압축률이 0.4% 미만인 파일은 '최소화됨'으로 표시되어 원본 그대로 유지되며 무료 할당량도 차감되지 않습니다.
- 로컬에서만 실행되며, 자료는 어떤 서버로도 업로드되지 않습니다.
두 가지 점을 명확히 해둡니다:
- PNG의 극한 용량을 추구하지 않습니다. 레벨 2는
-o max나 Zopfli보다 훨씬 빠르며, 몇 퍼센트 더 줄이는 대신 속도가 빠릅니다. 로고를 마지막 바이트까지 압축해야 하는 경우에는 zopflipng이나 ImageOptim이 더 적합합니다. - 기본적으로 PNG의 모든 메타데이터(색상 프로필 포함)를 제거합니다. 일반적인 sRGB 이미지에는 영향이 없지만, Display P3 같은 광색역 프로필이 포함된 이미지(맥 스크린샷, 디자인 소프트웨어 내보내기 시 주로 발생)는 제거 후 색상 관리 소프트웨어에서 색상이 미세하게 변할 수 있습니다. 색상에 엄격한 이미지의 경우 설정에서 'EXIF 정보 유지'를 켜면 메타데이터가 그대로 유지됩니다.
한눈에 보는 정리표
| 도구 | 유형 | 진짜 무손실 | 대량 처리 | 적합 대상 |
|---|---|---|---|---|
| oxipng | 명령줄 | ✅ | ✅ | 개발자, 빌드 파이프라인 |
| zopflipng | 명령줄 | ✅ | 스크립트 필요 | 극한 용량 추구, 속도 무시 |
| OptiPNG / pngcrush | 명령줄 | ✅ | ✅ | 기존 프로젝트 유지 |
| Squoosh | 웹 | ✅ (OxiPNG, 팔레트 축소 해제) | ❌ 한 파일씩 | 가끔씩 몇 장씩 압축할 때 |
| ImageOptim | Mac 앱 | ✅ (기본) | ✅ | Mac에서 최대 압축력 원하는 사용자 |
| ImgZilla | Mac 앱 | ✅ | ✅ 폴더 드래그 | 대량 압축, 경로 변경 원치 않음, 되돌리기 가능 |
| TinyPNG / pngquant | 웹 / 명령줄 | ❌ 손실 양자화 | 버전에 따름 | 색상 감소 허용, 더 작은 용량 원하는 사용자 |
선택 방법
- 픽셀이 절대 변하지 않아야 하고, 명령어 입력을 원한다: oxipng를 사용하여 빌드 스크립트에 넣어 한 번에 끝낼 수 있습니다.
- 단일 파일을 극한까지 압축해야 한다: zopflipng을 사용합니다.
- Mac에서 그래픽 인터페이스로 대량 처리: ImageOptim이 더 강력하지만 ImgZilla가 더 빠르고, 원본을 휴지통에서 되돌릴 수 있으며 다른 포맷도 함께 처리할 수 있습니다.
- 미세한 손실을 감수하고 더 작은 크기를 원한다: TinyPNG / pngquant를 사용하지만, 이제는 무손실이 아님을 명심해야 합니다.
마지막으로 한 가지: 무손실 압축이 얼마나 절약되는지는 PNG가 처음 어떻게 내보내졌는지에 따라 다릅니다. 디자인 도구에서 직접 내보내거나 처리되지 않은 PNG는 많은 '수분'을 가지고 있지만, 이미 최적화된 PNG는 더 이상 많이 줄일 수 없습니다. 도구가 '최소화됨'을 표시한다면 이미 매우 잘 압축되었다는 뜻이며, 도구가 문제가 아닙니다.
ImgZilla는 현재 macOS(12.3 이상)만 지원하며 Mac App Store에서 다운로드할 수 있습니다. 무료 버전은 하루 10장까지 압축 가능하며, 성공한 압축에만 할당량이 적용됩니다. PNG가 가득 찬 폴더를 드래그한 뒤
compare로 픽셀이 정말 변하지 않았는지 확인하세요.
