Next.js의 이미지 최적화

woodstockwoodstock
2 min read

이미지 최적화


1.기본 사용법

Next.js에서는 이미지 최적화를 위해 next/image컴포넌트를 사용한다.

import Image from 'next/image'

<Image
  src="/images/profile.jpg"
  width={500}
  height={500}
  alt="프로필 이미지"
  quality={75}
/>
  • src: 이미지 소스 URL

  • widthheight:

  • 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 속성을 통해 압축 수준 조절이 가능하다.

0
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입니다. 저는 매일 조금씩 발전하고자 하는 마음으로 개발공부를 시작했고, 이 블로그는 그 과정에서 배우고 성장하는 이야기를 담고 있습니다. 여러분의 피드백과 조언은 언제나 환영합니다! 함께 배우고 성장하는 과정을 즐길 수 있기를 기대합니다.