웹사이트 속도를 높이는 이미지 최적화 완전 가이드

·15 min read·Philo
웹 성능

평균적인 웹페이지 전체 용량에서 이미지가 차지하는 비율은 거의 절반에 달해요. HTTP Archive 데이터에 따르면 일반적인 웹페이지가 로드하는 이미지의 중간값이 1MB를 넘고, 고해상도 디스플레이가 대중화되면서 이 수치는 계속 커지고 있어요. 최적화되지 않은 이미지는 웹사이트 로딩이 느린 가장 흔한 원인 중 하나예요.

좋은 소식은 이미지 최적화가 할 수 있는 성능 개선 중 투자 대비 효과가 가장 높은 것 중 하나라는 거예요. 이 완전 가이드에서는 올바른 형식 선택부터 지연 로딩, 반응형 이미지 구현까지 웹 성능을 위한 이미지 최적화의 모든 것을 다뤄볼게요.


이미지 최적화가 왜 중요한가요?

사용자 경험에 직접적인 영향

페이지 로딩 시간이 사용자 행동에 영향을 미친다는 건 수많은 연구로 입증돼 있어요:

  • **모바일 사용자의 53%**가 로딩에 3초 이상 걸리는 사이트를 이탈해요 (Google)
  • 페이지 로딩이 1초 지연될 때마다 전환율이 최대 7% 감소해요 (Akamai)
  • 47%의 소비자가 웹페이지는 2초 이내에 로딩되기를 기대해요 (Kissmetrics)

이미지는 보통 페이지에서 가장 큰 리소스여서, 최적화 효과도 가장 크게 나타나요.

SEO 순위에 직접적인 영향

Google은 페이지 속도를 데스크톱·모바일 검색 순위 모두에 반영하고 있어요. Core Web Vitals — 최대 콘텐츠풀 페인트(LCP), 누적 레이아웃 이동(CLS), 다음 페인트까지의 인터랙션(INP) — 은 이미 Google의 순위 알고리즘에 포함돼 있어요. 크고 최적화되지 않은 이미지는 LCP와 CLS 점수에 직접적으로 악영향을 줘요.

비용에 직접적인 영향

트래픽이 많은 웹사이트에서 최적화되지 않은 이미지는 다음 비용을 높여요:

  • 대역폭 비용 — 파일이 클수록 더 많은 데이터가 전송돼요
  • CDN 비용 — 엣지 서버에서 더 많은 바이트를 서비스해야 해요
  • 스토리지 비용 — 큰 파일이 더 많은 서버 용량을 차지해요

1단계: 올바른 이미지 형식 선택하기

형식 선택이 파일 크기에 가장 큰 영향을 미치는 단일 요소예요.

JPEG / JPG

  • 종류: 손실 압축
  • 적합한 용도: 사진, 그라데이션과 다채로운 색상이 있는 이미지
  • 브라우저 지원: 모든 브라우저에서 지원
  • 사용 시나리오: 상품 사진, 히어로 이미지, 블로그 이미지, 배경 사진

PNG

  • 종류: 무손실 압축
  • 적합한 용도: 스크린샷, 로고, 아이콘, 텍스트가 있거나 투명도가 필요한 이미지
  • 브라우저 지원: 모든 브라우저에서 지원
  • 사용 시나리오: UI 요소, 다이어그램, 투명도가 필요한 이미지, 선명한 경계선이 있는 이미지

WebP

  • 종류: 손실·무손실 모두 지원
  • 적합한 용도: 거의 모든 웹 이미지 (JPEG와 PNG 모두보다 뛰어난 압축 효율)
  • 브라우저 지원: 모든 최신 브라우저 (Chrome, Firefox, Safari, Edge)
  • 사용 시나리오: 새 웹 프로젝트의 기본 형식. JPEG보다 25~35%, PNG보다 26% 작아요.

AVIF

  • 종류: 손실·무손실 모두 지원
  • 적합한 용도: WebP보다도 더 나은 압축 효율의 차세대 웹 이미지
  • 브라우저 지원: Chrome, Firefox, Edge 지원. Safari는 부분 지원.
  • 사용 시나리오: 점진적 향상 — AVIF를 우선 제공하고 WebP 또는 JPEG로 폴백

