[Spring Boot] Chapter.10 유효성 검사와 예외 처리
Validation
-
문자열 검증
- @Null :
null
만 허용.
- @NotNull :
null
허용 x. ""
, " "
는 허용.
- @NotEmpty :
null
, ""
허용 x.
- NotBlank :
null
, ""
, " "
허용 x
-
최댓값 / 최솟값 검증
- BigDecimal, BigInteger, int, long 타입 등 지원.
- @DecimalMax(value = "$numberString") : $numberString보다 작은 값을 허용.
- @DecimalMin(value = "$numberString") : $numberString보다 큰 값을 허용.
- @Min(value = $number) : $number 이상의 값 허용.
- @Max(value = $number) : $number 이하의 값 허용.
-
값의 범위 검증
- BigDecimal, BigIntteger, int, long 등의 타입 지원.
- @Positive : 양수 허용.
- @PositiveOrZero : 0을 포함한 양수 허용.
- @Negative : 음수 허용.
@NegativeOrZero : 0을 포함한 음수 허용.
-
시간에 대한 검증
- Date, LocalDate, LocalDateTime 등의 타입 지원.
- @Future : 현재보다 미래의 날짜를 허용.
- @FutureOrPresent : 현재를 포함한 미래의 날짜 허용.
- @Past : 현재보다 과거의 날짜를 허용.
- @PastOrPresent : 현재를 포함한 과거의 날짜 허용.
-
이메일 검증
- @Email : 이메일 형식을 검사.
""
는 허용.
-
자릿수 범위 검증
- BigDecimal, BigInteger, int, long 등의 타입을 지원.
- @Digits(integer = $number1, fraction = $number2) : $numbe1의 정수 자릿수와 $number2의 소수 자릿수를 허용.
-
Boolean 검증
- @AssertTrue :
true
인지 체크. null
은 체크 X.
- @AssertFalse :
false
인지 체크. null
값은 체크 X.
-
문자열 길이 검증
- @Size(min = $number1, max = $number2) : $number1 이상 $number2 이하의 범위를 허용.
-
정규식 검증
- @Pattern(regexp = "$expression") : 정규식을 검사. 정규식은 자바의 java.util.regex.Pattern 패키지의 컨벤션을 따름.
예외와 에러

- Checked Exception
- 반드시 예외 처리 필요
- 확인 시점 : 컴파일 단계
- 대표적인 예외 클래스 : IOException, SQLException
- Uncheked Exception
- 명시적 처리를 강제하지 않음
- 실행 중 단계
- RuntimeException, NullPointerException, IllegalAragumentException, IndexOutOfBoundException, SystemException