SPRING/term

AOP 용어 뜻 (Aspects, Advice, JoinPoint...)

nang. 2019. 3. 15. 16:45
반응형
SMALL

# Concern (중요한 것, 관심사, 기능)

: 소프트웨어를 만들기 위해 필요한 처리해야 하는 구체적 요구사항이나 고려사항

  즉, 각 기능들이겠지


1) core concern (= primary concern) : 핵심 기능 (비즈니스 컴포넌트 business component) ---> 가로

각 기능이 모두 cross-cutting concern이 필요함


2) cross-cutting concern : 어플리케이션 전반에 걸쳐서 공통적으로 필요한 기능 ---> 세로

비즈니스 로직에 속하지 않는 시스템 서비스

비즈니스 컴포넌트(클래스)들과 복잡한 의존 관계 형성

ex) 트랜잭션, 로깅, 보안, 인증 등








# Aspects (= cross-cutting concern)

: 여러 객체에서 공통으로 적용되는 공통 관심사항 (공통 기능) -----> 핵심 기능 아닌 부수적 기능 (cross-cutting concern)

  advice와 pointcut들의 모임

  ex) 트랜잭션, 로깅, 보안, 인증 등





# Advice 

: 적용할 Aspects가 무엇이고 언제 사용할건지 정의하는 것이 advice

  언제 어떤(what, when) aspects를 핵심 로직에 적용할지 정의한 것

  ex) 메소드 수행 전/후, 예외 발생 후 등





# Target (주요, 핵심) (= core concern)

: advice를 받는 객체 -----> Target 객체 (주요 기능 객체)

  advice 객체 -----> 부수적 기능 객체

  비즈니스 로직을 구현하는 클래스 -----> core concern





# Weaving (삽입)

: advice(aspects가 정의된)의 기능이 target 객체가 실행되면 target 객체의 필요한 위치에 가서 삽입되는 것 = aspects가 삽입되는 것

  ex) 컴파일 시, 클래스 로딩 시, 런타임 시 등..?





# JoinPoint

: Target Method의 어느 지점으로 weaving할 것인지 정해 놓는 것 = aspects가 적용될 수 있는 지점

  여기에 joinpoint 해 놓으면 여기와서 weaving해라~

  ex) 메소드 호출 때, 예외 발생 시, 필드 변경할 때 지점 등





# Pointcut

: weaving하는 지점에 패턴을 정해놓는 것

  즉, advice는 aspect의 언제, 어떤 을 정했다면 pointcut은 어디에 를 정하는 것

  JoinPoint가 더 큰 범위

  ex) nang으로 시작하는 메소드가 호출되면 이 pointcut 지점으로 weaving 할거야! 라고 패턴을 지정





# Advisor

: advice + pointcut

  advice의 메소드가 target의 어느 지점으로 weaving 되는 지에 대한 정보를 가지고 있는 것





# Proxy

: target 객체에 advice가 적용된 후 생성된 객체

  target object 랑 proxy object 가 같아야 함 그래야 잘 분리된 것이지






반응형
LIST

'SPRING > term' 카테고리의 다른 글

UML (Unified Modeling Language)  (0) 2019.03.17
Bean, IoC, Container, Coupling  (0) 2019.03.16
Servlet, GET / POST  (0) 2019.03.16
MVC (Model-View-Controller)  (0) 2019.03.15
Routine, Module, Component 뜻  (0) 2019.03.13