Next.js는 'public' 디렉토리에 여러가지 정적 파일을 보관하고
<Image>
태그를 사용하여 꺼내올 수 있다.
public 폴더 내부에 이미지 파일(예: jpeg 파일)을 넣어주고
import Image from "next/image";
export default function FirstPost() {
return (
<>
<h1>First Post</h1>
<Image src="/ye.jpeg" alt="ye" width="64" height="64" />
</>
);
}
예: public/hello, pages/hello.js - 확장자가 구분이 안 되므로 같은 파일로 취급되어 오류 발생
=> public/hello.txt, pages/hello.js 로 변경해야 오류가 발생하지 않음
<Image>
의 장점일반 HTML의 img 태그를 사용하면 다음 내용을 수동으로 처리해야 한다.
=> Next.js의 <Image>
태그를 사용하면, 이를 자동으로 해결할 수 있다.
<Image>
태그의 특징1. 이미지 최적화 (이미지 크기 자동 조절 )
최신 형식의 이미지 크기 변경 기능(Webp 등)을 사용 가능 (브라우저에서 지원하는 경우)
자동 이미지 변경은 모든 이미지 소스에서 작동하고,
이미지를 CMS와 같은 외부 데이터 소스에서 불러오는(호스팅) 경우에도 최적화 가능
2. 이미지 최적화 (시간 단축)
Next.js는 빌드 시에 이미지를 최적화하지 않고, 사용자가 요청할 때만 이미지를 최적화한다.
따라서 정적 사이트와는 달리, 10개의 이미지를 전송하든 1천만 개의 이미지를 전송하든 빌드 시간이 증가하지 않음
이미지는 레이아웃 오류를 방지하여 렌더링됨
=> 사용자가 예상치 못하게, 레이아웃이 움직여 잘못된 행동을 하게 되는 것을 방지