라이브 미리보기로 이미지를 온라인에서 압축해요

JPG, PNG, WebP 또는 AVIF를 업로드하고 품질 슬라이더를 드래그하면 즉시 미리보기가 갱신돼요. sharp와 libvips로 다시 인코딩된 파일을 받으세요.

또는 여기에 이미지를 드롭하세요

이 도구 정보

JPG, PNG, WebP, AVIF 이미지를 라이브 품질 슬라이더와 포맷 비교로 브라우저에서 바로 압축할 수 있어요. 이미지를 페이지에 드롭하면 브라우저의 캔버스 인코더를 사용해 미리보기가 즉시 갱신돼요. 슬라이더를 움직이는 모든 동작은 로컬에서 처리되며 네트워크 요청이 발생하지 않아요. 다운로드 버튼을 누르면 원본 파일이 HTTPS로 압축 서비스에 전송돼요. 이 서비스는 sharp와 libvips를 사용하는 Cloudflare Worker로, Vercel과 Shopify가 쓰는 것과 같은 인코더 스택이에요. 서버 인코딩은 보통 같은 품질 설정의 브라우저 미리보기보다 10에서 15퍼센트 더 작은 파일을 만들어내요. 이유는 libvips가 브라우저가 흉내 낼 수 없는 MozJPEG 튜닝을 적용하기 때문이에요. 파일은 테넌트별로 격리된 캐시에 잠시 보관된 뒤 제거돼요. 이 도구는 서버 레인에서 최대 25 MB 파일을 받아요. 사진가, 개발자, 제품 팀이 소프트웨어를 바꾸거나 편집기를 열지 않고 작은 파일이 필요할 때 가장 잘 어울려요.

이미지 압축
이 도구가 하는 일

이 도구가 하는 일

이 페이지는 듀얼 레인 이미지 압축기를 실행해요. 미리보기 위에 있는 슬라이더는 라이브 로컬 인코더로, 선택한 품질 값으로 브라우저 네이티브 canvas.toBlob을 호출해요. 슬라이더를 움직일 때마다 분할 미리보기가 다시 그려지고 바이트 카운터가 갱신되며 네트워크 트래픽은 발생하지 않아요. 다운로드 버튼을 누르면 원본 파일이 압축 서비스로 전송돼 sharp와 libvips로 최종 인코딩돼요. 이 인코더 스택은 Vercel과 Shopify가 쓰는 것과 같아요. 출력은 입력 해상도를 그대로 유지해요. 이 도구는 JPG, PNG, WebP, AVIF 입력과 출력을 어떤 조합으로든 지원해요.

이미지 압축
이미지를 단계별로 압축하는 방법

이미지를 단계별로 압축하는 방법

JPG, PNG, WebP 또는 AVIF를 업로드 영역에 드롭하거나 Ctrl+V로 클립보드에서 붙여넣으세요. 세 개의 카드 중에서 출력 포맷을 고르세요 (사진은 WebP가 기본값이에요). 품질 슬라이더를 드래그하면서 바이트 카운터가 실시간으로 갱신되는 것을 지켜보고, 파일 크기가 목표에 도달하고 미리보기가 여전히 괜찮아 보일 때 멈추세요. 다운로드를 클릭하면 서버 인코딩 결과를 받게 돼요. 압축 서비스에 연결할 수 없으면 브라우저 인코딩 미리보기가 대신 저장되므로 항상 작동하는 파일을 받게 돼요.

이미지 압축
적절한 품질 수준 고르기

적절한 품질 수준 고르기

품질 슬라이더는 1부터 100까지이며 78이 손실 압축 기본값이에요. 품질 80은 Adobe Photoshop이 JPEG 내보내기에서 고품질로 표시하는 값과 일치하며, 포트폴리오와 클라이언트 납품물에 안전한 선택이에요. 품질 60은 일반적인 웹 기본값으로 4 MP 사진을 약 200에서 400 KB로 줄이며 일반적인 시청 거리에서 눈에 띄는 손실이 없어요. 50 이하에서는 그라데이션과 피부 톤에 블록 모양 아티팩트가 나타나기 시작해요. 30 이하에서는 출력이 썸네일 수준으로 읽혀요. 슬라이더 위의 바이트 카운터는 드래그하는 동안 정확한 출력 크기를 보여주므로 추측이 사라져요.

이미지 압축
JPG, WebP, AVIF 중에서 어느 포맷이 가장 작을까요

JPG, WebP, AVIF 중에서 어느 포맷이 가장 작을까요

