-
Validationspring boot 2023. 4. 11. 14:15
학습 목표
Validation 에이해
Bean Validation API 사용 (어노테이션 기반)
AOP 개념 적용Validation 이란 프로그래밍에 있어서 가장 필요한 부분 중에 하나 입니다. 특히 자바에서는 null 값에 대해서 접근 하려고 할 때 Null Point Exception이 발생하기 때문에 이러한 부분을 방지 하기 위해서 미리 검증을 하는 과정을 Validation 이라고 합니다.
1. 검증해야 할 값이 많은 경우 코드의 길이가 길어 진다.
2. 구현에 따라서 달라 질 수 있지만 핵심 기능과의 분리가 필요 하다.
3. 흩어져 있는 경우 어디에서 검증을 하는지 알기 어러우며, 재사용의 한계가 있다.
4. 구현에 따라 달라 질 수 있지만, 검증 Logic이 변경 되는 경우 테스트 코드 등 참조하는 클래스에서 Logic이 변경되어야 하는 부분이 발생 할 수 있다.
핵심 기능과의 분리가 필요하다(AOP 적용한다는말이랑 같음)
컨트롤러를 많이 만들었는데 공통적인 코드를 많이 만들면 검증을 하는데 어려워 재사용의 한계가 있다.https://beanvalidation.org/2.0-jsr380
Jakarta Bean Validation - Bean Validation 2.0 (JSR 380)
Bean Validation 2.0 focused on the following topics: support for validating container elements by annotating type arguments of parameterized types e.g. List<@Positive Integer> positiveNumbers. This also includes: more flexible cascaded validation of contai
beanvalidation.org
@Size 문자 길이 측정 @NotNull null 불가 @NotEmpty null,"",불가 @NotBlank null,""," " 불가 @Past 과거 날짜 @PastOrPresent 오늘이거나 과거 날짜 @Future 미래 날짜 @FutureOrPresent 오늘이거나 미래 날짜 @pattern 정규식 적용 @Max 최댓값 @Min 최소값 @AssertTrue / False 별도 Logic 적용 @Valid 해당 object validation 실행 
1. gradle dependecies 추가 하기
2. implementation 'org.springframework.boot:spring-boot-starter-validation'

- POST 방식일때와 GET방식일때 유효성 검사는 다르다.
반드시 @Valid 어노테이션을 선언 해야 한다.
Validation 심화과정
- 직접 예외 클래스를 컨트롤 할 수도 있다. (POST 일 때 많이 사용)

디버깅

'spring boot' 카테고리의 다른 글
bank app2 - 네이밍 (0) 2023.04.14 bank app1 - 프로젝트 설정 (0) 2023.04.14 AOP 개념 살펴보기 (0) 2023.04.10 Maven이란? (0) 2023.04.10 제어의 역전과 의존 주입(Ioc / DI) (0) 2023.04.10