작성
·
57
·
수정됨
0
강의 잘보고있습니다. 감사합니다
인터셉터와, 필터가있는데
인터셉터로 적용한 이유가 있을까요 ??
--
그리고 인터셉터 설정할때
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(memberSigninInterceptor)
.addPathPatterns("/member/modify");
}
지금 상황에선 excludePathPatterns 설정을 굳이 안해줘도 문제가없지 않나요 ? 강의에서는 해주셨는데
답변 2
1
HK님 안녕하세요. 지방 출장 일정으로 인해 답변이 늦어진 점 양해 부탁드립니다. 기다리게 해드려 죄송합니다. 앞으로 더 빠르게 응대할 수 있도록 노력하겠습니다.
웹 애플리케이션에서 로그인 인증 여부에 따라 특정 서비스 접근 처리를 할 때 Filter와 Interceptor 모두 사용될 수 있습니다.
둘은 동작 시점, 용도, 설계 목적 등에 있어 차이점이 있습니다.
filter는 Servlet에 존재하면서 DispatcherServlet 앞에 위치해서 client의 모든 요청을 처리합니다.
실행 흐름은 client의 요청 → Filter → DispatcherServlet 순이라고 이해하시면 됩니다.
Interceptors는 Spring Framework에 존재하고 DispatcherServlet 뒤에 위치해서 컨트롤러 진입 전후에 실행됩니다.
실행 흐름은 client의 요청 → DispatcherServlet → Interceptor → Controller 순이라고 이해하시면 됩니다.
일반적으로 로그인 인증이나 권한 확인 등은 Spring MVC에서 처리되는 요청을 대상으로 하므로 Interceptor가 많이 사용됩니다.
물론, Spring Security를 사용하면 더 정교하고 안전한 인증 및 권한 처리를 할 수 있습니다.
결론적으로 로그인 인증이나 권한 확인이 목적이라면 Interceptor 보다는 Spring secutiry를 사용하면 됩니다.
인증 외 요청 전/후에 특정 처리가 목적이라면 Interceptor를 사용할 수 있습니다.
excludePathPatterns의 경우 학습자님들께 다양한 방법을 설명 드리고자 함입니다.
excludePathPatterns는 특정 경로에 인터셉터를 적용하지 않도록 설정할 때 사용되며,
상황에 따라 addPathPatterns와 함께 선택 또는 조합 해서 사용할 수 있습니다.
오늘의 코딩 한 줄, 한 줄이 실력을 키우는 발판이 된다고 생각하고 계속 나아가는 마음이 중요하고 HK님의 질문에서 이러한 점이 느껴집니다.
분명 멋진 개발자가 될 거예요. 파이팅입니다!
감사합니다.
0
안녕하세요, 인프런 AI 인턴입니다. H K님.
인터셉터와 필터는 모두 HTTP 요청과 응답을 처리할 때 특정 로직을 추가할 수 있는 기능입니다. 하지만, 이 두 가지는 사용되는 목적과 적용되는 레벨이 다릅니다.
인터셉터(Interceptor)
필터(Filter)
인터셉터를 사용하여 특정 로직을 구현한 이유는 주로 스프링 컨텍스트 내의 빈에 접근할 필요가 있는 작업을 하기 때문입니다. 인터셉터는 스프링의 여러 기능(예: 의존성 주입)을 그대로 사용할 수 있으며, 좀 더 스프링 프레임워크 친화적인 방식으로 요청을 전처리 및 후처리하는 데 유리합니다.
관련된 추가 정보를 원하시면, 아래의 링크를 참고하시기를 바랍니다:
인터셉터와 필터는 각각의 장점이 있으며, 어떤 작업이 필요한지에 따라 적절한 것을 선택해서 사용하는 것이 좋습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
감사합니다