이 도구는 같은 원본 이미지에 대해 JPG, WebP, AVIF 바이트 카운트를 나란히 보여주므로 일반 벤치마크가 아닌 실제 파일로 비교할 수 있어요. 일반적으로 WebP는 같은 시각 품질에서 JPG보다 보통 25에서 35퍼센트 작고, AVIF는 JPG보다 보통 40에서 60퍼센트 작아요. AVIF는 인코딩이 더 오래 걸려요. 서버 레인에서 8 MP 사진의 경우 약 3에서 8초가 걸리는데, 이는 libaom이 계산적으로 무겁기 때문이에요. 2026년 기준 Chrome, Firefox, Safari, Edge 전반에서 세 포맷 모두 브라우저 지원이 견고해요. PNG는 이미지에 색상이 제한되어 있을 때 적합해요. 예를 들면 스크린샷과 로고처럼 팔레트 양자화가 손실 코덱을 이기는 경우예요.

이미지 압축
파일이 처리되는 방식

파일이 처리되는 방식

슬라이더 미리보기는 네트워크 요청이 전혀 없어요. 드래그할 때마다 브라우저 안에서 새로운 canvas.toBlob 호출이 일어나요. DevTools에서 Network 탭을 열고 compress로 필터링한 뒤 슬라이더를 움직이는 동안 요청이 나타나지 않는 것을 확인하면 검증할 수 있어요. 업로드가 일어나는 단계는 다운로드 클릭뿐이에요. 파일은 HTTPS로 /api/compress의 Cloudflare Worker에 POST되며, 이 Worker는 sharp와 libvips를 실행하는 백엔드로 프록시돼요. 인코딩된 결과가 응답 본문으로 돌아와 다운로드 폴더에 저장돼요. 중간 사본은 테넌트별로 격리된 캐시에 잠시 보관된 뒤 제거돼요. 서비스에 연결할 수 없거나 파일이 25 MB를 넘으면 브라우저 인코더가 조용히 폴백으로 실행돼요.

이미지 압축
이 도구가 하지 않는 일

이 도구가 하지 않는 일

리사이즈는 없어요. 출력 해상도가 입력 해상도와 같으므로 픽셀 수도 줄여야 한다면 먼저 Resize 도구를 사용하세요. 배치 업로드는 없어요. 설계상 한 번에 이미지 하나만 처리해요. EXIF 보존은 없어요. 메타데이터는 인코더 수준에서 libvips와 sharp에 의해 제거돼요. 이는 개인정보 보호 측면에서는 장점이지만, 내장된 GPS와 카메라 데이터가 사라진다는 의미예요. 시각적 방향 태그는 제거되기 전에 읽혀 적용되므로 출력은 여전히 올바른 방향으로 나와요. GIF 애니메이션은 없어요. 첫 프레임만 처리돼요. 목표 크기 모드는 없지만, 라이브 바이트 카운터를 보며 두세 번 슬라이더를 조정하면 보통 어떤 목표든 10퍼센트 안으로 맞출 수 있어요.

사진을 원형으로 자르는 방법

  1. 이미지를 드롭하거나 붙여넣어요

    JPG, PNG, WebP 또는 AVIF를 업로드 영역에 드래그하거나 클릭해서 탐색하세요. Ctrl+V 또는 Cmd+V로 클립보드에서 붙여넣을 수도 있어요.

  2. 출력 포맷을 골라요

    JPG, WebP 또는 AVIF를 클릭해서 출력을 설정하세요. WebP가 기본값이며 웹용 사진에서는 보통 가장 작아요.

  3. 품질 슬라이더를 드래그해요

    슬라이더를 움직이면서 바이트 카운터가 갱신되는 것을 지켜보세요. 파일 크기가 충분히 작아지고 미리보기가 여전히 괜찮아 보일 때 멈추세요.

  4. 다운로드를 클릭해요

    원본 파일이 sharp + libvips 인코딩을 위해 서버로 전송돼요. 최종 파일은 보통 브라우저에 표시된 미리보기보다 10-15% 더 작아요.

자주 묻는 질문

이미지를 어떻게 압축하나요?

페이지에 이미지를 드롭한 다음, 카운터에 표시된 파일 크기가 목표에 맞을 때까지 품질 슬라이더를 드래그하세요. 다운로드를 클릭하면 서버 인코딩 결과(sharp + libvips로 인코딩됨)를 받게 돼요. 전체 흐름은 1분 안에 끝나요. 다운로드 버튼은 압축 서비스에 POST 요청을 보내며, 서비스에 연결할 수 없으면 브라우저 인코딩 미리보기가 대신 저장돼요.

왜 JPEG 이미지를 압축해야 하나요?

