728x90
반응형
AOP(Aspect Oriented Programming)
- 관점지향 프로그래밍(AOP)은 객체지향 프로그래밍의 뒤를 이은 또 하나의 프로그래밍 언어구조이다.
- 관점지향의 중요한 개념은 ‘ 관점의 분리(Separation of Cross Cutting Concern)’ 이다.
- 문제를 해결하기 위한 핵심관심사항과 전체에 적용되는 공통관심사항을 기준으로 프로그래밍함으로써
공통모듈을 여러 코드에 쉽게 적용할 수 있 도록 지원하는 기술
- 공통으로 사용하는 기능들을 모듈화하고 해당 기능을 프로그램 코드에서 직접 명시하지 않고 선언적으로 처리하여
필요한 컴포넌트에 계층적으로 다양한 기능들을 적용한다.
CC(Core Concern) : 핵심 관심사항
CCC(Cross Cutting Concern): 공통 관심사항 (Logging, Transaction 등)
아래의 그림에서 보면 노란색, 주황색, 연두색으로 표시된 부분들이 CC, 핵심 관심사항이며
파란색부분이 CCC로 공통관심사항을 의미한다.
이렇듯 전체에서 핵심관심사항을 횡단관점으로 분리하여 따로 묶는 것을 볼 수 있다.
위의 그림에서는 주황색 네모박스가 CCC로 공통관심사항이고, 파란색 부분이 CC 핵심관심사항이라 할 수 있다.
2. 용어정리
* joinpoint: 메소드 호출 시점/ 객체생성시점/ exception 발생시점/ cc랑 연결될 수 있는 모든 시점
3. AOP이해하기
<com.test02>
man과 woman은 핵심관심사항인 CC가 되고, MyAspect는 공통관심사항(CCC)과 pointcut(핵심공통사항이 들어갈 결합점)이 합쳐진 advisor가 된다. 이때 CCC는 advice이고, MyAspect는 CCC + pointcut인 advisor라고 할 수 있다.
728x90
반응형
'Web > Spring' 카테고리의 다른 글
[Spring]MVC기초설명 (0) | 2020.10.29 |
---|---|
[Spring]Annotation (0) | 2020.10.28 |
[Spring]Autowire (0) | 2020.10.23 |
[Spring]MessageSourceAware (0) | 2020.10.23 |
[Spring]constructor injection_setter injection (0) | 2020.10.23 |