눈에 띄는 시각적 품질 저하 없이 PNG 파일의 데이터 용량을 줄여주는 무료 도구입니다.
PNG 파일은 두 단계의 압축 과정을 거칩니다. 첫 번째 단계는 필터링(filtering)으로, 각 픽셀 행의 데이터를 인접 픽셀과의 차이값으로 변환합니다. 이 과정에서 원본 데이터의 반복 패턴이 강화되어 후속 압축 효율이 높아집니다.
두 번째 단계는 DEFLATE 압축입니다. DEFLATE는 LZ77 알고리즘과 허프만 코딩을 결합한 방식으로, 반복되는 바이트 시퀀스를 참조 포인터로 치환하고 자주 등장하는 값에 짧은 비트 코드를 할당합니다. 이 두 단계의 조합이 PNG의 무손실 압축을 가능하게 합니다.
무손실 압축에서 더 나아가려면, 색상 팔레트 최적화가 효과적입니다. 원본 이미지가 실제로 사용하는 색상 수를 분석하여 불필요한 색상 정보를 제거하면, 픽셀당 비트 수가 줄어듭니다. 예를 들어 1670만 컬러(24비트)를 지원하는 이미지가 실제로는 256색만 사용하고 있다면, 인덱스 컬러 모드로 변환만으로도 파일 크기가 크게 감소합니다. 이것이 손실 압축 모드의 핵심 메커니즘입니다.
대부분의 온라인 이미지 압축 서비스는 동일한 방식으로 작동합니다. 사용자가 파일을 서버에 업로드하면, 서버 측에서 압축을 수행한 뒤 결과 파일을 다시 다운로드 링크로 제공합니다. 이 과정에서 원본 이미지가 제3자의 서버에 일시적으로 저장됩니다.
일반적인 사진이라면 큰 문제가 아닐 수 있지만, 다음과 같은 경우에는 프라이버시 리스크가 실질적인 수준이 됩니다.
업무 문서 스크린샷: 내부 시스템 화면, 재무 데이터, 고객 정보가 포함된 스크린샷이 서버에 업로드되면, 해당 데이터의 처리와 보관 정책을 사용자가 통제할 수 없게 됩니다.
의료 및 법률 이미지: 의료 영상, 스캔 문서, 계약서 이미지 등은 개인정보보호법과 업종별 규정의 적용을 받습니다. 이러한 파일을 외부 서버에 전송하는 것만으로도 규정 위반에 해당할 수 있습니다.
개발 관련 자료: 코드 스크린샷, 서버 설정 화면, API 키가 노출된 화면 등은 서버를 통과하는 순간 보안 사고의 잠재적 원인이 됩니다.
이러한 상황에서 브라우저 내에서 처리되는 압축 도구는 파일이 디바이스 밖으로 나가지 않는다는 점에서 근본적으로 다른 보안 특성을 제공합니다.
서버 기반 압축 도구와 브라우저 기반 압축 도구의 차이는 아키텍처 수준에서 발생합니다.
서버 기반 방식: 클라이언트 → HTTP 업로드 → 서버 메모리/디스크 → 서버 측 라이브러리(예: libpng, ImageMagick)로 압축 → 결과 파일 HTTP 응답. 이 구조에서 파일 전송, 처리, 삭제의 전 과정이 서비스 제공자의 관리 하에 있습니다. 업로드된 파일이 실제로 삭제되는지, 로그에 어떠한 정보가 남는지를 사용자가 검증하기 어렵습니다.
브라우저 내 방식: 파일 선택 → FileReader API로 브라우저 메모리 로드 → JavaScript/WebAssembly로 압축 연산 → Blob URL로 결과 생성 → 다운로드. 이 구조에서는 네트워크 전송이 발생하지 않으므로 파일이 사용자의 디바이스를 떠나지 않습니다. 압축 연산은 브라우저의 WebAssembly 엔진이 담당하며, C/C++ 기반의 압축 라이브러리를 웹 환경에서 네이티브에 가까운 속도로 실행할 수 있습니다.
성능 차이도 있습니다. 서버 기반 방식은 네트워크 대역폭과 서버 부하에 영향을 받지만, 브라우저 내 방식은 디바이스의 CPU 성능에만 의존합니다. 최신 브라우저의 WebAssembly 성능은 충분히 빨라서, 수 MB 수준의 PNG 파일을 수 초 내에 처리할 수 있습니다.
무손실 압축과 손실 압축의 선택은 이미지 유형에 따라 다릅니다. 두 모드의 특성을 정확히 이해하면 불필요한 품질 손실 없이 최적의 결과를 얻을 수 있습니다.
무손실 압축이 적합한 경우:
손실 압축이 적합한 경우:
손실 압축의 핵심 변수는 색상 수(color count)입니다. 256색에서 시작하여 128, 64, 32색으로 줄이면 파일 크기는 급격히 감소하지만, 그라데이션이 포함된 이미지에서는 계단 현상(banding)이 나타납니다. 이 트레이드오프를 실험을 통해 파악하는 것이 중요합니다. 무손실 압축만으로 충분한 결과를 원한다면, 전용 무손실 이미지 압축 도구도 활용할 수 있습니다.
PNG 압축률은 이미지의 콘텐츠 특성에 따라 크게 달라집니다. 일반적인 패턴을 이해하면 압축 전에 결과를 어느 정도 예측할 수 있습니다.
단순한 UI 스크린샷 (웹 페이지, 앱 화면): 대형 단색 영역과 반복 패턴이 많아 무손실 압축에서도 30~60% 크기 감소가 일반적입니다. DEFLATE 알고리즘이 이러한 반복 데이터를 효율적으로 압축합니다.
텍스트 중심 문서 스크린샷: 배경이 단색이고 텍스트 패턴이 반복되므로, 무손실 압축률이 높습니다. 하지만 한글과 같은 복잡한 문자는 ASCII 텍스트보다 패턴 다양성이 높아 압축률이 소폭 낮아질 수 있습니다.
사진 계열 PNG: 픽셀 간 값 변화가 크고 복잡한 패턴으로 이루어져 있어 무손실 압축률은 5~20% 수준으로 낮습니다. 손실 압축(색상 팔레트 reduction)을 적용하면 40~70%까지 크기를 줄일 수 있지만, 미세한 색상 차이가 발생합니다.
일러스트 및 벡터 래스터화 이미지: 평탄한 색상 영역이 많고 엣지가 명확하여 무손실 압축률이 높습니다. 인덱스 컬러 모드로 변환하면 최대 80%까지 감소하는 경우도 있습니다.
이미지 유형에 따라 압축률이 다르다는 사실은, 동일한 압축 도구를 사용하더라도 설정을 다르게 적용해야 최적의 결과를 얻는다는 것을 의미합니다. JPG 압축 도구와 비교하면, PNG는 사진보다 UI 이미지에서 상대적으로 더 효과적인 압축을 제공합니다.
압축 도구에 파일을 넣기 전에 몇 가지를 확인하면, 불필요한 압축 시도를 줄이고 더 나은 결과를 얻을 수 있습니다.
메타데이터 확인: PNG 파일에는 텍스트 청크(text chunks)로 저장되는 메타데이터가 포함될 수 있습니다. 소프트웨어 정보, 생성 시간, GPS 좌표, 저작권 정보 등이 여기에 해당합니다. 압축 도구에 따라 이 메타데이터를 제거하는 옵션을 제공하는데, 제거만으로도 수 KB에서 수백 KB까지 크기를 줄일 수 있습니다.
색상 모드 점검: 이미지 편집 소프트웨어에서 작업한 파일은 48비트 또는 64비트(Truecolor + Alpha)로 저장되는 경우가 있습니다. 대부분의 웹 사용 시나리오에서는 24비트(Truecolor)나 8비트(Indexed)로 충분합니다. 불필요한 비트 깊이를 줄이는 것만으로 파일 크기가 절반 이하로 감소합니다.
투명도 필요 여부: 알파 채널이 포함된 PNG는 포함되지 않은 파일보다 30% 이상 큰 경우가 많습니다. 투명도가 필요 없는 이미지라면 알파 채널을 제거한 상태로 저장하면 추가 압축 없이도 크기가 줄어듭니다.
인터레이스(interlacing) 설정: 인터레이스 PNG는 점진적 로딩을 지원하지만, 파일 크기가 10~20% 증가합니다. 웹에서 사용할 이미지라면 인터레이스를 비활성화하는 것이 일반적으로 더 효율적입니다.