AOP 3

Spring과 Filter - Interceptor (2)

이 글은 Spring과 Filter - Interceptor(1)과 이어진다. Spring과 Filter - Interceptor (1) Filter - Interceptor, 쉽게 이해해보자 웹을 개발하다보면 공통적으로 처리해야 할 업무들이 많다. 예를 들어 로그인 관련(세션) 처리, 권한 체크, PC와 모바일 웹의 분기 처리, 페이지 인코딩 등등이 astrid-dm.tistory.com 개념을 좀 더 쉽게 이해해보자 요청에 대한 작업 전 / 후에서 가로챈다고 보면 된다. 필터는 스프링 컨텍스트 외부에 존재하며 스프링과 무관한 자원에 대해 동작한다. 하지만 인터셉터는 스프링의 DispatcherServlet이 컨트롤러를 호출하기 전 / 후로 끼어들기 때문에 스프링 Context 내부에서 Controll..

SpringBoo와 Filter, 그리고 Interceptor (1)

쉽게 이해해보자 - Filter - Interceptor - AOP 웹을 개발하다보면 공통적으로 처리해야 할 업무들이 많다. 예를 들어 로그인 관련(세션) 처리, 권한 체크, PC와 모바일 웹의 분기 처리, 페이지 인코딩 등등이 있다. 이러한 공통 업무들은 하나의 페이지가 아니라 여러 페이지에 공통적으로 적용된다. 공통 업무들의 코드를 모든 페이지에 적용한다면 중복 코드가 많아지게 되고 프로젝트 단위가 커질수록 서버에 부하를 줄 수 있으며, 소스 관리조차 어려워지게 된다. 때문에 공통 코드 부분은 따로 빼서 관리하는 것이 좋다. 이러한 공통 업무를 프로그램 흐름의 앞, 중간, 뒤에 추가해서 자동으로 처리할 수 있는 방법이 크게 3가지가 있다. Filter Interceptor AOP 위 3가지는 각각 다..

AOP (Aspect Oriented Programming)

AOP란? Aspect Oriented Programming의 약자로, 관점지향 프로그래밍이라고 불린다. 여러 객체에 공통으로 적용할 수 있는 기능을 구분함으로써 재사용을 높여주는 프로그래밍 기법이다. AOP는 핵심 기능과 공통 기능의 구현을 분리함으로써 핵심 기능을 구현한 코드의 수정 없이 공통 기능을 적용할 수 있게 만들어준다. 다시 말해 핵심 기능의 코드를 수정하지 않으면서 공통 기능의 구현을 추가하는 것이 AOP이다. * 횡단관심 : 로깅, 보안, 트랜젝션 등 다수의 모듈에서 반복적으로 나타나는 부분 예를 들어 C사는 JSON 규격으로 통신을 하는데, A사와 B사는 UTF-8규격을 맞추지 못한다고 가정해보자. 이럴경우 A사와 B사에 C사의 코드를 그대로 적용하면 한글이 깨져서 나올것이다. 이를 해..