[java] Hibernate Validator를 사용하여 주민등록번호 유효성 검사를 수행하는 방법은 무엇인가요?
- 먼저, 주민등록번호 유효성을 검사할 DTO 또는 엔티티 클래스를 생성합니다. 해당 클래스에 주민등록번호 필드를 추가하고, 해당 필드에 유효성 검사 애노테이션을 적용합니다.
import javax.validation.constraints.Pattern;
public class Person {
@Pattern(regexp = "\\d{6}-[1-4]\\d{6}", message = "주민등록번호 형식이 올바르지 않습니다.")
private String residentRegistrationNumber;
// getter, setter 및 기타 필드 생략
}
- Hibernate Validator를 Maven 또는 Gradle의 의존성에 추가합니다. Maven의 경우
pom.xml
에 다음 의존성을 추가합니다.
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.2.0.Final</version>
</dependency>
- 유효성 검사를 수행하기 위해 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
객체를 통해 상세한 오류 메시지를 얻을 수 있습니다.
- 실행해보세요. 주민등록번호가 유효한 경우 “주민등록번호가 유효합니다.”라는 메시지가 출력됩니다. 유효하지 않은 경우, “주민등록번호 형식이 올바르지 않습니다.”라는 메시지가 출력됩니다.
이렇게 Hibernate Validator를 사용하여 주민등록번호 유효성 검사를 수행할 수 있습니다. Hibernate Validator는 여러 유효성 검사 애노테이션을 제공하므로, 다른 유효성 검사에도 활용할 수 있습니다.
참고 문서:
- Hibernate Validator 문서: https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/
- Bean Validation (JSR 380) 문서: https://beanvalidation.org/2.0/spec/