AOP


부가기능을 위임하는 방법

  1. 프록시, 데코레이터 (전통적인방법)
  2. AOP

프록시

부가 기능을 프록시에서 처리 

위키

Decorator

상속의 단점 : 의존성이 강력해짐 

상속의 단점을 보안하여 기능을 쉽게 추가할 수 있게 해줌 

https://johngrib.github.io/wiki/decorator-pattern/

AOP

Aspect Oriented programing

From Fast Campus Spring Academia

 

핵심 기능이 수행 될때마다 부가적으로 수행되어야 할 기능을 횡단 관심사 라 할 수 있고 이런 횡단 관심사를 프로그램하는 것이 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



블로그 구독하기 !!

You may also like...

댓글 남기기

이메일은 공개되지 않습니다.