인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

마누송지혁님의 프로필 이미지

작성한 질문수

한 입 크기로 잘라먹는 Next.js(v15)

2.16) SSG 4. 폴백옵션 설정하기

Build 시 img tage Error 문의

작성

·

77

·

수정됨

0

안녕하세요 이정한 강사님!

강의를 듣다가

npm run build 를 실행 할 때, 컴파일에 실패하면서 img 태그에서 오류가 나는 상황입니다.

 

구글링과 여기서 나오는 말에 의하면, next/image의 Image를 사용하라고 나와있습니다.

 

 

해당 내용으로 바꿔서 사용하니 이미지 태그에서 이미지가 제대로 나오지 않는 현상이 발생하고 있습니다. 기존 img 태그와 image의 태그의 차이가 무엇이고, 왜 이미지가 잘 안나오는 것 일까요??

 

또, ESLint에 대한 규정을 build시 영향을 안받게 할 수는 없을까요??

두가지 질문 답변해주시면 감사하겠습니다!!

🚨 아래의 가이드라인을 꼭 읽고 질문을 올려주시기 바랍니다 🚨

질문 하시기 전에 꼭 확인해주세요- 질문 전 구글에 먼저 검색해보세요 (답변을 기다리는 시간을 아낄 수 있습니다)
- 코드에 오타가 없는지 면밀히 체크해보세요 (Date와 Data를 많이 헷갈리십니다)
- 이전에 올린 질문에 달린 답변들에 꼭 반응해주세요 (질문에 대한 답변만 받으시고 쌩 가시면 속상해요 😢)

질문 하실때 꼭 확인하세요
- 제목만 보고도 무슨 문제가 있는지 대충 알 수 있도록 자세한 제목을 정해주세요 (단순 단어 X)
- 질문의 배경정보를 제공해주세요 (이 문제가 언제 어떻게 발생했고 어디까지 시도해보셨는지)
- 문제를 재현하도록 코드샌드박스나 깃허브 링크로 전달해주세요 (프로젝트 코드에서 문제가 발생할 경우)
- 답변이 달렸다면 꼭 확인하고 반응을 남겨주세요

- 강의의 몇 분 몇 초 관련 질문인지 알려주세요!
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

답변 3

0

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

안녕하세요 마누송지혁님

해당 내용은 아래의 라마너스님께서 말씀해주셨듯이 오류가 아닌 경고 및 권고 사항정도로 지금 단계에서는 무시하셔도 괜찮습니다. 해당 경고 메세지는 말씀하신대로 <img> 대신 next/Image를 사용하라는 의미인데요 이에 대해서는 이후 챕터에서 자세히 살펴보고 있으니 쭉 수강하시면 되겠습니다.

0

라마너스님의 프로필 이미지

해당 내용 warning이라서 기다리면 빌드가 되지 않으시던가요?

 

./src/components/book-item.tsx
9:9  Warning: Using `<img>` could result in slower LCP and higher bandwidth. Consider using `<Image />` from `next/image` to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element  @next/next/no-img-element
9:9  Warning: img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.  jsx-a11y/alt-text

./src/pages/book/[id].tsx
31:9  Warning: Using `<img>` could result in slower LCP and higher bandwidth. Consider using `<Image />` from `next/image` to automatically optimize images. This may incur additional usage or cost from your provider. See: https://nextjs.org/docs/messages/no-img-element  @next/next/no-img-element
31:9  Warning: img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.  jsx-a11y/alt-text

./src/pages/search/index.tsx
21:6  Warning: React Hook useEffect has a missing dependency: 'fetchSearchResults'. Either include it or remove the dependency array.  react-hooks/exhaustive-deps

info  - Need to disable some ESLint rules? Learn more here: https://nextjs.org/docs/basic-features/eslint#disabling-rules
 ✓ Linting and checking validity of types    
   Creating an optimized production build ...
 ✓ Compiled successfully
 ✓ Collecting page data    
   Generating static pages (0/9)  [    ]index page
 ✓ Generating static pages (9/9)
 ✓ Collecting build traces    
 ✓ Finalizing page optimization    

옵션은 여기서 확인하시면 될거같아요.

https://nextjs.org/docs/app/api-reference/config/next-config-js/eslint

마누송지혁님의 프로필 이미지

말씀하신 것 처럼 ESLint 를 ignore 변수 설정을 안해놔서 ESLint 규칙이 엄격하게 적용 된 것 같습니다. ignore 설정 후에 build 잘 되네요 감사합니다!

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 마누송지혁님!

Next.js에서 img 태그를 사용하는 대신 next/image 모듈의 Image 컴포넌트를 사용하는 이유와 관련하여 몇 가지 정보를 드리겠습니다.

1. img 태그와 next/image의 차이

  • img 태그는 브라우저 기본 HTML 요소로, 단순히 이미지를 표시할 때 사용합니다.
  • next/imageImage 컴포넌트는 Next.js에서 제공하는 이미지 최적화 도구로, 다양한 이점을 제공합니다:
    • 자동 최적화: 브라우저가 요청한 크기에 맞는 이미지를 자동으로 생성합니다.
    • 레이지 로딩(Lazy Loading): 사용자가 볼 필요가 없을 때 로드하지 않고, 스크린에 나타날 때 로드하여 성능을 개선합니다.
    • 반응형 이미지: 다양한 디바이스와 화면 크기에 최적화된 이미지를 제공합니다.

2. 이미지가 제대로 나오지 않는 이슈

  • next/image를 사용할 때 경로 설정이 잘못될 경우 이미지가 나타나지 않을 수 있습니다.
  • src 속성의 경로가 올바른지, 그리고 widthheight 속성이 지정되어 있는지를 확인해보세요.
  • 외부 URL을 사용할 경우 next.config.js 파일의 domains 속성에 허용할 도메인을 추가해야 합니다.

3. ESLint 규정 무시

ESLint 규정을 완화하거나 특정 규칙을 무시하고 싶으면 다음과 같은 방법을 사용할 수 있습니다:
- 프로젝트의 .eslintrc 파일에서 특정 규칙을 비활성화할 수 있습니다.
- 코멘트를 통해 파일 내 특정 부분만 무시하도록 설정할 수 있습니다:

  // eslint-disable-next-line no-unused-vars
  const unusedVariable = "This won't trigger ESLint error";

위 문제에 대해 유사한 질문과 답변은 다음 링크를 참고하시기 바랍니다:
- “Next.js에서 Image 컴포넌트의 사용과 최적화 방법”
- “ESLint 규칙 무시하기 및 설정 관리”

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.