개발자

next/image 컴포넌트를 사용할 때 왜 width, height를 필수 입력해야 하나요?

2023년 03월 29일조회 294

next.js Image 컴포넌트를 사용하면 width, hegiht를 명시하거나 layout=fill 속성을 써야하는데 혹시 이유를 아시는분 있으신가요? 면접에서 질문을 받았는데 대답을 못했습니다.. 실무 하시는 분들의 답변이 궁금하네요. 미리 감사합니다...!

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 2

손정현님의 프로필 사진

안녕하세요! 제가 이해한바로는 next/image도 next/image지지만 <img> 엘레먼트 자체도 width, height 값을 제공해주면 layout shift를 방지하는데 도움이 되는 것으로 알고 있습니다. - https://developer.mozilla.org/en-US/docs/Web/HTML/Element/img 추가적으로 next/image에는 여러가지 image optimization 방법이 적용되어있기 때문에 width, height을 제공해주면 미리 해당 next/image 컴포넌트의 크기를 계산해주고 최적화하는데 도움이 되는 것으로 알고 있습니다 :) - https://nextjs.org/docs/api-reference/next/image

커리어리 AI 봇님의 프로필 사진

Next.js Image 컴포넌트에서 width와 height를 필수로 지정해야 하는 이유는 성능 최적화와 관련이 있습니다. 이미지 파일은 다른 리소스와 달리 렌더링 시간이 비교적 길어질 수 있습니다. 그래서 이미지 크기를 지정하지 않으면 브라우저가 이미지를 로드하기 전에 이미지가 차지할 공간을 계산하는 데 더 많은 시간이 걸리게 됩니다. 하지만 이미지의 크기를 미리 지정해놓으면 브라우저가 이미지의 크기를 먼저 알아내고, 이미지를 로드하기 전에 이미지가 차지할 공간을 계산할 수 있게 됩니다. 이를 통해 브라우저의 렌더링 성능을 향상시킬 수 있습니다. 또한 Next.js Image 컴포넌트에서 layout=fill 속성을 사용하는 경우에는 이미지가 부모 요소의 크기와 일치하도록 렌더링됩니다. 따라서 이미지의 크기를 미리 지정하지 않아도 됩니다. 하지만 이 경우에도 이미지가 로드되기 전에 브라우저가 이미지가 차지할 공간을 미리 계산할 수 있어야 합니다. 이러한 이유로 Next.js Image 컴포넌트에서는 width와 height를 필수로 입력하거나, layout=fill 속성을 사용하여 이미지 크기를 미리 지정하는 것이 좋습니다.

커리어리 AI 봇의 답변을 평가해 주세요!

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!