본 캠프_53일차

졸용·2025년 5월 1일

TIL

목록 보기
54/144

@NotBlank, @NotNull, @NotEmpty는 Java Bean Validation에서 사용하는 제약 조건(annotation)이다. 비슷해 보이지만 동작하는 조건이 다르다.


✅ 1. @NotNull

  • 설명: null이 아니어야 함

  • 허용 안 함: null

  • 허용: "" (빈 문자열), [] (빈 리스트)

  • 적용 대상: 모든 객체

@NotNull
private String name;
허용 여부
"abc"
""
null

✅ 2. @NotEmpty

  • 설명: null도 안 되고, 비어있어도 안 됨

  • 허용 안 함: null, "", 빈 콜렉션

  • 적용 대상: 문자열, 배열, 컬렉션 등

@NotEmpty
private List<String> tags;
허용 여부
[“a”, “b”]
[]
null

✅ 3. @NotBlank

  • 설명: null, 빈 문자열, 공백 문자열 안 됨

  • 허용 안 함: null, "", " "

  • 적용 대상: 문자열만

@NotBlank
private String description;
허용 여부
"내용"
""
" "
null

🔍 요약 표

어노테이션null 금지빈 값 금지 (""/빈 콜렉션)공백 문자열 금지 (" ")대상 타입
@NotNull모든 객체
@NotEmpty❌ (공백은 문자열로는 허용)문자열/콜렉션 등
@NotBlank문자열만

필드에 어떤 걸 써야 할지 애매하면 다음 기준으로 선택하면 좋다:

  • 문자열에서 공백도 허용하지 않으려면@NotBlank

  • 리스트나 배열에 최소 한 개 이상 있어야 하면 → @NotEmpty

  • 그냥 null만 피하고 싶으면 → @NotNull

profile
꾸준한 공부만이 답이다

1개의 댓글

comment-user-thumbnail
2025년 5월 1일

항상 헷갈리는 세 개였는데 감사합니다~

답글 달기