Next.js의 이미지 최적화
Table of contents
이미지 최적화
1.기본 사용법
Next.js에서는 이미지 최적화를 위해 next/image
컴포넌트를 사용한다.
import Image from 'next/image'
<Image
src="/images/profile.jpg"
width={500}
height={500}
alt="프로필 이미지"
quality={75}
/>
src
: 이미지 소스 URLwidth
및height
:필수 속석으로, 이미지의 원본 크기를 지정
레이아웃 시프트 방지 및 적절한 공간 확보에 사용
alt
: 접근성을 위한 대체 텍스트quality
:선택적 속성으로, 1-100 사이의 값 지정(기본값 75)
WebP 등으로 변환 시 이미지 품질 조절에 사용
Next.js는 이 정보를 바탕으로 자동 WebP 변환, 레이지 로딩, 디바이스 크기에 맞는 이미지 제공 등의 최적화를 수행한다.
2.외부 이미지 사용
외부 이미지를 사용할 경우, next.config.mjs
에 다음과 같이 설정해줘야만 해당 이미지 주소가 차단되지 않는다.
/** @type {import('next').NextConfig} */
const nextConfig = {
images: {
remotePatterns: [
{
protocol: "https",
hostname: "shopping-phinf.pstatic.net",
},
],
formats: ["image/webp", "image/avif"],
},
};
export default nextConfig;
remotePatterns
: 허용할 외부 이미지 소스의 패턴 지정formats
: 지원할 이미지 포맷 설정 (WebP, AVIF 등)- 브라우저 지원 여부에 따라 자동으로 최적의 포맷 선택
domains에서 remotePatterns로의 변경
Next.js 13부터는
domains
대신 더 세밀한 제어를 제공하는remotePatters
사용이 권장된다.
3. 이미지 최적화 프로세스
1. 요청 시 최적화: 이미지는 첫 요청 시에만 최적화 되고 이후 캐시된다.
2. 포맷 변환: 브라우저 지원 시 WebP 또는 AVIF로 자동 변환한다.
3. 크기 조정: 다양한 디바이스 크기에 맞춰 자동으로 크기를 조정한다.
4. 품질 조절: quality
속성을 통해 압축 수준 조절이 가능하다.
Subscribe to my newsletter
Read articles from woodstock directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
woodstock
woodstock
안녕하세요! 프론트엔드 개발자 woodstock입니다. 저는 매일 조금씩 발전하고자 하는 마음으로 개발공부를 시작했고, 이 블로그는 그 과정에서 배우고 성장하는 이야기를 담고 있습니다. 여러분의 피드백과 조언은 언제나 환영합니다! 함께 배우고 성장하는 과정을 즐길 수 있기를 기대합니다.