태그

2013년 5월 27일 월요일

Aspect Oriented Programming(AOP)

Aspect Oriented Programming(AOP)  : 관점 지향 프로그래밍

등장 비경으로는 절차지향 -> 객체지향 프로그래밍(OOP) -> 관점지향 프로그래밍(AOP)

AOP는  Application을 다양한 관점(핵심 관심과 횡단 관심)으로 분해하여 객체지향에서 추구하는 모듈화하는 기법.

* 핵심 관심(core concerns) : 각 모듈에서 수행해야하는 기본적이고 대표적인 업무 기능.
* 횡단 관심(cross-cutting concerns) : 여러 개의 모듈에 걸치는 시스템의 부가적인 업무.

특징으로 보자면
 - 기능 분할로 핵심 관심 위주의 모듈 식별
 - 코드중복, 코드 산재 발생으로 복잡해짐(code tangling, code scattering)



Tangling이란 하나의 module안에 두개 이상의 concern이 연관되어 있을 경우를 말하며, 블록으로 칠해진 부분은 이 코드를 더 안전하게 security측면의 코드이다. 즉 이 모듈의 핵심 기능은 아니지만 전체 프로그램을 security를 높이는 것으로 하나의 module안에  핵심 코드와, security 코드가 같이 있는 것이다.


Scattering이란 하나의 concern이 여러개의 class에 영향을 주는 것으로, 하나의 기능을 하나의 모듈로 캡슐화 하지 못하고, 여러 모듈에 분산되어 코드가 반복적으로 나타나는 것이다. 이는 코드의 유지보수를 힘들게 한다.



나머지 정리는 http://seulkom.tistory.com/18 에 정리가 잘 된것 같다 ..

댓글 없음:

댓글 쓰기