본문 바로가기
스터디/Spring

[Spring] @NotNull @NotEmpty @NotBlank 차이점

by zoodi 2021. 8. 17.
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

댓글