이번 장에서는 유효성 검사와 유효성 검사에 사용되는 다양한 어노테이션들을 알아 보려고 한다.
요청한 데이터가 어떤 조건에 충족하는지 확인하는 작업.
예를 들어서, 회원가입을 할때 생년월일을 작성하는 상황이라고 하자.
클라이언트가 서버로 요청을 보낼때 생년월일은 '2020-10-10' 이러한 형식으로 요청 되어야한다.
'2020-13-10', '2020-02-31' 같은 날짜가 될 수 없다.
따라서, 잘못된 데이터 요청이 들어 올 경우 유효성 검사를 통하여 처리 해주어야한다.
유효성 검사는 프론트와 백엔드 모두 다 해줘야한다.
프론트에서만 유효성 검사를 하는 것은 보안상 위험이 되기 때문에, 백엔드에서도 체크해주는 것이 필수이다.
스프링부트에서 DTO의 필드 조건과, 메시지를 작성해주면 @Valid 어노테이션과 함께 유효성 검사를 할 수 있다
(* DTO란? )
유효성 에러에 대한 권장 상태코드는 400- BAD REQUEST이다.
옛날 버전의 스프링부트에서는 아래와 같은
implementation 'org.springframework.boot:spring-boot-starter-web'
스타터가 추가되어있으면 따로 의존성을 추가해줄 일이 없었다.
하지만 스프링 부트 2.3.0 이상 버전에서는
implementation 'org.springframework.boot:spring-boot-starter-validation'
위와 같은 의존성을 추가 해줘야 @Valid를 임포트하여 사용할 수 있다.
참고자료