Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스프링
- 인천여행
- 스프링 부트
- 백트래킹
- 오일러프로젝트
- Spring
- 스프링부트
- DFS
- 코드업
- gcp
- Kafka
- Apache Kafka
- Spring Boot
- 백준
- Elasticsearch
- 자료구조
- VPC
- 클라우드
- springboot
- aws
- JPA
- 쿠버네티스
- 프로그래밍문제
- 알고리즘
- 카프카
- 클라우드 컴퓨팅
- 월미도
- Docker
- Spring Data JPA
- 로드밸런서
Archives
- Today
- Total
GW LABS
스프링 부트 핵심 가이드 (8) - 유효성 검사와 예외처리 본문
10.1 일반적인 애플리케이션 유효성 검사의 문제점
- 계층별로 진행하는 유효성 검사는 관리하기 어려움
- 컨트롤러에서 한번?
- 서비스에서 한번?
- 중복 가능성이 있으며 어떤 검증 로직이 맞는 것인가…
- Bean Validation: DTO 같은 도메인 모델에서 어노테이션으로 검증을 수행
10.3 스프링 부트에서의 유효성 검사
- spring-boot-starter-validation
- 스프링 부트의 유효성 검사
- 일반적으로 DTO 객체를 대상으로 유효성 검사를 수행하는 것이 일반적
- 유효성 검사하려는 DTO 객체를 받는 함수 인자 앞에 Valid 어노테이션을 명시하면 수행가능
- 유효성 검사에 실패하면 400 Error가 발생!
- 문자열 검증
- Null
- NotNull
- NotEmpty
- NotBlank
- 최댓값/최솟값 검증
- BigDecimal, BigInteger, int, long 등의 타입 지원
- DemicalMax
- DemicalMin
- Min
- Max
- 값의 범위 검증
- Positive
- PositiveOrZero
- Negative
- NegativeOrZero
- 시간에 대한 검증
- Future
- FutureOrPresent
- Past
- PastOrPresent
- 이메일 검증
- 자릿수 범위 검증
- Digits
- Boolean 검증
- AssertTrue
- AssertFalse
- 문자열 길이 검증
- Size
- 정규식 검증
- Pattern
- 스프링부트 어노테이션 Validated
- 자바의 Valid 어노테이션을 포함하고 있음
- 유효성 검사를 그룹으로 묶어서 대상을 특정할 수 있음
- 커스텀 Validation 추가
- ConstraintValidator 인터페이스를 통해 커스텀 Validation을 사용할 수 있음
10.4 예외 처리
- 스프링 부트의 예외 처리 방식
- ControllerAdvice, ExceptionHandler를 통한 모든 컨트롤러의 예외를 처리
- ExceptionHandler를 통해 특정 컨트롤러의 예외를 처리
- 더 구체화된 예외 클래스가 우선순위가 높다
- ControllerAdvice보다 Controller 내 정의된 ExceptionHandler가 우선순위가 높다
'Book-Review > Programing' 카테고리의 다른 글
스프링 부트 핵심 가이드 (10) - 서비스의 인증과 권한 부여 (0) | 2022.08.20 |
---|---|
스프링 부트 핵심 가이드 (9) - 서버간 통신 (0) | 2022.08.19 |
스프링 부트 핵심 가이드 (7) - 연관관계 매핑 (0) | 2022.08.17 |
스프링 부트 핵심 가이드 (6) - Spring Data JPA 활용 (0) | 2022.08.16 |
스프링 부트 핵심 가이드 (5) - 테스트 코드 작성하기 (0) | 2022.08.15 |
Comments