Next.js의 이미지 최적화

Frontend/Next.js

기본 사용법

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

import Image from 'next/image'

<Image
  src="/images/profile.jpg"
  width={500}
  height={500}
  alt="프로필 이미지"
  quality={75}
/>
  • src: 이미지 소스 URL
  • width 및 height:
    • 필수 속석으로, 이미지의 원본 크기를 지정
    • 레이아웃 시프트 방지 및 적절한 공간 확보에 사용
    • 반응형 이미지 설정 방법
  • alt: 접근성을 위한 대체 텍스트
  • quality:
    • 선택적 속성으로, 1-100 사이의 값 지정(기본값 75)
    • WebP 등으로 변환 시 이미지 품질 조절에 사용

 

Next.js는 이 정보를 바탕으로 자동 WebP 변환, 레이지 로딩, 디바이스 크기에 맞는 이미지 제공 등의 최적화를 수행한다.

 

외부 이미지 사용

외부 이미지를 사용할 경우, 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사용이 권장된다.

 

이미지 최적화 프로세스

  1. 요청 시 최적화: 이미지는 첫 요청 시에만 최적화 되고 이후 캐시된다.
  2. 포맷 변환: 브라우저 지원 시 WebP 또는 AVIF로 자동 변환한다.
  3. 크기 조정: 다양한 디바이스 크기에 맞춰 자동으로 크기를 조정한다.
  4. 품질 조절: quality 속성을 통해 압축 수준 조절이 가능하다.

'Frontend > Next.js' 카테고리의 다른 글

Next.js 앱 라우터 고급 라우팅 패턴  (0) 2025.11.13
서버 액션 (Server Action)  (0) 2025.11.13
Next.js 앱 라우터의 에러 핸들링  (0) 2025.11.13
스트리밍 (Streaming)  (0) 2025.11.13
라우트 세그먼트 옵션과 클라이언트 라우터 캐시  (0) 2025.11.13
'Frontend/Next.js' 카테고리의 다른 글
  • Next.js 앱 라우터 고급 라우팅 패턴
  • 서버 액션 (Server Action)
  • Next.js 앱 라우터의 에러 핸들링
  • 스트리밍 (Streaming)
고견
고견
개발 자국 남기기
  • 고견
    개발자국
    고견
  • 전체
    오늘
    어제
    • 분류 전체보기 (157) N
      • Frontend (29)
        • Next.js (16)
        • JavaScript (7)
      • CS (19) N
        • 자료구조 (9)
        • 알고리즘 (5)
        • 운영체제 (4) N
        • 네트워크 (1) N
      • TIL (93)
      • Dev Log (16)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    배열
    CS
    타입 좁히기
    generic
    제네릭
    문자열
    Spa
    react
    페이지 라우터
    바닐라 자바스크립트
    useState
    ai 감성 일기장
    자료구조
    Trouble Shooting
    Pages Router
    클래스
    typescript
    cs50
    함수 타입
    App Router
    algorithm
    C
    인터페이스
    알고리즘
    memory
    javascript
    앱 라우터
    emotion diary
    Next.js
    트러블 슈팅
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
고견
Next.js의 이미지 최적화
상단으로

티스토리툴바