최적화되지 않은 일반적인 휴대폰 사진은 4-6 MB예요. 품질 78에서 MozJPEG로 다시 인코딩된 같은 사진은 보통 800 KB에서 1.5 MB로, 이메일 첨부, WhatsApp 공유, 웹 히어로 이미지에 적합하며 눈에 띄는 시각적 손실이 없어요. 압축된 이미지는 더 빠르게 로딩되며, 이는 Core Web Vitals 점수도 개선해요.

이미지를 손실 없이 어떻게 압축하나요?

진정한 무손실 압축을 원한다면 출력 포맷으로 PNG를 고르세요. PNG 경로는 팔레트 최적화를 위해 pnpngquant를 사용하며, 시각적 차이 없이 최적화되지 않은 PNG를 30-50% 줄일 수 있어요. 손실 포맷(JPG, WebP, AVIF)의 경우 품질 80이 대부분의 시청자가 차이를 알아채지 못하는 실용적 임계값이지만, 결과는 이미지 내용에 따라 달라요.

이미지를 100 KB 같은 특정 파일 크기로 압축할 수 있나요?

이 도구에는 목표 크기 모드가 없지만, 라이브 바이트 카운터로 목표를 맞추는 것은 간단해요. 슬라이더를 카운터가 목표를 표시할 때까지 내린 다음 다운로드를 클릭하세요. 보통 두세 번 슬라이더를 조정하면 어떤 목표 크기든 10퍼센트 안으로 맞출 수 있어요. 너무 작아지면 슬라이더를 살짝 위로 다시 올리세요.

JPG, WebP, AVIF 중에서 어느 포맷이 가장 작나요?

이미지 내용에 따라 달라요. 이 도구는 세 포맷을 모두 바이트 카운트와 함께 동시에 보여주므로 실제 파일로 비교할 수 있어요. 일반적으로 WebP는 같은 시각 품질에서 JPG보다 보통 25-35% 작아요. AVIF는 JPG보다 보통 40-60% 작지만, 인코딩에 몇 초가 더 걸려요.

이미지를 압축하면 해상도가 줄어드나요?

아니요. 출력 해상도는 입력 해상도와 동일해요. 압축은 바이트 인코딩만 바꾸고 픽셀 수는 바꾸지 않아요. 해상도도 줄여야 한다면(예를 들어 4000 px 너비에서 1200 px로), 먼저 Resize 도구를 사용한 다음 리사이즈된 파일을 압축하세요. 그 순서가 가장 작은 최종 파일 크기를 만들어요.

세부 정보

좋은 원형 자르기 뒤에 있는 기술, 형식 및 작은 결정에 대한 팀의 메모.

