안녕하세요! 개인적으로 필터는 서비스 기능 혹은 비지니스 로직과 상관없는 범용적인 기능, 예를 들어 XSS, CORS, ACL, Access Logging 등을 구현하면 좋고 인터셉터는 서비스 기능과 관계된 혹은 Spring Container 에서 관리되는 Bean 이나 스레드풀 등을 사용해야할 때, 예를 들어 사용자 정보 조회를 통한 권한 혹은 서비스 기능과 관계된 체크(금지된 사용자, 신고받은 사용자 등), 커스텀 어노테이션을 사용한 기능 동작 등이 있을거 같습니다. 필터를 전혀 안쓰신다면 인터셉터로만 구성하시는것도 방법이지만, 혹여 유지보수 과정에서 필터를 사용하게 될 경우 예상치 못한 이슈를 경험하실 수 있습니다. 예를 들어 Access logging 기능을 인터셉터에서 구현하였는데 추후 유지보수 과정에서 어떤 필터를 추가하게 되면 해당 필터에서 오류나 reject 처리될 경우 인터셉터까지 요청이 전달되지 않아 로깅기능이 정상적으로 수행되지 못해 요청이 유입되었는지 알수가 없습니다. 그래서 유지보수 과정에서 이러한 이슈를 피하고자 한다면 범용적인 기능에 대해서는 필터로 구현하시는게 좋을 수 있습니다. 필터를 구현했을때 (좀 억지스러울수 있습니다만) 추가적인 장점으로 서블릿 기반 웹 컨테이너 프레임워크가 변경되더라도 동일하게 사용할 수 있다는 장점도 있습니다. 저의 짧은 지식이 작게나마 도움이 되시길 바랍니다.

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 9월 16일 오전 8:09

댓글 0

    함께 읽은 게시물

    이직의 조건

    

    ... 더 보기

    이름 바꿔쓰기

    자아성찰, 혹은 자기 회고를 할 때는 자기 객관화를 하는 것이 좋다. 감정이 개입되어서는 올바른 회고를 하기 어렵기 때문이다. 하지만, 막상 자기 객관화가 쉽지는 않다. 나를 남처럼 들여다보는 것은 많은 훈련을 거쳐야 가능하기 때문이다.

    ... 더 보기

    < 쿠팡의 창업자를 직접 보며 배운 것: 리더의 크기가 전부다 >

    1

    ... 더 보기

     • 

    댓글 1 • 저장 11 • 조회 1,224


    애니를 봐도 개발 생각뿐

    "개발은 스스로 생각하고 탐구할 때가 가장 즐거우니까"

    ... 더 보기


    간만에 개발 떡밥이(신난다) 이번엔 제가 소수 입장에 있는 ORM이군요. 후후..


    저는 몇몇 사건을 통해 ORM 반대주의자가 된 사람인데요.


    ... 더 보기