'AOP'에 해당되는 글 2건

  1. 2009.01.21 Proxy 객체인지 확인하려면...?
  2. 2007.12.31 AOP란 무엇인가?

지금까지 사용중인 객체가 proxy객체 인지 아닌지 구별하기 위해
instanceof 연산자로 SpringProxy 타입을 비교해서 구분 했는데
이미 그렇게 구분해서 값을 돌려주는게 있었네요...

org.springframework.aop,.support.AopUtils
신고

'Spring > AOP' 카테고리의 다른 글

Proxy 객체인지 확인하려면...?  (0) 2009.01.21
Spring AOP - aop스키마 기반  (0) 2008.01.14
Spring AOP - @AspectJ  (0) 2007.12.31
Spring AOP APIs - ProxyFactoryBean, AutoProxy  (0) 2007.12.31
Spring AOP APIs - Advisor  (2) 2007.12.31
Spring AOP APIs - Pointcut  (0) 2007.12.31
Posted by 째코

AOP란 무엇인가?

Spring/AOP 2007.12.31 11:10

OOP의 한계
OOP의 대표적인 상속은 컴파일시에 행동이 결정 되므로 실행시에 특징을 바꿀 수 없습니다.
그리고 모든 서브클래스에서 동일한 코드 상속 받게 될 경우 슈퍼클래스의 변경이 이루어 졌을 때
일부 서브클래스에서 원치 않는 변경을 받아들여야만 합니다. 상속은 전혀 유연하지 못합니다.
이를 해결 하기 위해 구성이라는 기법을 사용하죠. 구성은 상속의 모든 단점을 해결해 줍니다.
실행중 동적으로 행동을 바꿀 수 있으며 슈퍼클래스가 없으므로 의존도가 제거 됩니다. 하지만 이런 구성도
단점이 있기 마련입니다. 슈퍼클래스의 코드를 재사용할 수 없고 구성 객체에게 위임 해야하는 번거로움이
있습니다.

AOP 등장
위에서 제기된 OOP의 한계를 보완 하고자 OOP와 전혀 다른 개념인 AOP가 등장 했습니다.
AOP는 OOP의 강력한 상속과 구성만으로 처치 곤란 했던 여러곳에 흩어진 중복코드를 제거 할 수 있습니다.
AOP의 기본 개념은 아래 그림에서 볼 수 있듯이 횡단 관심사(cross-cutting) 에 대한 모듈화 입니다.
사용자 삽입 이미지

SIA 참조























위 그림에서 알 수 있듯이 각 서비스 클래스마다 어쩔수 없이 존재하는 로깅, 예외, 트랜잭션 관련 코드를
지금까지와는 전혀 다른 시점으로 해결 합니다.


용어
Joinpoint - 특정 행동이 일어나는 시점 (Spring AOP는 오직 메소드Joinpoint만 지원)
Advice - Joinpoint에 대한 추가 행동
Pointcut - Advice가 어떤 JoinPoint에 대해 적용할지 결정
Aspect(Advisor) - Advice + Pointcut
Target - Advice의 대상
Weaving - Target에 Aspect를 적용
Introdction -  새로운 메소드와 필드 추가
신고

'Spring > AOP' 카테고리의 다른 글

Spring AOP - @AspectJ  (0) 2007.12.31
Spring AOP APIs - ProxyFactoryBean, AutoProxy  (0) 2007.12.31
Spring AOP APIs - Advisor  (2) 2007.12.31
Spring AOP APIs - Pointcut  (0) 2007.12.31
Spring AOP APIs - Advice  (0) 2007.12.31
AOP란 무엇인가?  (0) 2007.12.31
Posted by 째코