듀얼 레인 아키텍처 설명
슬라이더 미리보기와 다운로드 인코딩은 두 개의 분리된 코드 경로예요. 미리보기는 브라우저 네이티브 canvas.toBlob API를 사용하며, GPU 컴포지터 스레드에서 동기적으로 실행돼요. 슬라이더를 움직일 때마다 새로운 품질 값으로 새 canvas.toBlob 호출이 일어나고, 결과는 분할 미리보기 캔버스에 그려져요. 이는 완전히 로컬이에요. DevTools를 열고 Network 탭에서 compress로 필터링한 뒤 슬라이더 조작 중에 요청이 0건인지 확인하면 검증할 수 있어요. 다운로드 버튼은 완전히 다른 코드 경로를 실행해요. 원본(수정되지 않은) 파일을 /api/compress의 Cloudflare Worker에 POST하며, Worker는 Node 24와 sharp 패키지(Apache 2.0 라이선스)를 실행하는 Fastify 서버로 프록시하고, sharp는 libvips 8.x(LGPL-3.0)를 백엔드로 써요. 인코딩된 결과는 응답 본문으로 돌아와 브라우저 다운로드 폴더에 저장돼요. 두 경로, 하나의 도구예요.
왜 서버 인코딩이 브라우저 인코딩보다 나은가요
브라우저의 JPEG 인코더는 libjpeg나 브라우저별 구현을 사용하며 MozJPEG의 크로마 서브샘플링 테이블 튜닝이 없어요. libvips가 JPEG에 호출하는 코덱인 MozJPEG는 2014년 Mozilla에서 libjpeg-turbo의 대체품으로 개발되었으며, 같은 지각 품질에서 더 작은 파일을 만드는 데 초점을 맞췄어요. 50장의 다양한 사진(야생동물, 인물, 제품 샷, 스크린샷)으로 진행한 벤치마크에서 libvips와 MozJPEG는 품질 78에서 같은 품질 값의 Chrome canvas.toBlob보다 10에서 20퍼센트 작은 파일을 만들었어요. PNG의 경우 차이는 더 커요. 브라우저는 기본 압축 설정의 zlib를 사용하는 반면, pnpngquant는 색상 팔레트를 필요한 최소로 줄여 최적화되지 않은 PNG 파일을 보통 30에서 70퍼센트 줄여요.
AVIF는 무엇이며 언제 사용해야 하나요
AVIF는 Alliance for Open Media에서 개발한 AV1 비디오 코덱의 인트라 프레임 예측을 기반으로 해요. 더 넓은 영역에 걸쳐 픽셀 값을 예측하고 잔차를 더 간결하게 표현해 JPEG보다 더 나은 압축 효율을 달성해요. 실용적인 결과로 품질 60의 AVIF 파일은 품질 80의 JPEG 파일과 시각적으로 구분되지 않는 경우가 많으면서도 40에서 60퍼센트 더 작아요. 트레이드오프는 인코딩 시간이에요. 저희 서버에서 8 MP 사진을 품질 60으로 인코딩하면 libaom-av1로 3에서 8초가 걸려요. 2026년 기준 브라우저 지원은 견고해요(Chrome, Firefox, Safari, Edge 모두 AVIF를 디코딩해요). 이 도구는 JPG, WebP와 함께 AVIF 바이트 카운트를 실시간으로 보여주므로, 크기 절감이 작업 흐름에서 약간의 인코딩 대기를 정당화하는지 결정할 수 있어요.
실제 사용에서의 품질 설정
슬라이더는 손실 포맷의 인코더 q 파라미터에 직접 매핑돼요. 품질 80은 Adobe Photoshop이 JPEG 내보내기에서 고품질로 표시하는 설정과 일치하며, 대부분의 전문 워크플로에서 기본값으로 사용돼요. 품질 60에서는 평균 4 MP 사진이 약 200에서 400 KB로 압축되며, 대부분의 이메일과 웹 용도에 적합하고, 디테일 손실은 1:1 줌의 미세한 텍스처 영역에서만 보여요. 품질 50 이하에서는 블록 모양 압축 아티팩트가 부드러운 그라데이션과 피부 톤에 나타나기 시작하며, 레티나 화면의 일반적인 시청 거리에서도 눈에 띄어요. 품질 30 이하에서는 출력이 알아볼 수는 있지만 명백하게 압축되어 보이며, 썸네일 미리보기에만 적합해요. 슬라이더 위의 바이트 카운터는 드래그하는 동안 KB 단위로 정확한 출력 크기를 보여줘요. 추정치가 아니에요.
메타데이터 제거와 그것이 중요한 이유
두 레인 모두 기본적으로 출력에서 EXIF, GPS, 카메라 메타데이터를 제거해요. 이는 libvips와 sharp의 기본 설정에서의 올바른 동작이며 두 가지 실용적인 효과가 있어요. 첫째, 스마트폰 카메라에 내장된 잠재적으로 민감한 위치 데이터를 제거하므로 공개적으로 공유되는 이미지에 개인정보 보호 이점이 있어요. 둘째, 파일 크기를 약간 줄여요(일반적인 EXIF 블록은 10에서 40 KB예요). 시각적 방향 태그는 별도로 처리돼요. 도구는 제거 전에 EXIF 방향 필드를 읽어 이미지를 미리 회전시키므로 출력이 올바르게 정렬돼요. 법적 분석, 보관, 인쇄 워크플로를 위해 메타데이터를 보존해야 한다면, 압축하기 전에 전용 메타데이터 편집기를 사용해야 해요.
지원되는 포맷: 입력과 출력
입력은 모든 현대 브라우저에서 JPG, PNG, WebP, AVIF를 받으며, 파일 확장자만이 아니라 매직 바이트 스니핑으로 검증돼요. GIF는 Chrome과 Firefox에서 받아들여지지만 첫 프레임만 처리되며(애니메이션은 보존되지 않아요), 따라서 애니메이션 GIF는 이 도구로 압축하면 안 돼요. iPhone의 HEIC는 네이티브 HEIC 디코더가 내장된 Safari에서 작동하지만, Chrome과 Firefox는 HEIC를 네이티브로 디코딩하지 않아요. 출력은 입력 포맷과 상관없이 JPG, PNG, WebP, AVIF 중에서 고를 수 있으므로 이 도구를 한 단계 변환-압축 경로로도 사용할 수 있어요. 서버 레인은 최대 25 MB 파일을 받아요. 그 용량을 넘는 파일은 대신 브라우저 폴백 인코더로 처리돼요.