스프링 공부를 하다가 프로젝트에서 예외 처리 부분이 비효율적이라는 생각이 들어서 리팩터링 해보려고 한다.
위와 같이 api 요청 파라미터 검증을 컨트롤러 안에서 직접 해주었다. 하지만 검증 코드 때문에 컨트롤러 영역의 복잡성이 증가하였다. bean validation을 적용하면 간결하면서도 동일한 검증 작업을 할 수 있다.
다음처럼 bean validation을 적용한 후 검증 요청을 보내면 MethodArgumentNotValidException
예외가 발생한다. 따라서 해당 예외를 타겟팅하는 ExceptionHandler를 만들어주면 된다.
그러면 이와 같이 bean validation으로도 api 요청 파라미터를 성공적으로 검증할 수 있다. 추가로 HttpMessageNotReadableException
예외도 처리해주었다.