controller로 넘어오는 input에 대해서 값이 올바르지 않으면 템플릿 엔진과 BindingResult를 이용해서 처리가 가능하다. 하지만 백엔드 API개발에서는 BindingResult를 적용할 수 없는데 어떤 식으로 입력 값에 대한 예외를 명시적으로 처리할 수 있을까?
메서드 수준 유효성 검사와 전역적 예외 처리 메커니즘을 사용하는 방안이 있다.
@Valid
및 특정 제약 조건 주석(@NotNull
, @Size
등)과 같은 유효성 어노테이션을 사용하고 이를 검증할 때 ConstraintViolationException
를 던지게 되면 전역적인 예외 처리를 활용해서 특정 에러 메세지 코드를 보낼 수 있다.