보통 관점 지향 프로그래밍...이라고 번역한다.

IT 용어들은 용어만 보고 대강 어떤 것인지를 추측하는 것이 어려운 것들이 많다.

어려운 용어를 쓰기보다는 이해하기 쉬운 용어나 설명을 하는 책이 많이 나왔으면 좋겠다.


아무튼.. 본론으로 돌아와서..

AOP는 한마디로 말하면 모듈을 수정하지 않고 부가적 기능을 더해주는 것이다.


예를 들면

DBMS의 입력/수정/삭제 연산에 대한 트랜잭션 구현

모듈의 실행 시간 구하기

모듈 시작 전후에 로그 찍기

와 같은 것들이 있겠다.


상관 없는 모듈들에 공통적 기능인 '로그 찍기', '실행시간 구하기' 등의 연산을 일괄적으로 적용하고 싶은데, 기존 모듈에 손을 대지 않는 방법을 찾던 중 나온 것이 AOP다.


다른 말로는 필터를 꽂는다...라고도 한다.



적용 순서

1. 공통 기능을 제공하는 Aspect를 구현

2. Aspect를 어디(Pointcut)에 적용할지 설정. 즉, Advice를 구현.




Advice : 공통 작업

Join Point : Advice를 끼워넣을 곳

Point cut : 






작성하다보니 설명이 잘되어 있는 곳을 발견.

http://ooz.co.kr/213

http://ooz.co.kr/216

자세한 내용은 여기 가서 보자.