본문 바로가기
Spring

08. 유효성 검사

by hjwjddl 2023. 8. 9.

 

 

유효성 검사란?

입력 내용이 요건에 만족하는지 그 타장성을 확인하는 입력 체크를 말한다.

  • 단일 항목 검사
  • 상관 항목 검사(서로 관련이 있는 항목을 함께 체크하는 방법)

이렇게 크게 두 개로 나뉜다.

 

 

 

단일 항목 검사

 입력 항목 하나에 대해 설정하는 입력 체크 기능이다. 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 문자열이 이메일 주소 형식인지 검증한다. @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