새소식

🍹 (주) 강의 주제/✏️ Spring은 어노테이션에 있다

[Spring] filter와 interceptor의 차이점?

728x90

🤔 Question

👉 스프링 프레임워크(Spring Framework)에서 **Filter(필터)** 와 **Interceptor(인터셉터)** 는 둘 다 **요청이 서버에 들어올 때 미리 검사하거나 처리하는 역할**을 합니다. 그런데 비슷해 보이지만, **일하는 위치와 역할이 조금 다릅니다.** 오늘은 초등학생도 이해할 수 있도록 아주 쉽게 설명해볼게요 🙂

 

🎯 먼저 웹 요청 흐름을 알아보기

👉 여러분이 웹사이트에 접속하면 이런 순서로 일이 진행됩니다. 1️⃣ 브라우저가 요청을 보냄 2️⃣ 서버 입구에서 요청을 검사 3️⃣ 스프링이 요청을 받아서 컨트롤러 실행 4️⃣ 결과를 다시 사용자에게 돌려줌 Filter와 Interceptor는 **2번과 3번 사이에서 미리 검사하는 친구들**이라고 생각하면 됩니다.

 

🎯 Filter는 무엇일까요?

👉 Filter는 **서버 입구의 보안 요원** 같은 역할입니다. 학교 정문에서 ✔ 학생증 검사 ✔ 위험 물건 검사 를 먼저 하죠? Filter도 마찬가지로 ✔ 로그인 했는지 확인 ✔ 요청 데이터 형식 변환 ✔ 문자 인코딩 처리 같은 **기본적인 입구 검사**를 담당합니다. 📌 **Filter는 스프링보다 더 바깥쪽에서 먼저 동작합니다.**

 

🎯 Interceptor는 무엇일까요?

👉 Interceptor는 **담임선생님** 같은 역할입니다. 정문을 통과한 학생이 ✔ 수업 들을 준비가 되었는지 ✔ 출석 체크 ✔ 숙제 검사 를 하죠? Interceptor도 마찬가지로 ✔ 로그인한 사용자 정보 확인 ✔ 권한 검사 ✔ 요청 전후 로그 기록 같은 **스프링 컨트롤러 실행 전후 작업**을 담당합니다. 📌 **Interceptor는 스프링 안쪽에서 동작합니다.**

 

🎯 한눈에 보는 차이점

👉 Filter와 Interceptor의 차이를 표처럼 정리해볼게요. ✔ Filter - 스프링 밖에서 동작 - 서버 입구에서 요청을 먼저 검사 - 공통 전처리 작업 담당 ✔ Interceptor - 스프링 안에서 동작 - 컨트롤러 실행 전후 검사 - 로그인, 권한, 로그 처리 담당 즉, **Filter = 학교 정문 보안 요원** **Interceptor = 교실의 담임선생님** 이라고 기억하면 쉽습니다 🙂

 

🎯 언제 무엇을 쓰면 좋을까요?

👉 이런 상황이라면 이렇게 선택하면 됩니다. ✅ 모든 요청에 공통으로 필요한 작업 → **Filter** (예: 인코딩 처리, 기본 보안 검사) ✅ 스프링 컨트롤러 실행 전후 작업 → **Interceptor** (예: 로그인 체크, 관리자 권한 검사) 둘 다 함께 사용하면 **더 안전하고 깔끔한 웹 프로그램**을 만들 수 있습니다.

 

정리

👉 스프링에서 Filter는 **서버 입구에서 먼저 검사하는 친구** Interceptor는 **스프링 안에서 한 번 더 검사하는 친구** 라고 기억하면 됩니다. 이 둘을 잘 활용하면 **더 안전하고 관리하기 쉬운 웹 서비스**를 만들 수 있어요 😊

 

If I was of any help to you, please buy me coffee 😿😢😥

If you have any questions, please leave them in the comments

🧭 References

[1] reference : https://doctorson0309.tistory.com/

[2] Ads : https://apps.apple.com/us/app/beluga-classic-film-filters/id6744041061

반응형
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.