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 |