해결된 질문
작성
·
250
0
안녕하세요.
프로젝트에서 error.tsx
를 띄우는 예시로, 백엔드 서버를 종료하여 데이터를 받아오지 못하게 함으로써 error.tsx
가 표시되는 경우를 다루셨습니다. 이때, "백엔드 서버를 종료해서 데이터를 받아오지 못하게 함"을 "페이지가 렌더링되지 못하게 함"으로 이해해도 괜찮은지 궁금합니다.
이 질문을 드리게 된 이유는, 프로젝트에서 에러를 처리할 때 error.tsx
나 에러 페이지를 띄우는 것 외에도 다양한 방식으로 에러를 처리할 수 있기 때문입니다. 예를 들어, 에러 모달을 띄운다거나, 다른 페이지로 이동시키는 등의 방법도 있습니다. 그래서 error.tsx
가 어떤 종류의 에러에 대한 대비책인지 명확히 이해하고 싶습니다.
저는 error.tsx
가 예상치 못한 500번대 서버 에러와 같은 페이지나 컴포넌트 렌더링 실패를 처리하는 페이지라고 이해하고 있는데, 제 이해가 맞는지 궁금합니다.
답변 1
1
안녕하세요 이정환입니다.
우선 백엔드 서버를 종료해 데이터를 정상적으로 불러오지 못하게 하는 동작은 "페이지 컴포넌트가 정상적으로 실행되지 못하게 함" 으로 이해하시는게 더 정확할 것 같습니다.
추가로 error.tsx는 엄밀히 말씀드리면 페이지 컴포넌트를 실행하는 도중 오류가 발생했을 때 페이지 컴포넌트 대신 화면에 렌더링 될 컴포넌트를 정의하는 기능입니다. Page 컴포넌트에 try-catch 블록을 씌운 것과 동일한 방식이라고 이해하시면 될 것 같습니다.
따라서 error.tsx는 어떤 종류의 에러 대비책이라기 보다는, 페이지 컴포넌트를 실행하는 도중에 발생하는 모든 오류를 처리하는 용도로 활용된다고 보시는게 좋을 것 같습니다. API 호출 에러이든, null 관련 에러이든 페이지 컴포넌트에서 발생한 에러라면 모두 처리하게 되니까요 😃