지연 로딩과 반응형 이미지: 실용적인 초보자 가이드

게시일 June 4, 2024

빠른 요약

`loading='lazy'`, `srcset`, `<picture>` 요소를 사용한 현대적 HTML 기술로 지연 로딩과 반응형 이미지를 구현하여 웹사이트 속도를 획기적으로 높이는 방법을 배우세요.

주제: 이미지 도구

문제: 방대한 이미지 파일

이미지는 일반적으로 웹 페이지에서 가장 큰 파일입니다. 사용자가 사이트를 방문하면 브라우저는 화면 밖에 있는 이미지까지 모두 다운로드하려 시도합니다. 이는 대역폭을 낭비할 뿐만 아니라 초기 페이지 로딩 속도를 크게 저하시켜 사용자 경험을 해치고 코어 웹 바이탈 점수를 떨어뜨립니다.

해결책은 두 가지 측면에서 접근합니다:

  1. 지연 로딩(Lazy-Loading): 사용자가 스크롤하여 화면 근처에 도달할 때까지 화면 밖의 이미지 로딩을 연기합니다.
  2. 반응형 이미지(Responsive Images): 다양한 화면 크기에 맞는 다른 크기의 이미지를 제공하여 모바일 사용자가 데스크톱용으로 설계된 거대한 이미지를 다운로드하지 않도록 합니다.

다행히 현대 HTML은 두 가지 모두를 구현할 강력하고 쉬운 기능을 제공합니다.

1부: 간단한 지연 로딩 구현

과거에는 지연 로딩에 복잡한 JavaScript 라이브러리가 필요했지만, 이제는 단순한 속성 하나로 가능합니다.

loading="lazy" 속성은 브라우저에 이미지가 뷰포트에 진입하기 전까지 로딩하지 말라고 지시합니다.

구현 방법:

<img> 태그에 loading="lazy"를 추가하기만 하면 됩니다.

<img src="my-image.jpg" alt="설명적인 대체 텍스트" loading="lazy" width="800" height="600">

중요 사항:

  • 반드시 widthheight 속성을 포함하세요. 이를 통해 브라우저가 이미지 로딩 전에 올바른 공간을 확보하여 레이아웃 이동(CLS - 누적 레이아웃 이동)을 방지합니다.
  • 모든 이미지에 지연 로딩을 적용하지 마세요. “첫 화면”(초기 뷰포트 내에 보이는) 이미지는 정상적으로 로딩되어야 합니다. 이들에 지연 로딩을 적용하면 오히려 로딩 속도가 느려질 수 있습니다. 이 속성은 페이지 하단의 이미지에만 사용하세요.

loading="lazy"의 브라우저 지원은 현재 모든 주요 브라우저에서 완벽히 제공되며, 성능 향상을 위한 안전하고 효과적인 방법입니다.

2부: srcset으로 적절한 크기 제공

모바일 사용자가 데스크톱용으로 설계된 2000px 너비의 이미지를 다운로드해야 할 이유가 있을까요? srcset 속성을 사용하면 여러 크기의 이미지 목록을 브라우저에 제공할 수 있습니다. 그러면 브라우저가 사용자의 화면 크기와 해상도에 따라 가장 적합한 이미지를 스마트하게 선택합니다.

구현 방법:

  1. 여러 이미지 크기 생성: 먼저 여러 버전의 이미지를 준비합니다. 일반적인 크기 세트:

    • image-small.jpg (예: 480px 너비)
    • image-medium.jpg (예: 800px 너비)
    • image-large.jpg (예: 1200px 너비) 이러한 크기 생성에는 당사의이미지 크기 조정 도구를 사용할 수 있습니다.
  2. srcset 속성 사용: 각 이미지와 너비 설명자(w)를 나열합니다.

<img 
  srcset="image-small.jpg 480w, 
          image-medium.jpg 800w, 
          image-large.jpg 1200w"
  sizes="(max-width: 600px) 480px, 
         800px"
  src="image-medium.jpg" 
  alt="설명적인 대체 텍스트"
  loading="lazy"
  width="800" height="600">

분석:

  • srcset: 사용 가능한 이미지와 실제 너비 목록 제공
  • sizes: 뷰포트 크기에 따라 이미지가 표시될 너비를 브라우저에 지시. 예시: “화면 너비가 600px 이하이면 이미지는 480px 너비로 표시되고, 그렇지 않으면 800px 너비로 표시됨”. 브라우저는 이 정보를 사용하여 srcset에서 최적의 이미지를 선택합니다.
  • src: srcset을 지원하지 않는 구형 브라우저를 위한 대체 이미지

