끄적끄적 코딩
article thumbnail
Published 2025. 4. 6. 09:57
WebP와 AVIF를 알아보기 FrontEnd
728x90

서론

웹사이트 성능을 높이기 위한 방법은 다양하지만, 이미지 최적화는 가장 기본이자 효과적인 방법입니다. 페이지 로딩 속도에 큰 영향을 주는 이미지 파일을 얼마나 가볍고 효율적으로 처리하느냐에 따라 사용자 경험이 크게 달라지기 때문입니다.

https://velog.io/@dhwnatjr678/%EC%9B%B9-%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%94%EB%93%9C-%EC%84%B1%EB%8A%A5-%EC%B5%9C%EC%A0%81%ED%99%94-%EC%9D%B4%EB%AF%B8%EC%A7%80

기존에는 JPEG, PNG, 그리고 벡터 포맷인 SVG 등이 이미지 포맷의 표준으로 사용되어 왔습니다. 하지만 각각의 포맷은 한계를 가지고 있습니다. JPEG는 고화질 이미지를 저장하기에 적합하지만 손실 압축 특성상 반복 저장 시 품질 저하가 발생하고, PNG는 무손실 압축과 투명도 지원이라는 장점이 있지만 상대적으로 용량이 큰 편입니다. SVG는 해상도에 영향을 받지 않는 벡터 이미지이지만 실사 이미지에는 적합하지 않습니다.

이러한 한계를 보완하기 위해 GoogleAOM(Alliance for Open Media)에서는 각각 WebPAVIF라는 새로운 이미지 포맷을 개발하였습니다. 더 높은 압축률과 다양한 기능을 통해 기존 포맷의 한계를 극복하고 웹 성능 개선에 도움이 됩니다. 이 글에서는 두 포맷의 차이점, 장단점, 활용 방법에 대해 정리해보겠습니다.


WebP와 AVIF는 무엇일까?

WebP란?

WebP는 Google에서 개발한 이미지 포맷으로, 손실 압축과 무손실 압축을 모두 지원합니다. JPEG보다 약 25~35% 더 작은 파일 크기를 유지하면서도 비슷한 품질을 제공하고, PNG처럼 투명도, GIF처럼 애니메이션도 지원하여 다양한 상황에서 활용할 수 있습니다.

https://developers.google.com/speed/webp/docs/compression?hl=ko

WebP는 인접한 픽셀 간 색상의 유사성을 기반으로 픽셀 값을 예측하여 압축합니다. 이렇게 저장해야 할 데이터 양을 줄이고, 시각적으로는 큰 품질 저하 없이 용량을 절감할 수 있습니다. 

  • 지원 기능: 손실/무손실 압축, 투명도(alpha), 애니메이션
  • 장점: 빠른 인코딩, 넓은 브라우저 지원, 균형 잡힌 성능
  • 단점: JPEG보다 압축 효율이 낮을 수도 있음, AVIF 대비 화질/용량 측면에서 불리할 수 있음

AVIF란?

AVIF는 AOM에서 개발한 이미지 포맷으로, 동영상 압축 포맷인 AV1을 기반으로 만들어졌습니다. JPEG나 WebP보다 더 뛰어난 압축률과 품질을 제공하며, 특히 낮은 품질 설정에서도 선명한 화질을 유지할 수 있는 것이 장점입니다.

dreamhost.com/blog/avif-vs-webp/

AVIF는 AV1 코덱의 압축 기술을 활용해 HDR(High Dynamic Range) 이미지 지원, 깊은 색상 표현, 색상 손실 최소화 등을 가능하게 합니다. WebP보다 압축 효율이 높고, 고화질 이미지 표현에 적합하지만, 인코딩 속도가 느리고 아직 일부 브라우저에서 완전히 지원되지는 않습니다.

  • 지원 기능: 손실/무손실 압축, 투명도(alpha), 애니메이션
  • 장점: 매우 높은 압축 효율, 우수한 이미지 품질, HDR 지원
  • 단점: 느린 인코딩 속도, 제한적인 브라우저/플랫폼 지원

WebP와 AVIF 성능 비교

