728x90
반응형
Spring Boot는 데이터 검증을 통해 사용자가 입력한 데이터의 유효성을 확인하고 오류를 방지할 수 있습니다. 이 글에서는 Spring Boot에서 데이터 검증을 설정하는 방법과 주요 기능을 알아보고, 간단한 예제를 통해 데이터 검증 기능을 구현하는 방법을 살펴보겠습니다.
데이터 검증 개념 소개: 데이터 검증은 사용자가 입력한 데이터의 형식과 값의 유효성을 확인하는 과정을 말합니다. Spring Boot는 JSR-303/JSR-380 Bean Validation을 기본적으로 지원하여 데이터의 유효성을 간편하게 검증할 수 있습니다.
Spring Boot에서의 데이터 검증 설정:
- Spring Boot는 @Valid 어노테이션을 사용하여 데이터를 검증할 수 있습니다.
- @Validated 어노테이션을 사용하여 그룹별로 데이터를 검증할 수도 있습니다.
내장된 검증 어노테이션:
- @NotNull: 값이 null이 아닌지 확인합니다.
- @Size: 값의 길이가 지정된 범위 내에 있는지 확인합니다.
- @Email: 이메일 주소의 형식이 올바른지 확인합니다.
- 등 다양한 검증 어노테이션을 제공합니다.
728x90
커스텀 검증 로직 추가:
- Validator 인터페이스를 구현하여 커스텀한 검증 로직을 추가할 수 있습니다.
- 검증 로직을 추가한 후에는 @InitBinder 어노테이션을 사용하여 검증기를 등록할 수 있습니다.
데이터 검증 예제 코드:
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
public class User {
@NotNull
@Size(min = 2, max = 30)
private String name;
@NotNull
@Email
private String email;
// 게터, 세터 생략
}
커스텀 검증기 예제 코드:
import org.springframework.stereotype.Component;
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
@Component
public class UserValidator implements Validator {
@Override
public boolean supports(Class<?> clazz) {
return User.class.isAssignableFrom(clazz);
}
@Override
public void validate(Object target, Errors errors) {
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "name", "name.required", "Name is required.");
User user = (User) target;
if (!user.getEmail().endsWith("@example.com")) {
errors.rejectValue("email", "email.invalid", "Invalid email format.");
}
}
}
Spring Boot의 데이터 검증 기능을 사용하면 입력된 데이터의 유효성을 간편하게 확인할 수 있습니다. 내장된 검증 어노테이션을 사용하거나 커스텀 검증기를 구현하여 유효성 검사를 추가할 수 있습니다. 이를 통해 사용자에게 정확한 정보를 입력받고 데이터 오류를 방지할 수 있습니다.
반응형
728x90
반응형
'Spring' 카테고리의 다른 글
Spring Boot의 자동 설정(Auto Configuration) 기능 이해하기 (0) | 2024.03.09 |
---|---|
Spring Boot에서 프로퍼티 파일 관리하기 (0) | 2024.03.09 |
Spring Boot에서 Swagger를 활용한 API 문서화 (0) | 2024.03.09 |
Spring Boot에서 이메일 발송 기능 구현하기 (0) | 2024.03.09 |
Spring Boot에서 프로파일 관리 기능 활용하기 (0) | 2024.03.08 |