본문 바로가기
Be Smart/Spring

Spring Boot Validation

by 반월하 2021. 9. 7.
728x90

Spring Boot Validation


 Valiadation

  1. 검증 해야 할 값이 많은 경우 코드의 길이가 길어진다.
  2. 구현에 따라서 달라 질 수 있지만 Service Logic과 분리가 필요 하다.
  3. 흩어져 있는 경우 어디에서 검증을 하는지 알기 어려우며, 재사용의 한계가 있다.
  4. 구현에 따라 달라 질 수 있지만, 검증 Logic이 변경 되는 경우 테스트 코드 등 참조하는 클래스에서 Logic이 변경되어야 하는 부분이 발생할 수 있다.

 

Spring Boot Custom Validation


Custom Validation

AssertTrue / False 와 같은 method 지정을 통해서 Custom Logic 적용 가능

Constraint Validator 를 적용하여 재사용이 가능한 Custom Logic 적용 가능

Spring Boot Exception 처리


Exception 처리

Web Application 의 입장에서 바라 보았을 때, 에러가 났을 때 내려줄 수 있는 방법은 많지 않다.

  1. 에러 페이지
  2. 4XX Error or 5XX error
  3. 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과 분리시킨다.

비동기 처리하기


 

728x90

'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

댓글