# 궁금증
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가 하는 역할은 그것이다.
'프로그래밍 회고록 > Java & Spring' 카테고리의 다른 글
Java와 java_websocket library를 이용한 WebSocket Clinet쪽 통신방법 (0) | 2021.10.17 |
---|---|
DB JNDI환경설정을 Spring에서 Annotation로 Dbconfig설정하기 (0) | 2021.08.23 |
JAVA에서 생성자는 메소드일까 (0) | 2021.01.06 |
잊지않겠다... 디렉토리 (0) | 2020.11.11 |
나의 슬픈 한시간 (0) | 2020.10.19 |