inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

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

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

Build 시 img tage Error 문의

147

마누송지혁

작성한 질문수 1

0

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

강의를 듣다가

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

 

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

 

 

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

 

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

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

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

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

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

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

react typescript next.js

답변 3

0

이정환 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

0

마누송지혁

말씀하신 것 처럼 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 규칙 무시하기 및 설정 관리”

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

Next.js 사전렌더링 이해하기 부분

0

22

2

모달 관련 질문

0

32

3

렌더링 관련 질문

0

76

2

중복으로 하나의 api를 요청할 때 캐싱 옵션 통일화

0

59

2

라우트 세그먼트 옵션 강좌 노트에 사소한 제보 남깁니다.

0

60

2

SSR시 context에 params말고 query를 사용하면 안되나요?

0

73

2

npx prisma db push 시 에러가 뜹니다.

0

91

3

vercel 배포를 실패하였습니다.

0

95

3

Image 컴포넌트 사용시 브라우저 콘솔에 경고는 왜 뜨는걸까요?

0

54

2

getServerSideProps 함수와 SSR의 관계

0

76

6

없는 페이지인데 풀라우트캐시로 저장이 되는 이유가 궁금합니다

0

58

2

실제 프로젝트에서 SSR 사용에 관해서 질문드립니다.

0

112

2

일반적인 nextjs project architecture에 대하여..

0

84

2

2.14 Search에서 작성한건 static이긴하지만 CSR이 아닌가요?

0

71

2

배포 시 오류 발생

0

84

2

백엔드 서버 오류납니다.

0

80

2

취약점 제거시 nestjs 버전 문제가 생길까요?

0

89

1

eslint.config.mjs 내 rules 어떻게 설정 하나요?

0

103

1

[book]/[id]/page.tsx 모달 띄울 때 성능 하락 현상은 ReviewList를 불러오면서 발생하는 문제 같습니다.

0

60

2

빨간줄 설정

0

74

2

익스텐션 질문

0

58

1

강의 들으면서 궁금한 부분 질문드립니다.

0

108

1

서버 배포 에러입니다.

1

98

2

[5.2) 풀라우트 캐시 2] fetch의 cache 옵션 기본값 질문: no-store/force-cache

1

102

2