Backend
home
🧿

@NonNull, @Nonnull, @NotNull, @NotEmpty, @NotBlank 비교

생성 일시
2025/01/22 06:16
태그
SpringBoot
게시일
2025/01/22
최종 편집 일시
2025/02/09 13:26
참고링크:
@Nonnull
@NonNull
@NotNull
@NotEmpty
@NotBlank
null 확인
O
O
O
O
O
"" 확인
O
O
"  " 확인
O
컴파일 시 확인
O
O
X
X
X
런타임 시 확인
X
X(Lombok 가능)
O
O
O
용도
변수, 파라미터 ,필드, 메서드 반환 값 등에 null 이 아님을 보장
변수, 파라미터 ,필드, 메서드 반환 값 등에 null 이 아님을 보장
변수, 파라미터 ,필드, 메서드 반환 값 등에 null 이 아님을 보장
Collection, array, String[] 등에 null이 아니고, 비어있지 않음을 보장
문자열이 null이 아니고, 길이가 0이 아니며, 공백 문자가 아님을 보장
적용대상
모든 객체 타입
모든 객체 타입
모든 객체 타입
문자열, 컬렉션, 배열, 맵 등의 참조객체
문자열
특징
컴파일 타임 null 검사 목적 코드 분석 도구나 IDE에서 지원
Lombok의 경우, null 체크 로직을 자동으로 생성Spring의 @NonNull은 null 안전성을 보장하기 위해 사용 및 특정한 검증 로직을 포함하지 않습니다.
Bean Valdation API(JSR-380)와 함께 사용. 런타임 시 검증 로직 추가 가능
null 검사,길이가 0인지 검사
null 검사와 빈 문자열 검사 및 문자열이 공백 문자로만 이루어 졌는지 검사
제공 패키지
javax.annotation
Spring, Lombok, jetBrain
javax.validation.constraints
javax.validation.constraints
javax.validation.constraints