https://catsbi.oopy.io/9ed2ec2b-b8f3-43f7-99fa-32f69f059171
1. 공통 관심 사항
대부분의 많은 웹 서비스는 로그인을 해야 서비스를 이용할 수 있다.
로그인을 하지 않은 사용자는 접근할 수 있는 페이지가 제한적이며 로그인이 필요한 페이지 접근이 허용되서는 안된다. 하지만, 그렇다고 로그인이 필요한 모든 컨트롤러 로직에 로그인 여부를 확인하는 코드를 작성하는 것은 너무 비효율적이다. 수정에도 취약하다.
이렇게 많은 로직에서 공통으로 관심이 있는 부분을 공통 관심사(cross-cutting concerns)라 한다.
여러 로직에서 공통으로 로그인에 관심을 가지고 있는데, 이러한 공통 관심사는 스프링에서 AOP로 처리할 수 있다. 하지만, 웹에 관련된 공통 관심사는 스프링 AOP 보다는 서블릿 필터, 스프링 인터셉터에서 처리하는게 좋다. 웹과 관련된 공통 관심사를 처리할 때는 HTTP의 헤더나 URL 정보가 필요한데 서블릿 필터나, 스프링 인터셉터는 HttpServletRequest를 제공하기 때문이다.
2. 필터와 인터셉터 비교하기
그렇다면 서블릿 필터와 스프링 인터셉터 중 어느 것이 더 좋을까?
무엇이 더 좋다고 이야기하기 애매하다.
처리 방식이 다르기 때문이다.
2-1. 필터와 인터셉터의 흐름
2-2. 필터와 인터셉터의 제한
2-3. 필터와 인터셉터의 체인(다중 적용)
이 중에서 나는 스프링 MVC가 제공하는 스프링 인터셉터를 사용하는 방법에 대해 다음 게시물부터 알아보려 한다.
서블릿 필터는 상단에 첨부한 사이트에서 사용하는 방법을 익히시길 추천! 드린다.
'⁂ Spring FrameWork > : 기본 익히기(Boot 기반)' 카테고리의 다른 글
[Spring] 내가 보려고 쓰는 Cafe24 호스팅 시 살펴야 할 것들! (0) | 2022.11.15 |
---|---|
[MyBatis] #5-4 AJAX를 활용한 댓글 게시판 만들기 4 - 댓글 수정하기(Update) (0) | 2022.11.15 |
[Spring] #8-1 삭제 페이지 만들기 (0) | 2022.11.03 |
[Spring] #7-3 MVC 패턴으로 DB 접근하기 - MyMelon 프로젝트(JSP파일) (0) | 2022.11.02 |
[Spring] #7-2 MVC 패턴으로 DB 접근하기 - MyMelon 프로젝트(Class파일) (0) | 2022.11.02 |