AOP란? (Spring 한스푼 첨가)
AOP란?Permalink
Aspect Oriented Programming 관점 지향 프로그래밍Permalink
어플리케이션의 각각의 기능들을 관심사라고 하고
여러 모듈에 걸쳐 공통적이고 반복적으로 처리하는 내용을 횡단관심사라고 한다.
(AOP에서는 모듈을 Aspect라고 표현함.)
여러 관심사에서 공통을 상용하는 횡단관심사를 중심으로 개발하는 프로그래밍 방식을 AOP라고 한다.
AOP는 여러 경계에 걸쳐있는 기능들을 잘 포장하는 방식이고 AOP를 잘 활용하면 유지관리와 확장에 용이하다.
AOP와 OOP는 서로 보관하는 관계에 있으며, 대표적으로 로깅, 트랜젝션등을 개발할때 사용된다.
간단히 표현하면 반복적으로 쓰는 코드를 한군데 모아 관리하는 개념이다.
AOP 용어?Permalink
주요 용어Permalink
Aop의 주요 용어에 대해 알아보자.
Aop 용어는 spring과 같은 하나의 커뮤니티만의 용어가 아닌 AOP라는 개념을 사용하는데 쓰이는 공통 용어이다.
AdvicePermalink
조인 포인트에 삽입되어 실행되는 코드, 횡단 관심사의 구현부분.
Join PointPermalink
횡단 관심사가 실행되는 지점 또는 시점
PointcutPermalink
Join Point 중에서 실제 적용될 지점들
Aspect (Advisor)Permalink
공통 관심사의 추상적 명칭
TargetPermalink
횡단 관심사를 적용 받게 되는 대상, 어드바이스가 적용되는 객체
IntroductionPermalink
Target에는 없는 새로운 메서드나 인스턴스 변수들을 추가하는 것
WeavingPermalink
Advice와 Target이 결합되어서 Proxy 객체를 만드는 과정
Aop ProxyPermalink
Advice가 적용되었을 때 만들어지는 프록시 객체
스프링 Advice 유형Permalink
beforePermalink
조인포인트 앞에서 실행할 어드바이스
after (finally)Permalink
조인포인트 뒤에서 실행할 어드바이스
after returningPermalink
조인포인트가 완전히 종료된 다음에 실행되는 어드바이스
(정상종료여야함) / Exception 터지면 안됨
after throwingPermalink
조인포인트에서 예외가 발생했을 때 실행되는 어드바이스
aroundPermalink
조인포인트 앞뒤에서 실행되는 어드바이스
스프링에서 AOP 설계방식Permalink
스프링에서는 Aop를 프록시 패턴을 통해 구현하고 있다.
객체를 참조하려할때 지정한 advice와 함께
프록시 객체를 생성하는 방식으로 요청의 전후를 인터셉트한다.