STUDY/이론
[Spring Master] 숙련 이론 - 데이터 검증하기
7alswn
2024. 11. 28. 15:34
Validation
Java는 null 값에 대한 접근에 대해 NullPointerException 오류가 발행하기 때문에 이러한 부분을 예방하기 위해 Validation 즉, 검증 과정이 필요합니다. Spring에서는 null 확인 뿐 아니라 문자의 길이 측정과 같은 다른 검증 과정도 쉽게 처리할 수 있도록 Bean Validation 제공하고 있습니다.
- Bean Validation
@NotNull | null 불가 |
@NotEmpty | null, "" 불가 |
@NotBlank | null, "". " " 불가 |
@Size | 문자 길이 측정 |
@Max, @Min | 최대값, 최소값 |
@Positive, @Negative | 양수, 음수 |
E-mail 형식 | |
@Pattern | 정규 표현식 |
Bean Validation을 적용한 해당 Object validation에 @Valid 어노테이션을 사용해 적용할 수 있습니다.
Validation 예외 처리
데이터 검증 시 오류가 발생했을 때는 Validation 예외 처리를 해야합니다.
- BindingResult
@PostMapping("/user/signup")
public String signup(@Valid SignupRequestDto requestDto, BindingResult bindingResult) {
// Validation 예외처리
List<FieldError> fieldErrors = bindingResult.getFieldErrors();
if(fieldErrors.size() > 0) {
for (FieldError fieldError : bindingResult.getFieldErrors()) {
log.error(fieldError.getField() + " 필드 : " + fieldError.getDefaultMessage());
}
return "redirect:/api/user/signup";
}
userService.signup(requestDto);
return "redirect:/api/user/login-page";
}
위 코드는 회원가입 진행 시 데이터 검증 오류가 발생했을 때 로그인 페이지가 아닌, 회원가입 페이지로 이동하며 예외를 처리하는 예시입니다.
예외가 발생하면 BindingResult 객체에 오류에 대한 정보가 담기고, 파라미터로 BindingResult 객체를 받아올 수 있습니다.