본문 바로가기

분류 전체보기53

API 예외 처리 - @ExceptionHandler와 @ControllerAdvice API 예외 처리 - @ExceptionHandler와 @ControllerAdviceAPI를 개발할 때, 예외 처리는 중요한 부분입니다.특히 웹 브라우저에 HTML 화면을 제공하는 것과 API 응답에서 예외를 처리하는 방법은 다릅니다.HTML 화면을 제공할 때는 스프링이 제공하는 기본 오류 처리 컨트롤러인 BasicErrorController를 사용하는 것이 편리합니다.하지만 API는 시스템마다 응답의 형식이 다르며, 다양한 상황에 맞춰 구체적인 예외 처리가 필요합니다.이를 해결하기 위해 스프링은 편리한 예외 처리 기능을 제공하는 @ExceptionHandler를 지원합니다. ***참고로 스프링 부트가 기본으로 제공하는 ExceptionResolver는 다음과 같습니다.HandlerExceptionRe.. 2024. 9. 12.
오류 페이지(BasicErrorController) Spring Boot 오류 페이지 처리Spring Boot는 애플리케이션에서 오류가 발생하면 기본적으로 /error 경로로 요청을 처리합니다. 이는 Spring Boot가 자동으로 등록한 BasicErrorController가 이 경로를 기본으로 설정하기 때문입니다. 개발자가 별도로 예외 처리를 하지 않으면, 애플리케이션에서 발생한 모든 오류는 WAS(Web Application Server)를 거쳐 BasicErrorController로 전달됩니다. 이 컨트롤러는 상태 코드나 예외가 설정되지 않은 경우 기본 오류 페이지를 반환합니다.오류 발생 시 처리 흐름서블릿 외부에서 예외가 발생하거나 response.sendError(...)가 호출되면, Spring Boot는 /error 경로를 호출합니다.Bas.. 2024. 9. 12.
ArgumentResolver 활용 @Login 어노테이션과 ArgumentResolver 구현하기이번 글에서는 @Login 어노테이션을 만들어 그것을 활용하여 세션에 있는 로그인 회원 정보를 자동으로 찾아주는 기능을 구현하는 방법을 살펴보겠습니다. 이를 통해 컨트롤러 코드에서 세션을 직접 확인하지 않고도 로그인 정보를 사용할 수 있습니다.@Login 어노테이션이 있으면 직접 만든 ArgumentResolver가 동작해서 자동으로 세션에 있는 로그인 회원을 찾아주고,만약 세션에 없다면 null을 반환하도록 개발해봅시다. @Login의 쓰임은 아래와 같습니다.@GetMapping("/")public String homeLoginV3ArgumentResolver(@Login Member loginMember, Model model) { //.. 2024. 9. 10.
RequestMappingHandlerAdapter HTTP 메시지 컨버터와 Spring MVC 동작 방식HTTP 메시지 컨버터는 스프링 MVC 어디쯤에서 사용 될까요?HTTP 메시지 컨버터는 Spring MVC에서 중요한 역할을 하지만, Spring MVC 구조 내에서 직접 눈에 띄지 않습니다.Spring MVC 구조부터 보겠습니다.HTTP 메시지 컨버터는 위 그림에서 보이지 않는데 어디에 위치해야 할까요?결론부터 말하면 본 글의 제목인 RequestMappingHandlerAdapter의 동작방식을 알아야합니다.HTTP 메시지 컨버터가 동작하는 위치는 바로 RequestMappingHandlerAdapter라는 요청 매핑 핸들러 어댑터입니다.RequestMappingHandlerAdapter의 역할RequestMappingHandlerAdapter은 .. 2024. 9. 9.
반응형