Next.js의 Image 컴포넌트는 웹 애플리케이션의 성능을 크게 향상시킬 수 있는 강력한 도구입니다.
이 절에서는 Image 컴포넌트를 사용한 이미지 최적화 방법, 자동 최적화 기능, 그리고 그 성능 향상 효과에 대해 알아보겠습니다.
Image 컴포넌트 기본 사용법
Next.js의 Image 컴포넌트는 next/image
에서 import하여 사용할 수 있습니다.
주요 속성
src
: 이미지 소스 URL
alt
: 이미지 대체 텍스트
width
및 height
: 이미지 크기
layout
: 이미지 레이아웃 동작 ('fixed', 'responsive', 'fill', 'intrinsic')
priority
: 중요한 이미지의 우선 로딩
반응형 이미지 처리
반응형 이미지를 구현하려면 layout
속성을 사용합니다.
레이지 로딩
Image 컴포넌트는 기본적으로 레이지 로딩을 지원합니다.
뷰포트에 들어올 때만 이미지를 로드합니다.
외부 이미지 도메인 설정
외부 도메인의 이미지를 사용하려면 next.config.js
에 해당 도메인을 추가해야 합니다.
그 후 외부 이미지를 사용할 수 있습니다.
자동 이미지 최적화
Next.js는 이미지를 자동으로 최적화합니다.
- 적절한 이미지 포맷 (WebP 등) 사용
- 디바이스에 맞는 크기로 리사이징
- 품질 조정
이를 통해 페이지 로드 시간을 줄이고 성능을 향상시킬 수 있습니다.
9장 스타일링과 CSS와의 연결
Image 컴포넌트는 9장에서 다룬 CSS 모듈이나 styled-components와 함께 사용할 수 있습니다.
예를 들어, CSS 모듈을 사용하여 이미지 컨테이너의 스타일을 지정할 수 있습니다.
실습 : 반응형 이미지 갤러리 구현
다양한 디바이스 크기에 최적화된 반응형 이미지 갤러리를 구현해보겠습니다.
- 먼저, 이미지 데이터를 준비합니다.
- 갤러리 컴포넌트를 생성합니다.
- CSS 모듈을 사용하여 갤러리 스타일을 지정합니다.
- 갤러리를 페이지에 추가합니다.
이 실습을 통해 Next.js의 Image 컴포넌트를 사용하여 반응형 이미지 갤러리를 구현할 수 있습니다.
이 갤러리는 디바이스 크기에 따라 열 수를 조정하고, 각 이미지를 자동으로 최적화하여 로드 시간을 줄이고 성능을 향상시킵니다.
Next.js의 Image 컴포넌트를 활용한 이미지 최적화는 웹 애플리케이션의 성능을 크게 향상시킬 수 있는 중요한 기술입니다.
자동 최적화, 레이지 로딩, 반응형 처리 등의 기능을 통해 사용자 경험을 개선하고 페이지 로드 시간을 단축할 수 있습니다.