웹 성능에서 이미지는 가장 큰 비중을 차지하는 요소 중 하나이다. 최적화되지 않은 이미지는 다음과 같은 문제를 일으킬 수 있다 :
Next.js는 성능과 사용자 경험을 향상시키기 위해 이미지 최적화(Image Optimization) 기능을 제공한다. 이는 이미지 파일의 크기를 줄이고, 다양한 기기와 화면 해상도에 맞는 이미지를 자동으로 생성하여 로드 시간을 줄이고 웹사이트를 더 빠르게 만든다.
import Image from 'next/image'
function Hero() {
return (
<Image
src="/hero.jpg"
alt="Hero image"
width={1200}
height={600}
priority
/>
)
}
src
:
// next.config.ts
module.exports = {
images: {
domains: ['example.com', 'another-domain.com'], // 허용할 도메인
},
};
width
와 height
:
layout
:
intrinsic
: 이미지의 고유 비율 유지responsive
: 컨테이너 크기에 따라 반응형으로 조정fill
: 컨테이너를 완전히 채움fixed
: 고정 크기placeholder
:
blur
: 이미지가 로드되기 전, 블러 처리된 저해상도 이미지를 표시
예시:
<Image
src="/example.jpg"
alt="Example"
width={500}
height={300}
placeholder="blur"
blurDataURL="data:image/jpeg;base64,[base64-string]"
/>
priority
:
중요 이미지를 우선적으로 로드(레이아웃의 가장 중요한 부분에 사용)
예시:
<Image
src="/hero.jpg"
alt="Hero Image"
width={1200}
height={800}
priority
/>