답변 1
1
안녕하세요. 기팝님, 공식 서포터즈 OMG입니다.
가장 큰 차이로는 스프링이 제공하는 기술이냐 아니냐의 차이가 있을 것 같네요.
스프링으로의 개발 환경이 아니라면 필터를 사용해야합니다.
추가적인 내용은 아래 잘 정리된 글을 참고해주세요.
https://mangkyu.tistory.com/173
감사합니다.
강의에서 위와 같은 설명이 있는데요, 특별한 문제가 없다면 인터셉터 사용을 권장하시는데 특별한 문제로 염두하신게 스프링 사용 환경을 말씀하시는 것일수도 있고 아래와 같은 상황을 말씀하신 것일 수도 있을 것 같습니다.
대표적으로 보안 공통 작업이 있다. 필터는 인터셉터보다 앞단에서 동작하므로 전역적으로 해야하는 보안 검사(XSS 방어 등)를 하여 올바른 요청이 아닐 경우 차단을 할 수 있다. 그러면 스프링 컨테이너까지 요청이 전달되지 못하고 차단되므로 안정성을 더욱 높일 수 있다.
또한 필터는 이미지나 데이터의 압축이나 문자열 인코딩과 같이 웹 애플리케이션에 전반적으로 사용되는 기능을 구현하기에 적당하다. Filter는 다음 체인으로 넘기는 ServletRequest/ServletResponse 객체를 조작할 수 있다는 점에서 Interceptor보다 훨씬 강력한 기술이다.
인터셉터를 권장하시니 인터셉터를 사용하다 , 인터셉터로 해결이 불가능한 상황이 올 때 필터 사용을 고려해보면 좋을 것 같습니다.
스프링 개발 환경이면 웬만하면 필터대신 인터셉터를 사용한다는거가요 ?