[Next.js] fill์ ์ฌ์ฉํ ์ด๋ฏธ์ง์ sizes ์ถ๊ฐ (Image with src "~~" has "fill" but is missing "sizes" prop. Please add it to improve page performance.)
๐จ ๊ฒฝ๊ณ ๋ฐ์
Image with src "~~" has "fill" but is missing "sizes" prop. Please add it to improve page performance.
Read more: https://nextjs.org/docs/api-reference/next/image#sizes

๐ค ์์ธ
ํด๋น ๋งํฌ๋ก ๋ค์ด๊ฐ ๋ณด๋ ๋ด์ฉ์ ๋ค์๊ณผ ๊ฐ์๋ค.
sizes์ ๊ฐ์ fill์ ์ฌ์ฉํ๋ ์ด๋ฏธ์ง๋ ๋ฐ์ํ ํฌ๊ธฐ๋ฅผ ๊ฐ์ง ์ด๋ฏธ์ง์ ๋ํ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์น๋ค.
"fill" ์์ฑ์ด ์๋ ์ด๋ฏธ์ง์ "sizes"๊ฐ์ ์ง์ ํ์ง ์์ผ๋ฉด ๊ธฐ๋ณธ๊ฐ์ผ๋ก 100vw๊ฐ ์ฌ์ฉ๋๋ค.
์ด๊ฒ ๋ฌด์จ ๋ป์ธ์ง ์ข ๋ ์ฐพ์๋ดค๋๋ฐ
fill ์์ฑ์ ์ฌ์ฉํ ์ด๋ฏธ์ง์ ๊ฒฝ์ฐ ์ด๋ฏธ์ง๊ฐ ์ ์ฒด ๋ทฐํฌํธ๋ฅผ ์ฑ์ฐ๋๋ก ํ์ฅ๋์ด์ผ ํ๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ํ์ง๋ง sizes์์ฑ์ด ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฒด ํ๋ฉด ๋์ด(100vw)์ ํด๋นํ๋ ํฌ๊ธฐ๋ก ์ค์ ๋๋ค.
์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ฐ์ ๋ sizes์์ฑ์ ํตํด ์ด๋ค ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ ์ง๋ฅผ ๊ฒฐ์ ํ๋๋ฐ sizes์์ฑ์ด ์์ผ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ๋ทฐํฌํธ๋ฅผ ๋ชจ๋ฅด๊ธฐ ๋๋ฌธ์ ์ ์ฒด ํ๋ฉด ํฌ๊ธฐ์ ๊ฐ์ ์ด๋ฏธ์ง๋ฅผ ์ ํํ๋ค. ์ด๋ ์ฑ๋ฅ์ ์ข์ง ์๋ค.
๋ฐ๋ผ์ fill์์ฑ์ ์ฌ์ฉํ๋ ์ด๋ฏธ์ง์๋ sizes์์ฑ์ ๋ช
์์ ์ผ๋ก ์ง์ ํด ๋ธ๋ผ์ฐ์ ๊ฐ ์ฌ๋ฐ๋ฅธ ์ด๋ฏธ์ง๋ฅผ ์ ํํ๋๋ก ํด์ผ ํ๋ค. ์ด๋ ๊ฒ ํด ๋ถํ์ํ ๋์ฉ๋ ์ด๋ฏธ์ง๋ฅผ ๋ค์ด๋ก๋ํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์๋ค.
๐ ํด๊ฒฐ ๋ฐฉ๋ฒ
fill์ ์ฌ์ฉํ ๋ถ๋ถ์ ์ ์ ํ sizes๋ฅผ ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ค.
๋ค์ ์ ๋ฆฌํ์๋ฉด, sizes๋ ๋ทฐํฌํธ ํฌ๊ธฐ์ ๋ฐ๋ผ ์ด๋ฏธ์ง๊ฐ ์ด๋ค ํฌ๊ธฐ๋ก ํ์๋ ์ง ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ ค์ค ์ฌ๋ฐ๋ฅธ ํฌ๊ธฐ์ ์ด๋ฏธ์ง๋ฅผ ์ ํํ์ฌ ๋ค์ด๋ก๋ํ๋๋ก ํ ์ ์๋ค.
<Image
src={imageUrl}
className="object-cover"
alt={`image_${id}`}
fill
sizes="(max-width: 842px) 100vw, 80vw"
/>