들어오는 데이터에 대해 의도한 형식의 값이 제대로 들어오는지 체크하는 과정
어플리케이션 전체적으로 분산되어 존재
코드의 중복 심함 (복잡해짐)
비즈니스 로직에 섞여 있어 검사 로직 추적이 어려움
Bean Validation은 어노테이션을 통해 다양한 데이터를 검증할 수 있게 기능을 제공
Hibernate Validator는 Bean Validation 명세에 대한 구현체
앞서 나온 문제를 해결하기 위한 데이터 유효성 검사 프레임워크
Spring Boot 유효성 검사 표준은 Hibernate Validator를 채택
2.3 버전 부터 starter-validation을 추가해야 함
기본적으로 DTO class의 각 필드에 대해 @NotNull
과 같은 어노테이션을 붙여서 검증을 해주게 한다
그러나 @NotNull을 붙이기만 해서는 Validation 체크가 안 된다
제약조건들이 동작하기 위해서는 Controller 쪽에서 새로운 작업을 해줘야 한다
@Valid
어노테이션을 붙여줘야 한다.
어노테이션이 아닌 방식으로 유효성 검사하는 방법
if (memberDTO.getMemberId.equals("") || memberDTO.getMemberId.isEmpty()) {
LOGGER.error("memberId is Empty");
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(memberDTO)
}