Spring Boot Validation
Valiadation
- 검증 해야 할 값이 많은 경우 코드의 길이가 길어진다.
- 구현에 따라서 달라 질 수 있지만 Service Logic과 분리가 필요 하다.
- 흩어져 있는 경우 어디에서 검증을 하는지 알기 어려우며, 재사용의 한계가 있다.
- 구현에 따라 달라 질 수 있지만, 검증 Logic이 변경 되는 경우 테스트 코드 등 참조하는 클래스에서 Logic이 변경되어야 하는 부분이 발생할 수 있다.
Spring Boot Custom Validation
Custom Validation
AssertTrue / False 와 같은 method 지정을 통해서 Custom Logic 적용 가능
Constraint Validator 를 적용하여 재사용이 가능한 Custom Logic 적용 가능
Spring Boot Exception 처리
Exception 처리
Web Application 의 입장에서 바라 보았을 때, 에러가 났을 때 내려줄 수 있는 방법은 많지 않다.
- 에러 페이지
- 4XX Error or 5XX error
- Client가 200 외에 처리를 하지 못 할 때는 200을 내려주고 별도의 에러 Message 전달'
Spring Boot Filter 와 Interceptor
Filter
Filter란 Web Application 에서 관리되는 영역으로써 Spring Boot Framework 에서 Client로 부터 오는 요청/응답에 대해서 최초/최종 단계의 위치에 존재하며, 이를 통해서 요청/응답의 정보를 변경하거나, Spring에 의해서 데이터가 변환되기 전의 순수한 Client의 요청/응답 값을 확인 할 수 있다.
유일하게 ServlerRequest, ServletResponse의 객체를 변환 할 수 있다.
주로 Spring Framework 에서는 request / response의 Logging 용도로 활용하거나,
인증과 관련된 Logic 들을 해당 Filter에서 처리 한다.
이를 선/후 처리 함으로써, Service business logic과 분리 시킨다.
Interceptor
Interceptor 란 Filter와 매우 유사한 형태로 존재 하지만, 차이점은 Spring Context에 등록 된다.
AOP와 유사한 기능을 제공할 수 있으며,
주로 인증 단계를 처리 하거나, Logging를 하는데에 사용한다.
이를 선/후 처리 함으로써, Service business logic과 분리시킨다.
비동기 처리하기
'Be Smart > Spring' 카테고리의 다른 글
Spring MVC 프로젝트의 기본 구조와 실행 순서 (0) | 2021.10.01 |
---|---|
스프링의 핵심 (0) | 2021.09.06 |
Spring Boot (0) | 2021.09.06 |
Web 개론 (0) | 2021.09.06 |
Singleton Pattern (0) | 2021.08.20 |
댓글