개념

아직도 인터셉터(Interceptor) 몰라?

junetudy 2023. 3. 17. 01:51

 

 

https://medium.com/geekculture/what-is-handlerinterceptor-in-spring-mvc-110681604bd7

 

 


인터셉터(Interceptor) 

 

- 정식명칭은 Handler Interceptor이다. 

- 특정 URL로 요청시 Controller로 가는 요청을 가로채는 역할. 


 

 

  • 스프링에서 관리되기 때문에 스프링내의 모든 객체에서 접근 가능
  • 주로 '로그인 처리'에 이용

만약 인터셉터를 이용하지 않고, 로그인 처리를 한다면?
게시물 작성, 게시물 수정, 게시물 삭제 등 모든 요청마다 
controller에서 session을 통해 로그인 정보가 남아있는지를 확인하는 코드를 중복해서 입력해야함. 


인터셉터를 이용하면 abc작업(abc경로로 요청)을 할 경우에는 interceptor를 먼저 수행하여 session에서 로그인 정보가 있는지 확인해 주는 역할을 한다. 
결론적으로 인터셉터를 사용하면,  중복 코드가 확 줄어든다.

 


 

 

추가 설명 + 

예를 들어, 로그인 기능.


회원가입하여 로그인된 상태에서만 보이는 페이지와 

로그인 된 사람만 글을 작성할 수 있다면?

 

 

인터셉터(Interceptor)를 사용하지 않는다면?

페이지 컨트롤러에서도 로그인 확인 로직이 들어가고, 
글 작성 컨트롤러에서도 로그인 확인 로직이 들어가야한다. 

 

 

 

 

인터셉터(Interceptor)를 사용한다면?

인터셉터를 사용하면 컨트롤러의 로직이 로그인 확인 로직이 없어도 
컨트롤러에 들어가기전, 인터셉터에서 로그인 확인을 하고 컨트롤러로 보냄. 

즉, 하나의 인터셉터로 프로젝트 내의 모든 요청에 로그인 여부를 확인할 수있다. 

 

'개념' 카테고리의 다른 글

[JWT] JWT 토큰 검증  (0) 2023.05.27
[JWT] JWT토큰 개념  (0) 2023.05.27
[MySQL] VScode와 연동하기  (0) 2023.02.21
[Spring] Design Pattern(GoF 디자인패턴)이란?  (0) 2022.12.27
[Spring] Handler Mapping 이란?  (0) 2022.12.26