프로젝트를 하면서 next 프레임워크에서 next/image를 img 태그 대신 사용했는데 그 이유가 무엇인지 알아보도록 하자
next/image는 단순한 img 태그를 대체하는 것이 아니라 이미지 로딩과 관련된 다양한 최적화 기능을 제공하여 웹 애플리케이션의 성능과 사용자 경험을 향상시킨다.
자동 레이지 로딩
이미지 최적화
반응형 이미지
ex)
module.exports = {
images: {
deviceSizes: [640, 750, 828, 1080, 1200, 1920, 2048, 3840],
imageSizes: [16, 32, 48, 64, 96, 128, 256, 384],
},
}
src="/example.jpg"
alt="Example image"
width={800}
height={600}
sizes="(max-width: 640px) 200px, (max-width: 750px) 80px, 20px"
뷰포트 너비가 640px 이하인 경우: 브라우저는 sizes 속성의 (max-width: 640px) 200px 조건을 만족하는 이미지를 선택합니다. 이 경우, 이미지의 너비는 200px이 됩니다.
뷰포트 너비가 641px에서 750px 사이인 경우: 브라우저는 sizes 속성의 (max-width: 750px) 80px 조건을 만족하는 이미지를 선택합니다. 이 경우, 이미지의 너비는 80px이 됩니다.
뷰포트 너비가 750px을 초과하는 경우: 브라우저는 sizes 속성의 기본 조건인 20px을 적용합니다. 이 경우, 이미지의 너비는 20px이 됩니다.
Placeholders and Blurring
src
alt
width, height
layout
objectFit과 objectPosition
sizes
priority
quality
loader
placeholder