1. Validation

  1. [설명]
    1. 데이터의 값이 유효한지, 조건에 타당한지 확인하는 것을 말합니다
    2. 올바르지 않은 데이터를 Server or DB로 전송되는 것을 막기 위함입니다
  2. [Annotation]
    1. @NotNull
      1. Null값은 받을 수 없다는 의미입니다
    2. @Null
      1. Null값만 가능하며 그 외에의 값은 입력이 불가능하다는 의미입니다
    3. @NotEmpty
      1. Null, 빈 문자열은 불가능하다는 의미입니다
    4. @NotBlank
      1. Null, 빈 문자열, 스페이스만 있는 문자열 불가하다는 의미입니다
    5. @Size(min=,max=)
      1. 문자열, 배열등의 크기가 만족하는지에 대한 의미입니다
    6. @Pattern(regex=)
      1. 정규식을 만족하는지에 대한 의미입니다
    7. @Max(숫자)
      1. 지정 값 이하인지를 체크합니다
    8. @Min(숫자)
      1. 지정값 이상인가를 체크합니다
    9. @Future
      1. 현재보다 미래인지를 체크합니다
    10. @Past
      1. 현재보다 과거인지를 체크합니다
    11. @Positive
      1. 양수만 가능하다는 의미입니다
    12. @PositiveOrZero
      1. 양수와 0만 가능하다는 의미입니다
    13. @Negative
      1. 음수만 가능하다는 의미입니다
    14. @NegativeOrZero
      1. 음수와 0만 가능하다는 의미입니다
    15. @Email
      1. 이메일 형식만 가능하다는 의미입니다
    16. @Digits(integer=, fraction = )
      1. 대상 수가 지정된 정수와 소수자리수 보다 작은지를 의미합니다
    17. @DecimalMax(value=)
      1. 지정된 값(실수) 이하인지를 의미합니다
    18. @DecimalMin(value=)
      1. 지정된 값(실수) 이상인가를 의미합니다
    19. @AssertFalse
      1. false인가를 의미합니다
    20. @AssertTrue
      1. true인가를 의미합니다
  3. [Domain Validation Annotation]
    1. @NotBlank
      1. 변수에 값이 비어있는 것을 체크할 수 있는 애노테이션입니다
    2. @CreditCardNumber
      1. 속성의 값이 Luhn 아록리즘 검사에 합격한 유효한 신용 카드 번호이여야 한다는 것을 선언해주는 애노테이션 입니다
    3. @Pattern
      1. 정규 표현식을 지정하여 ccExpiration 속성 값이 해당 형식을 따르는지 확인하는 애노테이션 입니다
    4. @Digit
      1. 카드 cvv특성 상 3자리이기에 정확하게 세 자리 숫자인지 검사하는 애노테이션 입니다

2. Validation Variety[유효성 종류]

  1. Bean Validation
    1. [설명]
      1. Spring에서 Bean 에 대한 데이터 유효성 검증을 위한 메타데이터 모델과 API 에 대한 정의를 말합니다
      2. JSR (Java Specification Requests)는 자바 플랫폼에 추가된 사양 및 기술들을 정의해놓은 공식 문서를 말하며, JSR-303에서 처음 등장하였습니다
      3. javax의 Bean Validation을 기반으로 만들어졌으며, javax 버전이 제공하지 않는 ISBN 검증, URL 검증 등의 독특한 검증 로직을 포함하고 있습니다
      4. 값의 검증을 어노테이션으로 간단하게 도와주는 오픈소스 입니다
  2. Hibernate Validator
    1. [설명]
      1. 가장 최신 버전인 7.0 버전은 Jakarta EE 9 이란것을 사용하는데, 이는 Java EE 와는 다른것이고, Spring 5 는 아직 이 Jakarta EE 에 대한 지원을 하고 있지 않습니다
      2. Spring 5 에서 Hibernate Validator 를 사용하고자 한다면, 7.0 버전이 아니라, 6.2 버전을 사용해야 합니다
      3. Bean Validation를 토대로 실제로 검증해주는 프레임워크라고 합니다