1 분 소요


Bean Validation 이란?

특정 필드에 대한 검증 로직은 대부분 빈 값인지, 특정 크기를 넘는지 등 매우 일반적인 로직이다. 이런 검증 로직을 모든 프로젝트에 적용할 수 있게 공통화하고, 표준화 한 것이 Bean Validation이다.

@NotBlank
private String itemName;

@NotNull
@Range(min = 1000, max = 1000000)
private Integer price;

@NotNull
@Max(9999)
private Integer quantity;

Bean Validation은 특정한 구현체가 아니라 Bean Validation 2.0(JSR-380)이라는 기술 표준이다. 쉽게 얘기해서 검증 애노테이션과 여러 인터페이스의 모음이다.

Bean Validation을 구현한 기술중 일반적으로 사용하는 구현체는 하이버네이트 Validator이다.(ORM과 관련X)

하이버네이트 Validation 관련 링크


Bean Validation 시작

의존관계 추가

build.gradle

implementation 'org.springframework.boot:spring-boot-starter-validation'

애노테이션 적용

@Data
public class Item {

    private Long id;

    @NotBlank
    private String itemName;

    @NotNull
    @Range(min = 1000, max = 1000000)
    private Integer price;

    @NotNull
    @Max(9999)
    private Integer quantity;

    // ...
}

검증 애노테이션

  • @NotBlank: 빈 값 + 공백만 있는 경우를 허용하지 않는다.
  • @NotNull: null을 허용하지 않는다.
  • @Range(min = 1000, max = 1000000): 범위 안의 값이어야 한다.
  • @Max(9999): 최대 9999까지만 허용한다.

검증기 생성

스프링과 통합하면 이런 코드를 직접 작성하지는 않기 때문에 참고만.

ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();

검증 실행

Set<ConstraintViolation<Item>> violations = validator.validate(item);

검증 대상(item)을 검증기에 넣고 그 결과를 받는다. Set에는 ConstraintViolation이라는 검증 오류가 담기기에 결과가 비어있으면 오류가 없는 것이다.


<출처 : 인프런 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술(김영한)>

댓글남기기