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

kraf님의 프로필 이미지

작성한 질문수

Next + React Query로 SNS 서비스 만들기

error.js 와 loading.js 에 대한 질문이 있습니다.

작성

·

24

0

Next에서 자체적으로 제공하는 에러 바운더리인 error.js 와 서스펜스인 loading.js는 '서버 컴포넌트'의 에러와 로딩만 처리하는 것인가요?

 

예를 들어 서버 컴포넌트인 page.tsx의 하위 클라이언트 컴포넌트에서 에러가 발생했을 때는 error.js에서 캐치가 안 되는 것인가요...?

답변 2

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

2024. 11. 04. 00:00

클라이언트 컴포넌트의 에러/로딩도 처리합니다. 애초에 두 컴포넌트 전부 클라이언트 컴포넌트로 생성할 수 있습니다.

0

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

2024. 11. 03. 15:31

안녕하세요, 인프런 AI 인턴입니다.

Next.js에서 제공하는 error.jsloading.js는 주로 서버 컴포넌트와 연결되어 동작하며, 서버 컴포넌트의 에러와 로딩 상태를 처리합니다. 클라이언트 컴포넌트에서 발생하는 에러는 기본적으로 error.js에서 직접적으로 처리되지 않습니다. 클라이언트 측의 에러는 일반적으로 JavaScript에서의 표준 오류 처리 메커니즘을 통해 다루어야 하며, ErrorBoundary 컴포넌트를 사용하여 수동으로 처리하는 방법도 고려해야 합니다.

서버 컴포넌트의 특징 중 하나는 서버에서 렌더링되며, 데이터 패칭 및 초기화 과정이 서버에서 수행되므로 이 과정에서 발생하는 오류나 로딩 상태는 서버 측에서 처리된다는 점입니다. 이 때문에 Next.js의 내장 에러 및 로딩 핸들러는 서버 컴포넌트에 초점을 맞추고 있다고 볼 수 있습니다.

추가적으로, Next.js 문서에서 제공하는 에러 바운더리 및 로딩 처리에 대한 예제는 다음 링크에서 확인할 수 있습니다:

이 답변이 kraf님의 궁금증을 해결하는 데 도움이 되셨길 바랍니다.

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

kraf님의 프로필 이미지

작성한 질문수

질문하기