본문 바로가기
개발 관련 강의 정리/블로그

Filter, Interceptor, AOP 정리

by 코딩개발 2023. 4. 18.
728x90
반응형

자바 웹 개발시 공통으로 처리해야 되는 업무를 모든 페이지에 작성 한다면 중복된 코드가 많아지고 소스 관리도 어렵다.
(공통으로 처리해야 하는 업무 : 로그인 관련(세션체크)처리, 권한체크, XSS(Cross site script)방어, pc와 모바일웹의 분기처리, 로그, 페이지 인코딩 변환 등)

공통 부분은 빼서 따로 관리하는게 좋다.
공통업무를 프로그램 흐름의 앞, 중간, 뒤에 추가하여 자동으로 처리할 수 있는 방법이 3가지가 있다.

1. Filter
2. Interceptor
3. AOP

- Interceptor와 Filter는 Servlet 단위에서 실행된다. <> 반면 AOP는 메소드 앞에 Proxy패턴의 형태로 실행

1. 서버를 실행시켜 서블릿이 올라오는 동안에 init이 실행되고, 그 후 doFilter가 실행된다. 

2. 컨트롤러에 들어가기 전 preHandler가 실행된다

3. 컨트롤러에서 나와 postHandler, after Completion, doFilter 순으로 진행이 된다.

4. 서블릿 종료 시 destroy가 실행된다.

 

 

*Filter
-전체적인 Request단에서 어떤 처리가 필요할때
-인증,이미지변환,데이터압축,암호화필터,토크나이징 필터,XML 컨텐츠를 변형하는 XSLT 필터,
URL 및 기타정보를 캐시하는 필터
-문자 인코딩등

*Interceptor
-세션 및 쿠키 체크하는 http 프로토콜 단위로 처리해야 하는 업무가 있을 때
-로그인 세션 체크 등

*AOP
-비즈니스 단에서 세밀하게 조정하고 싶을때
-로깅,트랜잭션,에러처리 등

 


참고

https://baek-kim-dev.site/61

728x90
반응형

댓글