3부: <picture> 요소로 아트 디렉션 구현

때로는 단순히 작은 이미지가 아니라 완전히 다른 이미지를 제공해야 할 때가 있습니다. 예: 데스크톱의 가로형 풍경 사진을 모바일에서는 세로형 클로즈업 사진으로 변경하는 “아트 디렉션”입니다.

<picture> 요소는 이 목적에 완벽합니다. 여러 <source> 요소를 제공할 수 있으며, 브라우저는 조건에 맞는 첫 번째 요소를 선택합니다.

구현 방법:

<picture>
  <!-- 화면 너비가 600px 이하일 때 이 이미지 표시 -->
  <source media="(max-width: 600px)" srcset="image-portrait.jpg">
  
  <!-- 그렇지 않으면 이 이미지 표시 -->
  <source media="(min-width: 601px)" srcset="image-landscape.jpg">
  
  <!-- 구형 브라우저를 위한 대체 이미지 -->
  <img src="image-landscape.jpg" alt="설명적인 대체 텍스트" loading="lazy" width="1200" height="600">
</picture>

AVIF 또는 WebP와 같은 최신 이미지 형식을 JPEG로 대체하는 데도 <picture>를 사용할 수 있습니다:

<picture>
  <source type="image/avif" srcset="image.avif">
  <source type="image/webp" srcset="image.webp">
  <img src="image.jpg" alt="설명적인 대체 텍스트">
</picture>

이러한 형식 생성에는 당사의이미지 변환 도구를 사용할 수 있습니다.

결론

이 세 가지 현대적 HTML 기능을 결합하면 모든 기기에서 놀랄 정도로 빠르게 로딩되는 웹사이트를 구축할 수 있습니다.

  • 초기 뷰포트 아래의 모든 이미지에 loading="lazy" 적용
  • 동일한 이미지의 다양한 크기 제공에 srcset 사용
  • 다른 화면 크기나 형식에 완전히 다른 이미지가 필요한 경우 <picture> 사용

이러한 기술을 구현하는 것은 웹 성능과 코어 웹 바이탈을 개선하기 위해 할 수 있는 가장 영향력 있는 변경 사항 중 하나입니다.

광고

도구 사용

이 가이드를 바로 적용해 볼까요?

관련 도구를 열고 업로드나 추가 설정 없이 브라우저 안에서 바로 작업을 끝낼 수 있습니다.

이미지 리사이저 및 크롭퍼

이미지 크기를 변경하고 자릅니다.

이 주제 둘러보기

이미지 도구

이 클러스터의 가이드를 더 읽고 관련 도구로 더 빠르게 이동하세요.

주제 가이드 보기

추천 도구

관련 가이드

Figma 및 Photoshop에서 선명한 이미지 내보내는 방법

웹용 고품질 이미지를 내보내는 단계별 가이드입니다. 흐릿함을 방지하고 모든 화면에서 그래픽이 선명하게 보이도록 하는 Figma와 Photoshop의 최적 설정을 배워보세요.

온라인에서 무료로 이미지에 주석을 다는 방법: 단계별 가이드

브라우저에서 직접 모든 이미지나 스크린샷에 주석을 다는 방법을 배우세요. 이 가이드는 무료, 비공개 온라인 도구를 사용하여 도형 그리기, 텍스트 추가, 민감한 정보 가리기 방법을 다룹니다.

스크린샷은 이제 그만! Word 문서에서 원본 이미지를 무손실로 대량 추출하는 방법 (온라인 도구 포함)

아직도 '그림으로 저장'을 하나씩 사용하고 계신가요? 이 글은 브라우저 측 기술을 사용하여 Word(.docx) 문서에서 고해상도 원본 이미지를 한 번의 클릭으로 대량 추출하는 방법을 보여줍니다. 소프트웨어 설치가 필요 없으며, 개인 정보 보호에 중점을 두어 AI 콘텐츠 마이그레이션 및 소셜 미디어 게시 워크플로우에 완벽하게 적합합니다.

A/B 테스트 아이디어: JPG vs WebP 배너 광고와 랜딩 페이지 클릭률

더 빠른 이미지 형식이 클릭을 늘릴 수 있을까? 이 가이드는 기존 JPEG 배너를 현대적인 WebP로 대체하면 랜딩 페이지의 클릭률(CTR)이 향상되는지 검증하기 위한 간단한 A/B 테스트 설정 방법을 개괄합니다.