[스프링부트] 31. Valid 어노테이션 종류

백하림's avatar
Apr 15, 2025
[스프링부트] 31. Valid 어노테이션 종류

✅ 문자열 관련 어노테이션

어노테이션
설명
허용 예시
비허용 예시
@NotBlank
null, 빈 문자열(""), 공백 문자열(" ") 모두 허용하지 않음
"abc"
null, "", " "
@NotEmpty
null, 빈 문자열("") 허용하지 않음, 공백 문자열은 허용
" ", "abc"
null, ""
@Size(min=, max=)
문자열, 컬렉션 등의 길이 제한
@Size(min=2, max=5)"abc"
"a" (길이 1), "abcdef" (길이 6)
@Pattern(regexp=)
정규식 패턴 매칭 검사
@Pattern(regexp="^[a-zA-Z]+$")"abc"
"123", "abc!"

✅ 숫자 관련 어노테이션

어노테이션
설명
허용 값
비허용 값
@Min(value)
최소값 이상 허용
@Min(10)10, 11
9
@Max(value)
최대값 이하 허용
@Max(100)100, 99
101
@Positive
양수만 허용 (> 0)
1, 100
0, -1
@PositiveOrZero
0 이상 허용 (>= 0)
0, 1
-1
@Negative
음수만 허용 (< 0)
-1, -100
0, 1
@NegativeOrZero
0 이하 허용 (<= 0)
-1, 0
1
@Digits(integer=, fraction=)
정수부, 소수부 자리수 제한
@Digits(integer=3, fraction=2)123.45
1234.56, 123.456

✅ null 관련 어노테이션

어노테이션
설명
허용
비허용
@NotNull
null 값을 허용하지 않음
"abc", 0, false
null
@Null
null 값만 허용 (예: 특정 상황에서만 값 입력 제한)
null
"abc", 1
Share article

harimmon