Validation이란 프로그래밍에 있어서 가장 필요한 부분 입니다. 특히 Java에서는 null값에 대해서 접근 하려고할때 null pointer exception 이 발생함으로, 이러한 부분을 방지 하기 위해서 미리 검증을 하는 과정을 Validation이라고 합니다.
단순하게 아래와 같은 코드들 입니다.
public void run(String account,Spring pw,int age){
if(account ==null||pw ==null)
}
if(age == 0){
return
}
//정상 Logic
}
- 검증해야 할 값이 많은 경우 코드의 길이가 길어진다.
- 구현에 따라서 달라 질수있지만 Service Logic과의 분리가 반드시 필요하다.
- 흩어져있는 경우 어디에서 검증을 하는지 알기 어려우며,재사용의 한계가 있다.
- 구현에 따라 달라질수있지만, 검증 Logic이 변경되는 경우 테스트 코드 등 참조하는 클래스에서 Logic이 변경되어야 하는 부분이 발생할수있다.
--> Validation 라는 부분은 변화가 있어서는 안되고 일관적이어야 되고 작성된다고하면 비즈니스 로직이 들어가면 안된다.
@Size | 문자 길이 측정 | Int Type불가 |
---|---|---|
@NotNull | null 불가 | |
@NotEmpty | null,""불가 | |
@NotBlank | null,""," " 불가 | |
@Past | 과거 날짜 | |
@PastOrPresent | 오늘이거나 과거 날짜 | |
@Future | 미래날짜 | |
@FutureOrPresent | 오늘이거나 미래날짜 | |
@Pattern | 정규식 적용 | |
@Max | 최대값 | |
@Min | 최소값 | |
@AssertTure/False | 별도 Logic적용 | |
@Valid | 해당 Object validation 실행 |
1.gradle dependecies
implementation("org.springframework.boot:spring-boot-starter-validation")
2.bean validation spec
https://beanvalidation.org/2.0-jsr380/
3.핸드폰번호 정규식
"^\d{2,3}-\d{3,4}-\d{4}$"