Concern(중요한 것, 관심사, 기능)
- s/w를 만들기 위해 필요한 처리해야 하는 구체적 요구사항이나 고려사항
- 각 기능들
1. core concern(primary concern)
- 핵심 기능(business component)
- 각 기능이 모두 cross-cutting concern이 필요
2. corss-cutting concern
- APP 전반에 걸쳐서 공통적으로 필요한 기능
- 비즈니스 로직에 속하지 않는 시스템 서비스
- 비즈니스 컴포넌트(클래스)들과 복잡한 의존 관계 형성
ex) 트랜잭션, 로깅 보안 , 인증 등
a. Aspect(cross-cutting concern)
- 여러 객체에서 공통으로 적용되는 공통 관심사항(공통 기능)
핵신 기능 아닌 부수적인 기능(corss-cutting concern)
- advice와 pointcut들의 모임
ex) 트랜잭션,로깅,보안 인증 등
b. Advice
- 적용할 Aspects가 무엇이고 언제 사용할 것인지 정의
- advice는 언제, 무엇을-어떤- (when, what) aspect를 핵심 로직(core concern)에 적용을 정의
- 메소드 수행 전, 수행 후 , 예외 발생 후 등
c. Target(주요 핵심 - core concern - )
- advice를 이용하는 객체 (target 객체 - 주요 기능 객체 - )
- advice 객체(부수적 기능 객체)
* 비즈니스 로직을 구현하는 클래스(core concern)
d. Weaving(삽입)
- advice(aspects가 정의된)의 기능이 target객체가 실행되면 target객체의 필요한 위치에 가서 삽입되는것
- aspect가 삽입되는 것
ex) 컴파일 할 때, 클래스 로딩 될 때, 런 타임(실행 시) 등
e. JoinPoint
- Target Method의 어느 지점으로 weaving 할 것인지 정해 놓은 것
- aspects가 적용될 수 있는 지점
- 이곳에 Joinpoint 표시를 해놓으면 여기와서 Weaving 해라
ex) method 호출 때 , 예외 발생 시, 필드 변경할 때 지점 등
f. Pointcut
- weaving하는 지점에 패턴을 정해놓은 것
- advice는 aspect의 언제 어떤(무엇)을 정의
- pointcut는 어디에(where)를 정의
- JointPoint가 더 큰 범위
ex) start로 시작하는 메소드가 호출되면 어느위치의 pointcut 지점으로 weaving 해라는 패턴을 지정
g. Advisor (= aspects)
- advice + pointcut
- advice의 method가 target의 어느 지점으로 weaving 되는지에 대한 정보를 보유하고 있는 것
h. Proxy
- target객체에 advice가 적용된 후 생성된 객체
UML 참고 20221107 (0) | 2022.11.07 |
---|---|
형사정책연구원 협동총서_부동산+시장질서+확립을+위한+중점+대응전략+최종보고서(2021 출판) (0) | 2022.11.06 |
Aspect : AOP의 공통기능 20221103 (0) | 2022.11.03 |
Model Driven Architecture 20221102 (0) | 2022.11.02 |
Rational Unified Process 20221102 (0) | 2022.11.02 |
댓글 영역