랜딩 페이지 : index.tsx
img 태그 대신에 next/image 사용하기
import Image from 'next/image';
import fileName from '/public/fileName.jpg'; // 이미지를 static하게 import
<Image
src={fileName}
quality={100} // default : 75
placeholder="blur" // (production 환경에서)사진이 다운로드 되는 동안 blur 이미지가 자동으로 적용됨
/>
=> webp type의 이미지 다운로드(네트워크 탭 통해 확인 가능) : 자동으로 이미지 용량 최적화 (원본보다 훨씬 더 작은 용량)
quality 속성 사용하여 얼마나 최적화할지 설정 가능
width, height 속성 필수 (주어진 너비, 높이에 맞춰서 정적으로 이미지 최적화 가능하도록)fill 속성 채워주면 해당 이미지의 사이즈를 부모에 의해 결정position을 relative/absolute/fixed 등으로 설정하고 부모의 사이즈 설정하면 똑같이 렌더링style={{ objectFit: 'cover' }} 추가+) 외부 링크 허용 - next.config.js
module.exports = {
images: {
domains: ['assets.acme.com'],
},
}
공식 문서 참고 - Domains
Image 컴포넌트 : 자동으로 lazy loading 적용
cf) img 태그 :loading="lazy"작성해서 네트워크 절약 가능
cf) 버전 12의 next/legacy/image는 span 태그가 추가적으로 생성되기 때문에 사용성이 좋지 않음 -> Next.js 13에서 개선
next/image 정리