포스트

Spring Boot Validation

Spring Boot Validation

💫 Validation


  • 서비스의 비즈니스 로직이 올바르게 동작하기 위해 사용되는 데이터에 대한 사전 검증하는 작업이 필요함
  • 유효성 검사 혹은 데이터 검증이라고 부르는데, 흔히 Validation이라고 부름
  • 데이터의 검증은 여러 계층에서 발생하는 흔한 작업
  • Validation은 들어오는 데이터에 대해 의도한 형식의 값이 제대로 들어오는지 체크하는 과정을 뜻함

🫧 일반적인 Validation의 문제점

  • 어플리케이션 전체적으로 분산되어 존재
  • 코드의 중복이 심함 (코드가 복잡해짐)
  • 비즈니스 로직에 섞여 있어 검사 로직 추적이 어려움

🫧 Bean Validation / Hibernate Validator

Java

  • Bean Validation : 어노테이션을 통해 다양한 데이터를 검증할 수 있게 기능을 제공
  • Hibernate Validator : Bean Validation의 명세에 대한 구현체

  • SpringBoot의 유효성 검사 표준은 Hibernate Validator를 채택

  • @Size : 문자열의 길이를 검증
  • @NotNull : null이 아닌지 검증
  • @NotEmpty : null이 아니고 값이 비어있지 않은지 검증
  • @NotBlank : null이 아니고 값이 비어있지 않고 공백이 아닌지 검증

  • @Past : 과거 날짜인지 검증
  • @PastOrPresent : 과거나 현재 날짜인지 검증
  • @Future : 미래 날짜인지 검증
  • @FutureOrPresent : 미래나 현재 날짜인지 검증

  • @Pattern : 정규표현식을 사용하여 값이 패턴에 맞는지 검증

  • @Max : 최대값을 검증
  • @Min : 최소값을 검증
  • @AssertTrue : true인지 검증
  • @AssertFalse : false인지 검증

  • @Valid : 객체의 내부 필드에 대한 검증을 수행
    • @Valid @RequestBody User user : User 객체의 필드에 대한 검증을 수행
이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.