Validation의 종류
Java Bean Validation (Jakarta Bean Validation)
- Java Bean Validation(JSR-303/JSR-380) 은 유효성 검증을 위한 표준 규약이다.
- 이 규약은 Java 객체의 속성에대한 제약 조건을 정의하고, 이 제약조건을 검사하는 방법을 정의한다.
- 인터페이스 규약으로서 제공되며, 실제 구현체는 Hibernate Validator와 같은 라이브러리이다.
Hibernate Validator
- Hibernate Validator는 Java Bean Validation의 참여 구현체이다. 즉 Java Bean Validation을 구현한 라이브러리 이다.
- Hibernate Validator는 유효성 검사 기능을 제공하는 실제 구현체로
@Notnull
, @NotBlank
, @Size
와 같은 어노테이션을 처리하고 유효성 검사를 수행한다.
- Hibernate Validator는 Java Bean Validation (Jakarta Bean Validation)의 규격에 따라 동작하며, 주로 유효성 검사를 할 때 사용된다.
Spring Validation
- Spring Validation은 Spring Framework 에서 제공하는 유효성 검사 기능이다.
- Spring Validation은 주로 웹 애플리케이션에서 입력데이터나 DTO 객체의 유효성을 검사하기 위해서 사용된다.
- Java Bean Validation을 기반으로 하여 SpringMVC 와 SpringBoot에서 쉽게 유효성 검사를 수행 할 수 있다.
- Spring Validation은 Java Bean Validation을 기반으로 하지만, Spring 환경에 맞게 여러가지 유효성 검사기능을 확장하고 있다.
- Spring Validation에서 주로 사용하는 유효성 검사 방식은 Java Bean Validation의 규격을 따르며,
@Valid
, @Validated
등을 사용한다.
- Spring Validation (
spring-boot-starter-validation
) 의존성을 추가하게되면 Java Bean Validation의 구현체 라이브러리인 Hibernate Validator와 Spring의 @Valiated
를사용할 수있는 의존성이 함께 추가된다.
@Valid 와 @Validated