유효성 검사란?
입력 내용이 요건에 만족하는지 그 타장성을 확인하는 입력 체크를 말한다.
- 단일 항목 검사
- 상관 항목 검사(서로 관련이 있는 항목을 함께 체크하는 방법)
이렇게 크게 두 개로 나뉜다.
단일 항목 검사
입력 항목 하나에 대해 설정하는 입력 체크 기능이다. Form 클래스 등의 필드에 어노테이션을 부여해서 사용한다.
입력 체크를 위한 어노테이션은 Java EE에서 제공하는 어노테이션(Bean Validation)이나 하이버네이트(Hibernate) 프레임워크에서 제공하는 어노테이션이 있다. 또 수치 입력 항목에 알파벳 등의 문자열을 입력한 경우 등의 '형변환 체크'는 입력 체크를 설정하는 것만으로도 이용할 수 있기 때문에 '형변환 체크'용 어노테이션을 추가할 필요는 없다.
- 단일 항목 검사에 이용되는 주요 어노테이션
| 어노테이션 | 기능 설명 | 사용 예 |
| @NotNull | null 값이 아닌 것을 검증한다. | @NotNull Integer no; |
| @NotEmpty | 문자열이 null 혹은 공백문자(" ")가 아닌 것을 검증한다. | @NotEmpty String name; |
| @NotBlank | 문자열이 null 혹은 공백(스페이스나 탭 등)이 아닌 것을 검증한다. | @NotBlank String name; |
| @Max | 지정한 숫자 이하인 것을 검증한다. | #100 이하인 것을 검증 @Max(100) Integer age; |
| @Min | 지정한 숫자 이상인 것을 검증한다. | #10 이상인 것을 검증 @Min(10) Integer age; |
| @Size | 문자열이나 컬렉션(Collection)이 지정한 범위의 크기 내인 것을 검증한다. | #요소의 수가 0에서 10의 범위인 것을 검증(문자열은 문자열 길이, 컬렉션은 사이즈) @Size(min=0, max=10) List<Integer> selected; |
| @AssetTrue | 값이 true인 것을 검증한다. | @AssertTrue Boolean empty; |
| @AssertFalse | 값이 false인 것을 검증한다. | @AssertFalse Boolean empty; |
| @Pattern | 지정한 숫자 범위 안에 있는 것을 검증한다. | #영숫자 검증 @Pattern(regexp="[a-zA-Z0-9]*") |
| @Range | 지정한 숫자 범위 안에 있는 것을 검증한다. | #1 이상, 10 이하인 것을 검증 @Range(min=1, max=10) Integer point; |
| @DecinalMax | 지정한 숫자 이하인 것을 검증한다. | #100.0 이하 검증(소수점 이하를 포함해서 검증할 때는 Max가 아니고 DecimalMax를 사용) @DecimalMax("100.0") BigDecimal val; |
| @DecimalMin | 지정한 숫자 이상인 것을 검증한다. | #10.0 이상 검증(소수점 이하를 포함해서 검증할 때는 Min이 아니라 DecimalMin을 사용) @DecimalMin("10.0") BigDecimal val; |
| @Digits | 정수부와 소수부의 자릿수를 검증한다. | #정수부가 3, 소수부가 1인 것을 검증 @Digits(Integer=3, fraction=1) BigDecimal val; |
| @Future | 미래의 날짜인 것을 검증한다. | @Future Date date; |
| @Past | 과거의 날짜인 것을 검증한다. | @Past Date date; |
| @Valid | 중첩된 Form을 검증한다. | @Valid SampleForm sampleForm; |
| @Length | 문자열 길이가 지정한 범위 안에 있는 것을 검증한다. (문자열 전용 Size) |
@Length(min=0, max=10) String name; |
| 문자열이 이메일 주소 형식인지 검증한다. | @Email String email; |
|
| @CreditCardNumber | 문자열이 신용카드 번호 형식인지 검증한다. | @CreditCardNumber String card; |
| @URL | 문자열이 URL 형식인지 검증한다. | @URL String url; |
커스텀 유효성 검사
단일 항목 검사는 하나의 필드를 체크한다. 여러 필드에 대해 혼합해서 체크하는 것을 상관 항목(서로 관련이 있는 항목) 검사라고 한다.
'Spring' 카테고리의 다른 글
| 09. 애플리케이션 만들기 (0) | 2023.08.12 |
|---|---|
| 07. 요청 파라미터 취득하기 (0) | 2023.08.06 |
| 06. 템플릿 엔진 (0) | 2023.07.26 |
| 05. MVC 모델 (0) | 2023.07.21 |
| 04 - 2 O/R 매퍼와 JDBC (0) | 2023.07.14 |