SVG

  • 종류: 벡터 (크기가 변해도 품질 손실 없음)
  • 적합한 용도: 아이콘, 로고, 일러스트, 단순한 그래픽
  • 사용 시나리오: 도형과 패스로 표현할 수 있는 모든 그래픽

추천: 웹 이미지 기본 형식은 WebP로 사용하세요. 사진의 경우 WebP를 지원하지 않는 환경에서는 JPEG, 투명도가 필요하면 PNG로 폴백하세요.


2단계: 이미지 압축하기

올바른 형식을 선택한 다음, 압축으로 파일 크기를 더욱 줄여요.

추천 품질 설정

이미지 유형추천 품질예상 절감률
히어로/배너 이미지80~85%40~60%
블로그 본문 이미지70~80%50~70%
썸네일60~70%60~80%
배경 이미지60~75%50~75%
상품 사진75~85%40~60%

압축 방법

TinyImg로 웹사이트용 이미지를 압축하는 방법:

  1. 이미지를 업로드해요 (PNG, JPG, WebP 지원)
  2. 이미지 유형에 따라 품질 슬라이더를 설정해요 (위 표 참고)
  3. 압축된 버전을 다운로드해요
  4. 웹사이트의 원본 파일과 교체해요

모든 처리가 브라우저에서 이뤄지므로 이미지가 비공개 상태로 유지되고 처리도 즉시 완료돼요.


3단계: 반응형 이미지 적용하기

반응형 이미지를 사용하면 사용자가 자신의 기기에 필요한 크기의 이미지만 다운로드해요. 화면 너비가 375px인 모바일 사용자가 2000px 너비 이미지를 다운로드할 필요가 없잖아요.

srcset 속성

<img
  src="image-800.webp"
  srcset="
    image-400.webp 400w,
    image-800.webp 800w,
    image-1200.webp 1200w,
    image-1600.webp 1600w
  "
  sizes="(max-width: 600px) 100vw, (max-width: 1200px) 50vw, 800px"
  alt="Descriptive alt text"
  width="800"
  height="600"
/>

<picture> 요소

여러 형식과 폴백을 함께 제공:

<picture>
  <source srcset="image.avif" type="image/avif" />
  <source srcset="image.webp" type="image/webp" />
  <img src="image.jpg" alt="Descriptive alt text" width="800" height="600" />
</picture>

Next.js Image 컴포넌트

Next.js를 사용한다면, 내장 Image 컴포넌트가 반응형 이미지를 자동으로 처리해줘요:

import Image from 'next/image';

<Image
  src="/hero.webp"
  alt="Hero image"
  width={1200}
  height={600}
  sizes="(max-width: 768px) 100vw, 1200px"
  priority // 첫 화면에 보이는 이미지에 사용
/>

4단계: 지연 로딩 구현하기

지연 로딩(Lazy Loading)은 화면 밖에 있는 이미지의 로딩을 사용자가 스크롤해서 가까이 올 때까지 미루는 기법이에요. 초기 페이지 로딩 시간이 줄어들고, 사용자가 결코 볼 일 없는 이미지에 낭비되는 데이터도 아낄 수 있어요.

네이티브 지연 로딩

현대 브라우저는 loading="lazy" 속성을 네이티브로 지원해요:

<img src="image.webp" alt="Description" loading="lazy" width="800" height="600" />

중요: 첫 화면(above the fold)에 보이는 이미지에는 지연 로딩을 설정하지 마세요. 이 이미지들은 즉시 로딩돼야 LCP 점수에 유리해요.

모범 사례

  • 첫 화면 아래의 모든 이미지에 지연 로딩 적용
  • 첫 화면 이미지는 loading="eager" 설정 (또는 속성 생략)
  • 레이아웃 이동(CLS) 방지를 위해 반드시 widthheight 속성 명시
  • 블러 미리보기나 단색 플레이스홀더를 사용하면 로딩 경험이 개선돼요

