💐 Spring/개념 및 이해

💐 Spring/개념 및 이해

Spring 존재하지 않는 API 응답 커스터마이징 (feat. 내부 동작도 살펴보기)

Intro 기본적으로 Spring MVC는 존재하지 않는 API 요청 시 응답을 다음과 같이 주고 있습니다. { "timestamp":"2023-09-21T11:30:05.517+00:00", "status":404, "error":"Not Found", "path":"/api/404" } 위 응답은 Spring MVC가 기본적으로 제공해주는 오류 응답 입니다. 보통 실무에서는 프레임워크에서 기본적으로 제공해주는 응답값을 사용하기 보단 공통 응답 포맷을 맞춰서 사용할 것 입니다. 어떻게 하면 Not Found에 대한 응답을 커스텀할 수 있는지와 내부적으로 어떻게 동작하고 있는지도 함께 에러 로그와 코드를 통해 살펴보겠습니다. 에러 응답이 생성되기까지의 여정 그렇다면 어떻게 스프링MVC에서는 에러 메세지를..

💐 Spring/개념 및 이해

Spring MVC | @Valid는 어떻게 동작하는거야? (feat. DispatcherServlet)

@Valid Spring Boot에서 @Valid를 @RequestBody 객체에 붙이게 되면, 이때 스프링은 Hibernate Validator(javax.validation 패키지에 있는 JSR-303/JSR-380인 BeanValidation을 활용함)를 사용하게 됩니다. Spring MVC에서는 Validation이 어떻게 동작하는지 MVC 동작원리와 함께 살펴보겠습니다. Dispatcher Servlet 아래는 Spring MVC의 동작구조를 도식화한 것입니다. 하나하나 차근히 살펴보겠습니다. 클라이언트 요청을 제일 먼저 받는 디스패처 서블릿(프론트 컨트롤러)입니다. DispatcherServlet의 HandlerMapping 전략을 통해 클라이언트의 요청을 처리해 줄 Controller를 찾습..