AOP

  • 관련 카테고리 : Spring, 스터디LAB

  • 부가기능을 위임하는 방법

    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...

    댓글 남기기

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