작성완료

Native Lazy Loading 이미지 최적화
네이티브 지연 로딩은 이미지 최적화에 효과적이며, 초기 페이지 로드 속도를 향상시키고 불필요한 네트워크 요청을 줄인다. HTML에 loading="lazy" 속성을 추가하는 것만으로 구현할 수 있으며, 복잡한 조건이 필요할 경우 IntersectionObserver를 여전히 사용할 수 있다. 이미지 최적화와 함께 WebP 및 AVIF 포맷을 사용하고, width, height를 명시하여 CLS를 방지하는 것이 좋다.
Native Lazy Loading으로 구현하는 웹 이미지 최적화
웹 성능 최적화에서 이미지 지연 로딩(lazy loading)은 필수 요소다. 기존에는 IntersectionObserver나 스크롤 이벤트 기반의 사용자 구현이 필요했지만, 이제는 브라우저가 기본 제공하는 loading 속성만으로 훨씬 간단하게 구현할 수 있다.
왜 Lazy Loading이 필요한가
- 초기 페이지 로드 속도 향상
- 불필요한 네트워크 요청 감소
- 사용자 경험 개선
- LCP(Largest Contentful Paint) 개선
특히 이미지가 많은 블로그, 쇼핑몰, 갤러리 페이지에서 극적인 효과를 볼 수 있다.
기본 사용법
HTML에서 단 한 줄만 추가하면 된다.
<img src="thumbnail.jpg" alt="thumb" loading="lazy" />
브라우저는 해당 이미지가 뷰포트 근처에 왔을 때 요청을 실행한다.
적용 시 주의사항
- above-the-fold(첫 화면) 이미지는 lazy 사용 금지
- iframe에도 적용 가능 (
<iframe loading="lazy">) - Safari는 지원이 늦었지만 최신 버전은 대부분 대응
- 중요한 이미지가 늦게 나타나는 ‘지각 로딩’ 문제에 주의
IntersectionObserver 대비 장점
- 구현이 매우 간단
- 스크립트 로직 불필요
- 유지보수 편리
- 브라우저 최적화로 안정적인 로딩 타이밍 확보
IntersectionObserver를 대체하지는 않는다
복잡한 조건(애니메이션, 지연된 데이터 로딩 등)이 필요할 때는 여전히 IntersectionObserver가 유리하다. 하지만 일반적인 이미지 로딩에는 Native Lazy Loading이 더 직관적이고 빠르다.
이미지 최적화와 함께 사용할 것
- WebP, AVIF 이미지 포맷
width,height명시로 CLS 방지decoding="async"조합
예시:
<img
src="image.avif"
alt="example"
width="800"
height="600"
loading="lazy"
decoding="async"
/>
결론
Native Lazy Loading은 쉽고 강력한 이미지 최적화 도구다. 한 줄의 속성만으로 페이지 로딩 속도를 끌어올릴 수 있으며, 별도의 자바스크립트 로직 없이도 성능 개선을 기대할 수 있다. 웹 서비스 성능을 높이고 싶다면 가장 먼저 적용해야 할 기능이다.