• Interceptor는 웹 애플리케이션에서 요청과 응답 처리 과정을 가로채고 수정 또는 보완할 수 있는 기능을 제공하는 컴포넌트
  • 일반적으로 Interceptor는 프레임워크나 미들웨어에서 제공되며, 요청을 처리하기 전과 후에 실행되는 코드 블록으로 구성


Interceptor의 주요 목적

  • 인증과 권한 부여: Interceptor를 사용하여 사용자 인증 또는 권한 부여를 수행. 예를 들어, 로그인이 필요한 페이지에 접근할 때 Interceptor를 사용하여 사용자가 로그인되어 있는지 확인하고, 필요한 권한을 가지고 있는지 확인
  • 로깅: Interceptor를 사용하여 요청과 응답에 대한 로그를 작성. 이를 통해 애플리케이션의 동작을 추적하고 디버깅에 도움
  • 예외 처리: Interceptor를 사용하여 예외를 처리하고 오류 페이지 보여줌. 예를 들어, 예외가 발생하면 Interceptor에서 예외를 캐치하고, 사용자에게 오류 메시지를 보여주는 대체 페이지로 리다이렉션
  • 캐싱: Interceptor를 사용하여 응답을 캐싱하고 이전에 요청한 동일한 요청에 대해 캐시된 응답을 반환. 이를 통해 서버의 부하를 줄이고 응답 시간을 개선.
  • 트랜잭션 관리: Interceptor를 사용하여 트랜잭션을 시작하거나 종료. 이를 통해 데이터베이스 작업과 같은 트랜잭션 범위에서 요청을 처리



   - Spring에서 Interceptor는 HandlerInterceptor 인터페이스를 구현하여 만들 수 있습니다.
   - Interceptor는 preHandle, postHandle, afterCompletion 등의 메서드를 오버라이드하여 요청 전, 요청 후, 응답 완료 후에 실행할 로직을 구현할 수 있습니다.
   - preHandle 메서드는 요청을 처리하기 전에 실행되고, 요청을 가로채고 처리 여부를 결정할 수 있습니다.
   - postHandle 메서드는 요청 처리 후에 실행되고, 컨트롤러의 처리 결과에 대한 로직을 추가할 수 있습니다.
   - afterCompletion 메서드는 응답이 완료된 후에 실행되고, 리소스 정리 등의 작업을 수행할 수 있습니다.

'IT > SPRING' 카테고리의 다른 글

[Spring Batch]  (0) 2023.06.02
[Spring Boot]  (0) 2023.06.02
[SPRING] 어노테이션 설정  (0) 2022.01.05
[SPRING] 의존성 주입  (0) 2022.01.04
[SPRING] 스프링 컨테이너, applicationContext 설정파일  (0) 2022.01.03

+ Recent posts