본문 바로가기

프로그래밍 회고록/Java & Spring

Filter, Interceptor, Aop가 뭔데?

728x90
반응형

# 궁금증

 Spring으로 MVC모델을 만들때 Controller로 넘어오기 이전에 Filter와 Interceptor와 Aop를 거쳐서 지나간다는것을 알았다. 그런데 이 세가지가 무슨 역할을 하는지에 대해서 정확히 모른다. 웹프로그래밍은 내 밥줄이고 따라서 각 세가지가 어떤역할을 하는지에 대해 파악이 필요하다.

 

# 내가 찾은 답

     Filter

 Client에서 Server로 요청을 주고 받을것이다. Client 에서 Server로 요청을 주고받을 때 가장먼저 Spring으로 들어가기 이전에 혹은 나온 이후 로직적으로 수정하거나 변환하는 역할을 할텐데 그 역할을 하는 것이 filter이다 대표적인 로직으로는 UTF-8로 받기위한 인코딩 작업이 있다.

      Interceptor

Dispacher Servlet(스프링에 있는 가장 앞에있는 Controller)에 들어온 후 주고받은 Client의 요청을 먼저 읽고 자신에게 해당되는 역할이 있으면 먼저 응답해 비용을 줄이는 역할을 한다. 대표적으로 Session값이 이미존재한다면 Interceptor에 역할(메소드?)을 집어넣어서 글을쓸 수 있고, Session값이 없다면 글을 쓰는걸 막는 역할을 할 수 있겠다.

     Aop

 양상(Aspect)지향프로그래밍 웹어플리케이션은 주된 비즈니스로직과 곁가지 이지만 각 비즈니스 로직마다 항상 필요한 공통로직이 있는 경우가 있다.  그 공통로직을 매번 실행한다면 비용적으로 굉장히 손해가 심할것이다. 이때 Aop를 활용해 공통로직은 따로 빼두고 비즈니스로직이 실행되기 이전이나 이후 또는 매번 실행되게 한다면 코드의 단순화와 비용낭비를 막을 수 있다. Aop가 하는 역할은 그것이다.

728x90