Open KimJinung opened 1 year ago
ControllerAdvice 애노테이션을 사용하는 GlobalExceptionHandler 클래스를 공통으로 두고, MethodArgumentNotValidException 예외를 잡는 케이스를 만들어서 공통으로 사용한다. 이렇게 빼면, Bean Validation에서 정의한 규약에 어긋날 때 MethodArgumentNotValidException이 발생한다. 그리고 해당 예외를 처리하는 ExceptionHandler 로직을 태우게 된다. 통과한 경우 곧바로 서비스 레이어를 호출하는 흐름으로 갈 수 있다.
Bean Validation을 이용하면 BindingResult 클래스를 활용해서 obj, field error 두 케이스 모두 핸들링 할 수 있다.
추가적으로 ControllerAdvice 기능을 사용해서 validaiton 과정을 별도의 클래스로 분리할 수 있다.
어떻게 분기 치는 게 우아할까?