프론트엔드의 이미지 최적화 방식

프론트엔드의 이미지 최적화 방식

요약
웹 페이지 성능 최적화를 위한 이미지 최적화를 알아보자
작성일
Feb 7, 2025
태그
SEO
Web

프론트엔드의 성능 최적화

프론트엔드에서 성능 최적화는 여러가지 이유로 강조되고 있습니다. 웹 페이지의 로딩 속도가 느려지면 사용자가 사이트를 이탈할 가능성이 높아지기 때문에 사용자 확보를 위해서 성능 최적화를 통한 사용자 경험 향상이 중요한 역할을 합니다. 이번 글에서는 성능 최적화 중 중요한 요소인 이미지 최적화에 대한 내용을 말씀드리겠습니다.
💡
이미지 최적화의 장점
  • 웹사이트 속도 개선 → 빠른 로딩으로 사용자 만족도 향상
  • SEO(Search Engine Optimization) 향상 → 구글 검색 순위에 긍정적인 영향
  • 트래픽 절감 → 불필요한 데이터 사용을 줄여 서버 비용 절감
  • 반응형 웹 지원 → 다양한 기기에서 적절한 이미지 제공

이미지 최적화 방식

이미지는 여러가지 방식으로 최적화 시킬 수 있습니다.
  1. 이미지 포맷 설정
  1. 이미지 크기 조정 및 압축
  1. 반응형 이미지 적용
  1. Lazy Loading (지연 로딩)
  1. CDN(Content Delivery Network) 활용
  1. 캐싱 및 브라우저 최적화
  1. SVG 및 아이콘 최적화
 

이미지 포맷은 어떤걸 사용할까?

이미지 포맷은 상황에 따라 적절한 포맷을 선택해야 합니다.
💡
웹사이트에서는 가급적 WebP 또는 AVIF를 사용합니다.
로고나 아이콘은 SVG를 사용하면 선명한 품질을 유지할 수 있습니다.
포맷
특징
적합한 경우
JPEG
손실 압축, 용량이 작음
일반 사진, 배경 이미지
PNG
무손실 압축, 투명 배경 지원
아이콘, 로고, 투명 배경 필요 시
GIF
애니메이션 가능, 색상 제한(256컬러)
간단한 애니메이션
WebP
JPG, PNG보다 용량 작고 품질 유지
모든 이미지 (모던 브라우저 지원)
AVIF
WebP보다 더 나은 압축률, 품질 우수
최신 브라우저, 고품질 이미지
SVG
벡터 형식, 해상도 무제한 확대 가능
아이콘, 로고, 일러스트

이미지 크기 조정 및 압축

이미지 크기가 클수록 로딩 속도가 느려지므로 적절한 크기 조정과 압축이 필요합니다.

이미지 크기 조정 방법

  • 사용자의 화면 크기에 맞게 적절한 해상도 설정
  • 불필요하게 큰 해상도의 이미지를 사용하지 않기
  • CSS를 이용한 이미지 축소보다는, 적절한 크기의 이미지를 미리 제공

이미지 압축 도구 추천

  • Squoosh → 다양한 포맷 지원, 직접 압축율 조정 가능
  • ImageMagick → 명령어 기반 대량 이미지 압축

반응형 이미지 적용

반응형 웹 디자인에서는 기기별 최적화된 이미지를 제공해야 합니다.

srcsetsizes 속성 활용

HTML의 <img> 태그에서 srcsetsizes 속성을 사용하면, 브라우저가 적절한 해상도의 이미지를 자동으로 선택합니다.
<img src="image-800.jpg" srcset="image-400.jpg 400w, image-800.jpg 800w, image-1200.jpg 1200w" sizes="(max-width: 600px) 400px, (max-width: 1200px) 800px, 1200px" alt="반응형 이미지 예제">
💡
srcset: 다양한 크기의 이미지 제공
sizes: 화면 크기에 따라 적절한 이미지 크기 지정

Lazy Loading(지연 로딩) 적용

notion image
Lazy Loading은 현재 화면에 보이지 않는 이미지의 로딩을 나중에 하는 기술입니다.
React에서는 Image 컴포넌트를 사용하면 기본적으로 Lazy Loading 이 적용되어 있습니다.
HTML 속성 활용
<img src="large-image.jpg" alt="Lazy Loading" loading="lazy">

CDN(Content Delivery Network) 활용

CDN을 이용하면 전 세계에 분산된 서버에서 사용자가 가까운 위치에서 이미지를 다운로드할 수 있어 로딩 속도가 빨라집니다.

대표적인 이미지 최적화 CDN 서비스

  • Cloudflare → 무료 사용 가능
  • Imgix → 실시간 이미지 변환 및 최적화 제공
  • Cloudinary → 다양한 이미지 변환 기능 제공
CDN을 활용하면?
  • 사용자가 가까운 서버에서 이미지를 받아서 응답 속도가 빨라짐
  • 캐싱을 통해 불필요한 서버 요청을 줄일 수 있음

캐싱 및 브라우저 최적화

이미지를 자주 불러오는 웹사이트라면 캐싱(Cache) 을 활용해야 합니다.
# 30일 동안 캐싱 유지 <IfModule mod_expires.c> ExpiresActive On ExpiresByType image/jpeg "access plus 30 days" ExpiresByType image/png "access plus 30 days" </IfModule>

SVG 및 아이콘 최적화

아이콘과 벡터 이미지는 SVG를 사용하면 크기가 작고 해상도 독립적인 장점이 있습니다.

SVG 최적화 방법

  • 불필요한 fill, stroke 속성 제거
  • SVGOMG 같은 도구를 이용해 최적화

참고문헌