[스프링] 데이터 유효성 검사 방법

데이터 유효성 검사는 애플리케이션에서 수신한 데이터가 예상된 형식과 규칙을 따르는지 확인하는 중요한 작업입니다. 스프링 프레임워크는 데이터 유효성을 검사하기 위한 다양한 기능을 제공합니다.

1. 애너테이션을 사용한 유효성 검사

스프링 부트스프링 MVCHibernate Validator를 사용하여 애너테이션 기반의 데이터 유효성 검사를 지원합니다. 데이터 모델 클래스에 @Valid 애너테이션을 사용하여 유효성 검사를 활성화할 수 있습니다.

import javax.validation.constraints.NotEmpty;

public class User {
    @NotEmpty
    private String username;
}

위 예제에서 @NotEmpty 애너테이션은 username 필드가 비어있지 않아야 함을 나타냅니다.

2. 커스텀 유효성 검사

개발자가 지정한 조건에 따라 유효성을 검사해야 하는 경우에는 커스텀 유효성 검사를 정의할 수 있습니다. 이를 위해서는 ConstraintValidator 인터페이스를 구현한 클래스가 필요합니다.

import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;

public class MyCustomValidator implements ConstraintValidator<MyCustomValidation, String> {
    // 유효성 검사 로직 구현
}

위 코드에서 MyCustomValidation은 커스텀 애너테이션, MyCustomValidator는 해당 애너테이션의 유효성 검사를 정의한 클래스입니다.

3. 유효성 검사 오류 처리

유효성 검사 오류가 발생했을 때 이를 처리하기 위해서는 컨트롤러에서 BindingResult 객체를 사용할 수 있습니다.

import org.springframework.validation.BindingResult;

@RequestMapping(value = "/user", method = RequestMethod.POST)
public String createUser(@Valid User user, BindingResult result) {
    if (result.hasErrors()) {
        // 유효성 검사 오류 처리
    }
}

위 코드에서 @Valid 애너테이션을 사용하여 User 객체의 유효성을 검사하고, BindingResult 객체를 통해 오류를 처리합니다.

결론

스프링 프레임워크를 사용하여 데이터 유효성 검사를 적절하게 처리할 수 있습니다. 애너테이션을 사용한 유효성 검사와 커스텀 유효성 검사를 통해 데이터의 무결성을 보장할 수 있습니다.

참고: Spring Validation