Next Image 사용하는 방법
Next.js 에서는 별도의 Image 컴포넌트가 존재한다 .
Image 컴포넌트의 장점은 다음과 같다
- 향상된 성능: 최신 이미지 형식을 사용하여 각 디바이스에 대한 올바른 크기의 이미지 제공
- 시각적 안정성: 자동으로 layout shift 방지
- 빠른 페이지 로드: 이미지가 뷰포트에 들어갈 때만 로드되며 placeholder 제공
- 유연성: 원격 서버에 저장된 이미지에 대해서도 온디맨드 이미지 크기 조정
Sample Code
page.tsx 파일
1
2
3
4
5
6
7
8
9
10
11
12
import Image from "next/image";
import styles from "./imagepage.module.css";
const ImagePage = () => {
return (
<div className={styles.imgcontainer}>
<Image className={styles.img} src="/ann.jpg" alt="" fill />
</div>
);
};
export default ImagePage;
imagepage.module.css 파일
1
2
3
4
5
6
7
8
9
10
11
12
.imgcontainer {
position: relative;
display: flex;
width: 500px;
height: 500px;
background-color: red;
}
.img {
object-fit: contain;
/* object-fit: cover; */
}
- position : relative 를 통해 크기를 맞춘다.
- objectfit 을 통해 화면에 그림을 전부 덮을지(cover) 아니면 빈 부분이 생겨도 괜찮게 크기를 변경할지 선택 가능
외부 이미지 적용하는 법
Next Image 컴포넌트를 외부 이미지에 사용하기 위해서 는 next.config.mjs
파일을 수정시켜준다.
1
2
3
4
5
6
7
8
9
10
11
12
module.exports = {
images: {
remotePatterns: [
{
protocol: 'https',
hostname: 'example.com',
port: '',
pathname: '/account123/**',
},
],
},
}
port 와 pathname은 생략 가능하다.
hostname 에서는 내가 가지고 올 이미지의 사이트의 주소를 가지고 온다 생각하면된다.
ex) example.com/photos/18965342.jpg 일 경우 example.com만 넣으면 된다.
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.