서비스의 비즈니스 로직이 올바르게 동작하기 위해 사용되는 데이터에 대한 사전 검증하는 작업이 필요함
유효성 검사 혹은 데이터 검증이라고 부르는데, 흔히 Validation이라고 부름
데이터의 검증으 여러 계층에서 발생하는 흔한 작업
Validation은 들어오는 데이터에 대한 의도한 형식의 값이 제대로 들어오는지 체크하는 과정을 뜻함
일반적인 어플리케이션에서 사용되던 Validation 방식은 몇가지 문제가 존재

앞서 나온 문제를 해결하기 위해
Java에서 2009년부터 Bean Validation이라는 데이터 유효성 검사 프레임 워크를 제공
Bean Validation은 어노테이션을 통해 다양한 데이터를 검증할 수 있게 기능을 제공
Hibernate Validator는 Bean Validation 명세에 대한 구현체
Spring Boot의 유효성 검사 표준은 Hibernate Validator를 채택
이전 버전의 Spring Boot에서는 starter-web에 validation이 포함되어 있었지만, 2.3버전 부터 starter-validation을 추가해야함
@Size : 문자의 길이 조건
@NotNull : null 값 불가
@NotEmpty : @NotNull + ""값 불가
@NotBlank : @NotEmpty + " "값 불가
@Past : 과거날짜
@PastOrPresent : @Past + 오늘 날짜
@Future : 미래날짜
@FutureOrPresent : @Future + 오늘날짜
@Pattern : 정규식을 통한 조건
@Max : 최대값 조건 설정
@Min : 최소값 조건 설정
@AssetTrue / AssetFalse : 참/거짓 조건 설정
@Valid : 해당 객체의 유효성 검사