스터디/Spring
[Spring] @NotNull @NotEmpty @NotBlank 차이점
zoodi
2021. 8. 17. 22:20
728x90
서버에서 클라이언트의 요청에 대하여 유효성을 검증해야하는 부분이 필요하다. 이때 스프링에서 @Valid 라는 어노테이션으로 검증을 수행하는데 Valid 중에서 위 세가지 어노테이션을 비교해보고자한다.
차이점
@NotNull | @NotEmpty | @NotBlank | |
Null | X | X | X |
길이가 0인 값(ex: "") | O | X | X |
공백(ex: " ") | O | O | X |
위 세가지 어노테이션은 bean validation (Hibernate Validation)에서 제공하는 표준 Validationdmfh 클라이언트의 파라미터 중 null 값인지 체크하거나 공백 유무를 체크하는데 사용된다.
@NotNull의 경우 Null값은 허용하지 않지만 "", " " 은 허용한다. 따라서 위 어노테이션은 정확히 구분해서 상황에 따라 적절한 어노테이션으로 적용해야한다.
예외 처리 방법
@Valid @RequestBody DTO 객체 형태로 요청을 받았다면 유효성 검사에서 실패 시 MethodArgumentNotValidException 이 발생한다. 따라서 ControllerAdvice로 예외를 잡아서 Error 메시지를 클라이언트에 리턴해준다.
728x90