[java] Hibernate Validator를 사용하여 소문자 및 대문자 유효성 검사를 수행하는 방법은 무엇인가요?
  1. 프로젝트에 Hibernate Validator 의존성을 추가합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다:
<dependencies>
    ...
    <dependency>
        <groupId>org.hibernate.validator</groupId>
        <artifactId>hibernate-validator</artifactId>
        <version>6.2.0.Final</version>
    </dependency>
    ...
</dependencies>
  1. 검사할 DTO(데이터 전송 객체) 클래스를 작성합니다. 이 클래스는 검사할 속성을 가지고 있어야 합니다. 예를 들어, 다음과 같이 UserDto 클래스를 만들어보겠습니다:
public class UserDto {
    @Pattern(regexp="[a-z]+", message="소문자로 입력해주세요.")
    private String username;

    @Pattern(regexp="[A-Z]+", message="대문자로 입력해주세요.")
    private String password;

    // Getter, Setter, 기타 메소드
}
  1. 검사할 루틴에서 Hibernate Validator를 사용하여 유효성 검사를 수행합니다. 예를 들어, 다음과 같이 UserService 클래스의 saveUser 메소드에서 유효성 검사를 수행하는 코드를 작성할 수 있습니다:
public class UserService {
    public void saveUser(UserDto userDto) {
        ValidatorFactory validatorFactory = Validation.buildDefaultValidatorFactory();
        Validator validator = validatorFactory.getValidator();

        Set<ConstraintViolation<UserDto>> violations = validator.validate(userDto);
        if (!violations.isEmpty()) {
            throw new ValidationException("유효성 검사 실패: " + violations);
        }

        // 저장 로직 수행
    }
}

위 코드에서 Validation.buildDefaultValidatorFactory()를 호출하여 ValidatorFactory를 가져온 후, 이를 사용하여 실제 유효성 검사를 수행합니다. validate 메소드는 검사 대상 객체에 대한 유효성 검사를 수행하고, violations 변수에 결과를 담습니다. 만약 유효성 검사에 실패하면, ValidationException을 발생시킵니다.

  1. 이제 saveUser 메소드를 호출하여 유효성 검사를 수행할 수 있습니다:
UserDto userDto = new UserDto();
userDto.setUsername("username");
userDto.setPassword("PASSWORD");
userService.saveUser(userDto);

위 예제에서는 UserDtousername 속성이 소문자로 입력되고, password 속성이 대문자로 입력되어 유효성 검사 실패합니다. 이에 따라 ValidationException이 발생하여 예외처리 코드가 실행됩니다. 유효성 검사가 통과되는 경우에는 저장 로직을 수행할 수 있습니다.