
Spring에서 유효성을 검사하는 방법에 대해 학습해봤다.
복잡한 로직은 직접 구현해야 하지만
간단한 경우에는 Bean Validation을 사용하면
Spring에서 쉽고 간편하게 유효성 검사를 수행할 수 있었다.
복잡함과 간단함을 구분하기 위해서는
데이터에 적용할 유효성 검사 애노테이션이 있는지 알아야 한다.
Bean Validation의 종류에는 무엇이 있는지 살펴보자.

@NotNull : null X, 빈 문자열 O, 공백 O
@NotEmpty : null X, 빈 문자열 X, 공백 O
@NotBlank : null X, 빈 문자열 X, 공백 O
@Size(min = n, max = n) : 문자열 길이 제한
@Min(n) : 정수 최솟값
@Max(n) : 정수 최댓값
@Range(min = n, max = n) : 범위, Hibernate Validator
@Positive : 양수
@PositiveOrZero : 양수 + 0
@Negative : 음수
@NegativeOrZero : 음수 + 0
@Digits(integer = n, fraction = n) : 정수, 소수 자릿수
@DecimalMin("n") : 소수 최솟값, 문자열 전달
@DecimalMax("n") : 소수 최댓값, 문자열 전달
@Past : 과거 날짜
@PastOrPresent : 과거 + 현재 날짜
@Future : 미래 날짜
@FutureOrPresent : 미래 + 현재 날짜
@NotEmpty : null X, 빈 리스트 X
@Size(min = n, max = n) : 요소 개수 제한
@Pattern(regexp="pattern") : 정규표현식(Regex) 패턴 검사
@Email : 이메일 형식 검사
@URL : URL 형식 검사, Hibernate Validator
@AssertTrue : true
@AssertFalse : false

DTO를 설계하면서 유효성 검사 애노테이션을 함께 선언한다.
다양한 Bean Validation Annotation을 숙지하고 있어야 DTO 설계가 수월하겠다.