AOP, Interceptor, Filter 의 차이점, Request가 들어올때 거치는 순서, 각 역할들의 장점을 설명해주실 수 있을까요?

코코·2023년 10월 18일
0

기술면접 준비

목록 보기
19/42

AOP(Aspect-Oriented Programming), Interceptor, Filter는 모두 애플리케이션에서 코드를 효율적으로 관리하고 제어하기 위한 다양한 방법입니다. 각각의 특징과 차이점은 다음과 같습니다.

AOP(Aspect-Oriented Programming)

  • AOP는 여러 모듈에서 공통으로 사용되는 기능을 분리하여 모듈 간의 의존성을 줄이는 프로그래밍 패러다임입니다.

  • 주요 장점은 코드 중복을 줄이고 핵심 비즈니스 로직과 횡단 관심사를 분리하여 코드를 더 모듈화하고 관리할 수 있게 해줍니다.

  • 대표적인 AOP 구현체로는 Spring AOP, AspectJ 등이 있습니다.

Interceptor

  • Interceptor는 주로 웹 애플리케이션에서 요청/응답의 전후에 공통 로직을 삽입하는 데 사용됩니다.

  • 대표적으로 스프링 프레임워크에서 HandlerInterceptor 인터페이스를 구현하여 인터셉터를 사용할 수 있습니다.

  • 주요 장점은 요청 전후의 로직을 처리할 수 있어 보안, 로깅, 트랜잭션 처리 등에 유용합니다.

Filter

  • Filter는 Servlet에서 웹 애플리케이션으로 들어오는 요청과 응답을 수정하거나 재구성하는 데 사용됩니다.

  • 주로 웹 애플리케이션의 보안, 로깅, 인코딩 등을 처리하는 데 사용됩니다. Filter는 DispatcherServlet 이전에 실행되며, 서블릿의 생명주기와는 별개로 동작합니다.

Request가 들어올 때 거치는 순서

Filter
Interceptor
Controller (핸들러)
AOP

장점

  • AOP: 코드 중복을 줄이고 모듈 간의 의존성을 낮추어 유지보수성과 가독성을 향상시킵니다.

  • Interceptor: 요청 전후에 공통 로직을 삽입하여 중복 코드를 줄이고 웹 애플리케이션의 보안 및 로깅을 강화할 수 있습니다.

  • Filter: 서블릿 이전에 실행되어 요청과 응답을 수정하거나 재구성하여 웹 애플리케이션의 보안 및 인코딩을 처리할 수 있습니다.

profile
Just Do It

0개의 댓글