5단계: 올바른 이미지 크기 지정하기

모든 <img> 요소에는 반드시 widthheight 속성을 지정하세요. 이를 통해 브라우저가 이미지가 로딩되기 전에 올바른 공간을 미리 확보할 수 있어, 누적 레이아웃 이동(CLS)을 방지할 수 있어요.

<!-- 좋은 예: 크기 지정 -->
<img src="photo.webp" alt="Photo" width="800" height="600" />

<!-- 나쁜 예: 크기 미지정, 레이아웃 이동 발생 -->
<img src="photo.webp" alt="Photo" />

CSS에서는 aspect-ratio를 사용해 반응형으로 유지하면서 비율을 지킬 수 있어요:

img {
  width: 100%;
  height: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

6단계: CDN 활용하기

콘텐츠 전송 네트워크(CDN)는 사용자와 가장 가까운 엣지 서버에서 이미지를 제공해서 지연 시간을 줄이고 로딩 속도를 개선해줘요.

주요 이미지 CDN으로는:

  • Cloudflare — 이미지 최적화가 포함된 무료 플랜
  • Cloudinary — 이미지 변환과 CDN을 한 곳에서
  • imgix — 실시간 이미지 처리 및 전송
  • Vercel — Next.js용 내장 이미지 최적화

대부분의 CDN은 지원 브라우저에 WebP나 AVIF를 자동으로 변환해서 제공하고, 실시간 크기 조정도 지원해요.


7단계: 측정하고 개선하기

최적화를 적용한 뒤에는 반드시 효과를 측정하세요.

측정 도구

  • PageSpeed Insights (pagespeed.web.dev) — Google의 Core Web Vitals 측정 도구
  • Lighthouse — Chrome DevTools에 내장
  • WebPageTest (webpagetest.org) — 상세한 워터폴 분석
  • Chrome DevTools 네트워크 탭 — 각 이미지의 크기와 로딩 시간 확인

주요 지표

지표목표값측정 내용
LCP (최대 콘텐츠풀 페인트)2.5초 미만주요 콘텐츠 로딩 속도
CLS (누적 레이아웃 이동)0.1 미만로딩 중 시각적 안정성
총 이미지 용량500KB 미만페이지 내 모든 이미지 합산 크기
Time to Interactive3.8초 미만페이지가 완전히 상호작용 가능해지는 시간

이미지 최적화 체크리스트

모든 웹 프로젝트에서 이 체크리스트를 활용하세요:

  • 올바른 형식 선택 (사진은 WebP, 투명도는 PNG, 아이콘은 SVG)
  • 모든 이미지 압축 (TinyImg로 간편하게)
  • srcsetsizes로 반응형 이미지 구현
  • 첫 화면 아래 이미지에 지연 로딩 적용
  • 모든 <img> 요소에 widthheight 지정
  • CDN으로 이미지 배포
  • PageSpeed Insights로 점검하고 문제 수정
  • 콘텐츠 업데이트 시 이미지 재압축

마무리

이미지 최적화는 웹사이트 성능 개선에서 투자 대비 효과가 가장 높은 작업 중 하나예요. 올바른 형식 선택, 효율적인 압축, 반응형 이미지 적용, 지연 로딩 구현만으로도 페이지 로딩 시간이 극적으로 줄어들고 사용자 경험과 SEO 순위 모두 향상돼요.

우선 TinyImg로 기존 이미지를 압축하는 것부터 시작해보세요 — 무료고, 빠르고, 브라우저에서 모두 로컬 처리돼요. 그런 다음 이 가이드의 나머지 단계를 차근차근 따라가면 체계적인 이미지 최적화 전략이 자연스럽게 완성될 거예요.

여러분의 사용자도, Google도 분명히 고마워할 거예요.

웹 성능최적화로딩 속도SEO

Related Posts

Try TinyImg Free

Compress your images instantly, right in your browser.

Compress Images Now
웹사이트 속도를 높이는 이미지 최적화 완전 가이드 | TinyImg Blog