항목 WebP AVIF
개발사 Google AOM (Alliance for Open Media)
압축 유형 손실/무손실 손실/무손실
평균 압축률 JPEG 대비 약 25~35% 개선 JPEG 대비 약 40~60% 개선
인코딩 속도 빠름 느림
투명도 지원 O O
애니메이션 지원 O O
브라우저 지원 매우 높음 (Chrome, Firefox 등) 최근 증가세 (2025 기준 대부분 지원)

 

브라우저 호환성

  • WebP는 Chrome, Firefox, Edge, Safari 등 거의 모든 최신 브라우저에서 안정적으로 지원됩니다. 모바일 환경에서도 널리 활용되고 있어 도입 시 큰 부담이 없습니다.

https://caniuse.com/webp

  • AVIF는 Chrome, Firefox, Safari(최신 버전 기준) 등에서 점차 지원이 확대되고 있지만, WebP보다는 도입 시기가 늦어 구형 브라우저에서는 미지원 가능성이 있다고 합니다.

https://caniuse.com/avif

지원 여부를 확인하려면 Can I use 사이트를 참고하거나, <picture> 태그를 활용해 포맷별로 fallback 이미지를 제공하는 방식이 일반적으로 사용됩니다.

<picture>
  <source srcset="example.avif" type="image/avif">
  <source srcset="example.webp" type="image/webp">
  <img src="example.jpg" alt="Example Image">
</picture>

변환 및 적용 방법

  • CLI 도구: cwebp, avifenc 등을 사용해 이미지 포맷을 직접 변환할 수 있습니다.
  • Node.js 환경: sharp, imagemin, squoosh 등의 라이브러리를 활용해 자동 변환 파이프라인을 구성할 수 있습니다.
  • 빌드툴 연동: Webpack, Vite 등에서도 이미지 최적화 플러그인을 활용할 수 있습니다.
  • Next.js: <Image /> 컴포넌트를 사용하면 WebP/AVIF 포맷을 자동으로 제공할 수 있다고 합니다.

실제 프로젝트에서의 선택 기준

WebP를 선택하면 좋은 경우

  • JPEG 또는 PNG보다 더 효율적인 압축률이 필요한 경우
  • 투명도나 애니메이션을 지원하면서도 용량 절감이 필요한 경우

AVIF를 선택하면 좋은 경우

  • 최대한의 압축 효율이 필요한 경우
  • 고화질 이미지 표현이 중요한 경우

JPG를 선택하면 좋은 경우

  • 고화질 사진을 저장해야 하고, 모든 브라우저 및 플랫폼에서 안정적인 호환성이 필요한 경우
  • 손실 압축이 가능하고 용량을 줄이되, WebP나 AVIF를 도입하기 어려운 상황인 경우

PNG를 선택하면 좋은 경우

  • 투명도를 지원해야 하거나, 이미지 품질 손상이 전혀 없어야 하는 경우
  • UI 요소나 단순 그래픽 등에서 무손실 압축이 필요한 경우

SVG를 선택하면 좋은 경우

  • 아이콘, 로고 등 벡터 기반의 그래픽을 사용할 때
  • 해상도에 관계없이 선명한 출력이 필요한 경우

가능하다면 <picture> 태그를 이용해 AVIF → WebP → JPG/PNG/SVG 순으로 fallback을 설정해 두는 것이 가장 이상적이라고 생각합니다. 이를 통해 다양한 사용자 환경에서 최적의 품질과 성능을 제공할 수 있습니다.


마무리

WebP와 AVIF는 각각의 특성과 장단점을 가지고 있어, 프로젝트의 요구사항에 맞게 적절히 선택해 사용하는 것이 중요합니다. 특히 웹에서는 이미지가 전체 로딩 속도와 성능에 미치는 영향이 크기 때문에, 포맷 선택은 사용자 경험에 직결되는 요소 중 하나입니다.

상황에 따라 하나의 포맷만 사용하는 것보다는 WebP와 AVIF를 병행하거나 기존 포맷(JPG, PNG 등)과 함께 활용하는 것도 좋은 방법입니다. 다양한 디바이스와 브라우저 환경을 고려해 유연하게 대응한다면, 보다 안정적이고 효율적인 웹 서비스를 구현할 수 있을 것입니다.

검색 태그