BasicErrorController: 미처리 예외에 대한 최종 처리기
상위 맥락
02. 스프링 부트 기본 매커니즘 < 03. 예외 처리 인프라 < 02. Spring MVC2 핵심 기술과 설계 < MVC < Spring < Web
핵심 정리
BasicErrorController는 스프링 부트에서 처리되지 않은 예외나 상태 코드를 최종적으로 처리하는 기본 에러 컨트롤러입니다. 자료에서는 전통적인 web.xml 기반 error-page 설정을 스프링 부트가 자동화한 구조로 설명합니다.
컨트롤러나 @ControllerAdvice에서 처리되지 않은 예외, 또는 컨트롤러에 도달하기 전 발생한 404 같은 오류는 최종적으로 /error 경로로 전달되고, 이 요청을 BasicErrorController가 처리합니다.
우선순위 구조
- @ControllerAdvice와 @ExceptionHandler가 먼저 예외를 처리합니다.
- 처리되지 않은 예외는 BasicErrorController로 위임됩니다.
- BasicErrorController는 에러 페이지나 JSON 형태로 최종 응답을 만듭니다.
HTML과 JSON 응답
BasicErrorController는 클라이언트의 요청 형식에 따라 응답을 나눌 수 있습니다. 브라우저가 HTML을 요구하면 ModelAndView를 반환해 에러 화면을 렌더링합니다. AJAX나 REST 요청처럼 JSON을 요구하는 경우에는 ResponseEntity와 Map 형태로 에러 데이터를 반환할 수 있습니다.
ErrorAttributes와의 관계
BasicErrorController는 에러 데이터 자체를 직접 수집하기보다 ErrorAttributes로부터 상태 코드, 메시지, 경로 같은 에러 속성을 받아 응답에 사용합니다.
한 문장 요약
BasicErrorController는 개발자가 직접 처리하지 못한 예외와 상태 코드를 받아 HTML 또는 JSON 형태로 최종 응답을 만드는 스프링 부트의 기본 에러 처리 안전망입니다.