등장 비경으로는 절차지향 -> 객체지향 프로그래밍(OOP) -> 관점지향 프로그래밍(AOP)
AOP는 Application을 다양한 관점(핵심 관심과 횡단 관심)으로 분해하여 객체지향에서 추구하는 모듈화하는 기법.
* 핵심 관심(core concerns) : 각 모듈에서 수행해야하는 기본적이고 대표적인 업무 기능.
* 횡단 관심(cross-cutting concerns) : 여러 개의 모듈에 걸치는 시스템의 부가적인 업무.
특징으로 보자면
- 기능 분할로 핵심 관심 위주의 모듈 식별
- 코드중복, 코드 산재 발생으로 복잡해짐(code tangling, code scattering)
Scattering이란 하나의 concern이 여러개의 class에 영향을 주는 것으로, 하나의 기능을 하나의 모듈로 캡슐화 하지 못하고, 여러 모듈에 분산되어 코드가 반복적으로 나타나는 것이다. 이는 코드의 유지보수를 힘들게 한다.
나머지 정리는 http://seulkom.tistory.com/18 에 정리가 잘 된것 같다 ..
댓글 없음:
댓글 쓰기