사내 프로젝트에서는 Next.js 프레임워크를 사용하여 웹 페이지를 개발하고 있습니다. 최근에 Image 속도 이슈 관련해서 기획 쪽 문의글이 있어 이번 기회에 Next.js 기술 중 Next/image
최적화 하는 방법에 대해서 정리 해 볼려고 합니다.
사내 프로젝트에서는 메인 화면에서 추천 상품이나 프로모션, 팝업 등 다양한 컨텐츠 이미지들을 Next/image
를 통해 화면에 노출하고 있습니다. 최근에 메인 페이지 이미지 렌더링 속도 이슈에 대해 이야기가 나왔고, 이미지 최적화 라이브러리인 Sharp
를 사용하고 있는데 왜 이런 이슈가 발생하는지 궁금 하였고, 현재 쓰고 있는 기술에 대해서 공부도 하면서 이미지 렌더링 속도 이슈를 어떻게 해결 했는지 설명하려고 합니다.
문서는 아래와 같은 순서로 정리했습니다.
Next/image
의 동작 원리란?Next/image
의 대표 기능은 무엇이 있을까?Sharp
는 무엇이고 어떻게 사용하는가?Sharp
를 사용하고 있는데 렌더링 이슈가 발생하는 이유와 해결 방법은?img
태그와 Next/Image
차이점특징 | <img> 태그 |
next/image |
---|---|---|
Lazy-loading 구현 방식 | 브라우저 기본 자동 지원 (loading ) |
Intersection Observer (JS 기반) |
최적화 수준 | 없음 | 자동 최적화(크기, 포맷, 품질) |
레이아웃 안정성 | 직접 스타일링 필요 | 기본 제공(CLS 방지) |
CDN 및 캐싱 | 별도 설정 필요 | 자동으로 Next.js 서버 또는 CDN 연동 |
브라우저 지원 | 최신 브라우저(부분 지원) | 모든 브라우저 지원(JS 필요) |