티스토리 뷰

filter와 interceptor

  • filterinterceptorAOP 와 함께 공통 기능을 모아서 처리할 수 있는 방법을 제공한다.
  • filterDispatcher Servlet에 요청이 전달되기 전/후 로 스프링 컨테이너가 아닌 톰캣과 같은 웹 컨테이너 에 의해 관리된다.
  • interceptorController 를 호출하기 전/후에 스프링 컨텍스트 에서 동작한다.
  • 필터는 다음 필터를 호출하기 위해 chain.doFilter 로 request, response 객체를 넘겨주기 때문에 원하는 객체를 넣어서 조작할 수 있지만 인터셉터는 디스패처 서블릿이 인터셉터 목록을 for문으로 돌면서 true 혹은 false를 반환해 동작을 제어하기 때문에 객체를 조작할 수 없다는 점에서 필터와 차이가 있다.
  • 필터는 스프링과 무관하게 전역적으로 처리해야 하는 보안 검사, 이미지나 데이터의 압축, 문자열 인코딩과 같은 웹 어플리케이션 전반에 사용되는 기능을 구현할 때 사용될 수 있고
  • 인터셉터는 로그인 체크와 같은 세부적인 보안 작업이나 JWT 토큰 정보를 파싱해서 컨트롤러로 넘겨주는 등의 작업에 사용될 수 있다.

DI(Dependency Injection, 의존성 주입)

  • 의존성 주입은 객체 내부에서 new 연산자를 통해 직접 호출하는 대신 외부인 스프링 컨테이너에서 객체를 생성하여 넣어주는 방식이다.
  • 클래스가 아닌 객체간 의존관계를 설정함으로써 결합도는 낮추면서 유연성과 확장성을 향상시킨다.
  • 의존성을 주입하는 방법에는 필드주입, @Setter 혹은 set() 메서드를 이용한 수정자 주입, 생성자 주입이 있다.
  • final 선언이 가능하여 불변성이 보장된다는 점, 필수적으로 사용해야 하는 요소 없이는 인스턴스를 만들지 못하도록 강제할 수 있다는 점 때문에 생성자 주입 방법이 권장된다.

연관자료

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
글 보관함