AOP
부가기능을 위임하는 방법
- 프록시, 데코레이터 (전통적인방법)
- AOP
프록시
부가 기능을 프록시에서 처리
Decorator
상속의 단점 : 의존성이 강력해짐
상속의 단점을 보안하여 기능을 쉽게 추가할 수 있게 해줌
AOP
Aspect Oriented programing
핵심 기능이 수행 될때마다 부가적으로 수행되어야 할 기능을 횡단 관심사 라 할 수 있고 이런 횡단 관심사를 프로그램하는 것이 AOP ..
특징
- OOP 를 보완함
- OOP 모듈화의 핵심단위는 클래스, AOP 에서는 관점
- 여러 유형에 걸쳐있는 트랜젝션 같은 관심사들을 모듈화 할 수 있음
용어
- Aspect 여러 클래스에 걸치 관심사의 모듈화
- Join point 메소드 실행 또는 예외 처리와 같은 프로그램 실행 중 지점, 핵심 메소드가 실행 되기 전? 후? 와 같이 Aspect 가 실행 되는 지점
- Advice 특정한 Join point 에서 Aspect에 의해 행해진 액션
- Pointcut – Join Point 중에서 Advice 가 Weaving 되어야 할 Joint Point 를 지정한것
- Weaving – 다른 어플리케이션 유형 또는 개체와 Aspect 를 연결하여 권장 객체를 만드는것
- Introduction – 기존 클래스에 추가적인 메소드나 필드를 선언하여 사용하는 방식
- Target Object – 하나 이상의 Aspect에서 Advice 된 객체. Spring AOP는 런타임 프록시를 사용하여 구현되므로 이 객체는 항상 프록시 객체가 됨 – 계좌이체, 이자 계산같은 비지니스 로직
- AOP Proxy – Aspect를 구현하기 위해 AOP 프레임워크에 의해 생성된 객체
Reflection API
Reflection 은 Runtime에서 로드된 Class 의 메서드, 생성자, 필드등의 정보를 가져오는 역할을 한다. API 는 이런 로드된 클래스의 Public Member 나 어떤 필드에 접근할 때 사용된다.
횡단관심 즉 로깅이 어떤클래스에 대해서 로그를 남길지는 Reflection을 이용해 Runtime 중에 가져온다.
From.
Fast Campus
블로그 구독하기 !!