1. Validation
- [설명]
- 데이터의 값이 유효한지, 조건에 타당한지 확인하는 것을 말합니다
- 올바르지 않은 데이터를 Server or DB로 전송되는 것을 막기 위함입니다
- [Annotation]
- @NotNull
- Null값은 받을 수 없다는 의미입니다
- @Null
- Null값만 가능하며 그 외에의 값은 입력이 불가능하다는 의미입니다
- @NotEmpty
- Null, 빈 문자열은 불가능하다는 의미입니다
- @NotBlank
- Null, 빈 문자열, 스페이스만 있는 문자열 불가하다는 의미입니다
- @Size(min=,max=)
- 문자열, 배열등의 크기가 만족하는지에 대한 의미입니다
- @Pattern(regex=)
- 정규식을 만족하는지에 대한 의미입니다
- @Max(숫자)
- 지정 값 이하인지를 체크합니다
- @Min(숫자)
- 지정값 이상인가를 체크합니다
- @Future
- 현재보다 미래인지를 체크합니다
- @Past
- 현재보다 과거인지를 체크합니다
- @Positive
- 양수만 가능하다는 의미입니다
- @PositiveOrZero
- 양수와 0만 가능하다는 의미입니다
- @Negative
- 음수만 가능하다는 의미입니다
- @NegativeOrZero
- 음수와 0만 가능하다는 의미입니다
- @Email
- 이메일 형식만 가능하다는 의미입니다
- @Digits(integer=, fraction = )
- 대상 수가 지정된 정수와 소수자리수 보다 작은지를 의미합니다
- @DecimalMax(value=)
- 지정된 값(실수) 이하인지를 의미합니다
- @DecimalMin(value=)
- 지정된 값(실수) 이상인가를 의미합니다
- @AssertFalse
- false인가를 의미합니다
- @AssertTrue
- true인가를 의미합니다
- [Domain Validation Annotation]
- @NotBlank
- 변수에 값이 비어있는 것을 체크할 수 있는 애노테이션입니다
- @CreditCardNumber
- 속성의 값이 Luhn 아록리즘 검사에 합격한 유효한 신용 카드 번호이여야 한다는 것을 선언해주는 애노테이션 입니다
- @Pattern
- 정규 표현식을 지정하여 ccExpiration 속성 값이 해당 형식을 따르는지 확인하는 애노테이션 입니다
- @Digit
- 카드 cvv특성 상 3자리이기에 정확하게 세 자리 숫자인지 검사하는 애노테이션 입니다
2. Validation Variety[유효성 종류]
- Bean Validation
- [설명]
- Spring에서 Bean 에 대한 데이터 유효성 검증을 위한 메타데이터 모델과 API 에 대한 정의를 말합니다
- JSR (Java Specification Requests)는 자바 플랫폼에 추가된 사양 및 기술들을 정의해놓은 공식 문서를 말하며, JSR-303에서 처음 등장하였습니다
- javax의 Bean Validation을 기반으로 만들어졌으며, javax 버전이 제공하지 않는 ISBN 검증, URL 검증 등의 독특한 검증 로직을 포함하고 있습니다
- 값의 검증을 어노테이션으로 간단하게 도와주는 오픈소스 입니다
- Hibernate Validator
- [설명]
- 가장 최신 버전인 7.0 버전은 Jakarta EE 9 이란것을 사용하는데, 이는 Java EE 와는 다른것이고, Spring 5 는 아직 이 Jakarta EE 에 대한 지원을 하고 있지 않습니다
- Spring 5 에서 Hibernate Validator 를 사용하고자 한다면, 7.0 버전이 아니라, 6.2 버전을 사용해야 합니다
- Bean Validation를 토대로 실제로 검증해주는 프레임워크라고 합니다