스프링에서는 어노테이션을 기반으로 ExceptionResolver를 활용하여 API 예외처리를 한다. 스프링 부트가 제공하는 ExceptionResolver는 다음과 같다. ( 위에서부터 우선순위가 높은 ExceptionResolver이다.) ExceptionHandlerExceptionResolver ResponseStatusExceptionResolver DefaultHandlerExceptionResolver ExceptionHandlerExceptionResolver @ExceptionHandler 어노테이션을 찾아 해당 메서드에 작성된 예외 처리를 진행한다. 대부분의 API 예외처리는 이 기능으로 해결한다. @ExceptionHandler 앞서 API예외처리에 있어서 HandlerExceptio..
API 예외처리는 어떻게 해야할까? API는 각 오류 상황에 맞는 오류 응답 스펙을 정하고, JSON으로 데이터를 내려주어야 한다. -> 각 통신마다 쓰는 방식이 다다르기 때문에 이를 공통적으로 약속(오류 응답 스펙)을 하고 사용해야 한다. 서블릿 API 예외처리 기존의 예외처리는 클라이언트가 예외를 발생했을 때 HTML 형태의 뷰템플릿을 반환했었다. 하지만, 클라이언트에서 API로 요청을 보내면 서버에서도 API로 반환해주어야 하는데 별도의 설정 없이 진행하게 되면 서버는 똑같이 뷰템플릿을 반환한다. API 예외처리 컨트롤러 @RestController public class ApiExceptionController { @GetMapping("/api/members/{id}") public Member..