개발 일지/Java

[Java] @NotNull / @NotEmpty / @NotBlank

미숫가루설탕많이 2023. 4. 18. 20:03

  DTO에 유효성 검사를 적용하던 도중, 값이 비어있지 않도록 설정하기 위해 사용하는 애너테이션이 여러 개인 것을 확인했다. 모두 값이 비어있는 것을 허용하지 않는 애너테이션인데 왜 여러 개로 나뉘어 있을까라는 의문이 들어 알아보게 되었다.

 

 먼저, @NotNull, @NotEmpty, @NotBlank 모두 프로그래밍에서 사용되는 데이터 유효성 검사에 관련한 애너테이션이다.

 

 이 애너테이션들은 공통적으로 데이터가 null 인지 확인하고 추가적으로 공백 여부를 확인하느냐 마냐에 차이점이 있었다.

 

 

 

 

@NotNull

 데이터가 null 인지만 확인하는 애너테이션이다. 데이터가 null일 경우 유효성 검사를 통과하지 못하며, null이 아닌 경우에만 유효성을 갖는다.

 

 

 

 

@NotEmpty

 데이터가 null이 아니며, 길이가 0보다 크다는 것을 확인하는 애너테이션이다. 즉, 데이터가 null이 아니고 비어있지 않아야 유효성을 갖는다. " " 이렇게 공백 값이 들어와도 유효성 검증을 통과한다.

 

 

 

 

@NotBlank

 데이터가 null이 아니며, 공백을 포함한 문자열인 경우에만 유효성을 갖는다. @NotEmpty와는 다르게 공백 값을 제외한 길이가 0보다 커야 유효성 검증을 통과한다. 즉 " " 또한 허용하지 않는다.

'개발 일지 > Java' 카테고리의 다른 글

String concatenation as argument to 'StringBuilder.append()' call  (0) 2023.06.04
BufferedReader close() 사용 이유에 대해  (0) 2023.05.31
[Java] JPA  (0) 2023.02.23
[Java] JDBC  (0) 2023.02.20
[Java] 자바 가상머신(JVM)  (0) 2023.01.10