# 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 가 같아야 함 그래야 잘 분리된 것이지
'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 |