[java] Hibernate Validator를 사용하여 API 요청의 유효성 검사를 수행할 수 있나요? 가능하다면 어떻게 구현하는 건가요?
  1. 의존성 추가 및 설정
    • 먼저 Maven 또는 Gradle을 사용하여 프로젝트에 Hibernate Validator 의존성을 추가해야 합니다.
    • Maven의 경우, pom.xml에 다음 의존성을 추가합니다.
      <dependency>
          <groupId>org.hibernate.validator</groupId>
          <artifactId>hibernate-validator</artifactId>
          <version>6.2.0.Final</version>
      </dependency>
      
    • 그리고 Spring Boot 프로젝트를 사용하는 경우, application.properties 또는 application.yml 파일에 다음 설정을 추가하여 Hibernate Validator를 활성화합니다:
      spring.mvc.validation.enabled=true
      
  2. 유효성 검사 어노테이션 활용
    • API 요청 클래스의 필드에 유효성 검사를 수행할 수 있는 Hibernate Validator 어노테이션을 추가합니다.
    • 예를 들어, 이메일 주소 필드에 유효성 검사를 하려면 @Email 어노테이션을 사용합니다.
    • 다른 유효성 검사 어노테이션으로는 @NotBlank, @NotNull, @Pattern 등이 있습니다.
  3. 유효성 검사 수행
    • API 요청이 들어왔을 때, 해당 요청 객체를 유효성 검사할 수 있습니다.
    • 일반적으로 Spring Framework를 사용하는 경우, @Valid 어노테이션을 요청 객체에 추가하여 유효성 검사를 수행합니다.
    • 예를 들어, 다음과 같이 컨트롤러 메서드에 @Valid 어노테이션을 사용하여 유효성 검사를 수행할 수 있습니다.
      @PostMapping("/api/example")
      public ResponseEntity<String> createExample(@Valid @RequestBody ExampleRequest request) {
          // 유효성 검사를 통과한 경우 비즈니스 로직 수행
          // ...
      }
      
  4. 유효성 검사 실패 처리
    • 유효성 검사를 통과하지 못한 경우, 예외를 처리하여 적절한 응답을 반환해야 합니다.
    • Spring Framework를 사용하는 경우, MethodArgumentNotValidException 예외가 발생하며, 이를 전역 예외 처리기를 등록하여 처리할 수 있습니다.
    • 예를 들어, @ControllerAdvice 어노테이션을 사용하여 전역 예외 처리기를 구현할 수 있습니다.

이와 같이 Hibernate Validator를 사용하여 API 요청의 유효성 검사를 수행할 수 있습니다. Hibernate Validator를 활용하면 간편하게 유효성 검사를 구현할 수 있으며, 코드 중복을 줄이고 유지보수성을 향상시킬 수 있습니다.

참고 문서: