[java] Hibernate Validator를 사용하여 주민등록번호 유효성 검사를 수행하는 방법은 무엇인가요?
  1. 먼저, 주민등록번호 유효성을 검사할 DTO 또는 엔티티 클래스를 생성합니다. 해당 클래스에 주민등록번호 필드를 추가하고, 해당 필드에 유효성 검사 애노테이션을 적용합니다.
import javax.validation.constraints.Pattern;

public class Person {
    @Pattern(regexp = "\\d{6}-[1-4]\\d{6}", message = "주민등록번호 형식이 올바르지 않습니다.")
    private String residentRegistrationNumber;
    
    // getter, setter 및 기타 필드 생략
}
  1. Hibernate Validator를 Maven 또는 Gradle의 의존성에 추가합니다. Maven의 경우 pom.xml에 다음 의존성을 추가합니다.
<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>6.2.0.Final</version>
</dependency>
  1. 유효성 검사를 수행하기 위해 Validator 객체를 생성하고, 검사할 객체를 전달합니다. 검사할 객체는 주민등록번호 필드를 포함해야 합니다.
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;

public class Main {
    public static void main(String[] args) {
        // Hibernate Validator의 Validator 객체 생성
        ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
        Validator validator = factory.getValidator();
        
        // 유효성 검사를 수행할 객체 생성
        Person person = new Person();
        person.setResidentRegistrationNumber("951209-1234567"); // 유효한 주민등록번호
        
        // 유효성 검사 수행
        Set<ConstraintViolation<Person>> violations = validator.validate(person);
        
        // 유효성 검사 결과 출력
        if (violations.isEmpty()) {
            System.out.println("주민등록번호가 유효합니다.");
        } else {
            for (ConstraintViolation<Person> violation : violations) {
                System.out.println(violation.getMessage()); // 주민등록번호 형식이 올바르지 않습니다.
            }
        }
    }
}

위 코드에서는 주민등록번호 형식이 올바르지 않을 경우 ConstraintViolation 객체를 통해 상세한 오류 메시지를 얻을 수 있습니다.

  1. 실행해보세요. 주민등록번호가 유효한 경우 “주민등록번호가 유효합니다.”라는 메시지가 출력됩니다. 유효하지 않은 경우, “주민등록번호 형식이 올바르지 않습니다.”라는 메시지가 출력됩니다.

이렇게 Hibernate Validator를 사용하여 주민등록번호 유효성 검사를 수행할 수 있습니다. Hibernate Validator는 여러 유효성 검사 애노테이션을 제공하므로, 다른 유효성 검사에도 활용할 수 있습니다.

참고 문서: