출처: http://november11tech.tistory.com/88 [Mr.november11] aop :: 사월은 봄이다.

- aop

공통의 관심 사항을 적용해서 발생하는 의존 관계의 복잡성과 코드 중복을 해소해 주는 프로그래밍 기법

각 클래스에서 공통 관심 사항을 구현한 모듈에 대한 의존 관계를 갖기 보다는 aspect를 이용해 핵심 로직을 구현한 클래스에 공통 기능을 적용


핵심로직을 구현한 클래스는 더 이상 여러 공통 모듈에 의존하지 않는다. 즉, 핵심 로직 구현 클래스에서 공통 모듈을 사용하는 코드를 포함하지 않는다.

aop에서는 해김 로직을 구현한 클래스를 실행하기 전/후에 aspect를 적용하고, 그 결과로 핵심 로직을 수행하면 그에 앞서 공통 모듈을 실행하거나 또는 로직 수행 이후에 공통 모듈을 수행하는 방식으로 공통 기능을 실행한다.


 


 


가령, a 클래스의 b() 호출시 어떤 클래스의 함수가 자동응로 동작하게끔 하는것!


함수 실행 전에 혹은 함수 실행 후에 사용자 클랫(aop 클래스)가 실행되도록. 그리고 실행전 후가 아닌


아예 대체도 가능.


즉 a클래스의 b()가 호출되면 무조건 c클래스의 d()가 호출되도록 . . .


이렇게 해서 d() 내부에 a 클래스의 b()가 호출되도록 할 수 있기 때문에 이 경우는


실행 전, 후가 아닌 c 클래스가 a 클래스를 감싸는 프록시 형태가 된다.


 


pojo 클래스 : 아무런 객체도 상복 받지 않는 순수한 자바 클래스


프래임웍에 의존하지 않는 

클래스를 말합니다. 즉 스트럿츠의 경우는 프래임웍을 사용하기 위해 

스트럿에서 제공하는 Action클래스를 상속하잖아요. 이런건 포조라고 

볼 수 없구, 스프링 같은 경우는 스프링 자원을 이용하고 있더라도 

스프링에서 정의한 인터페이스나 클래스를 상속하지 않찮아요. 

이럴 경우 포조이구요. 

또 쓰래드 클래스를 구현하기 위해 Runnable인터페이스를 상속한다면 

이 클래스 또한 포조라고 할 수 있습니다. Runnable클래스를 구현하는 

이유가 프레임워크 제약 때문이 아닌 구현 목적 자체(쓰래드)이기 

때문입니다.

'개발 > Spring' 카테고리의 다른 글

@Autowired 어노테이션을 이용한 자동 설정  (0) 2018.02.15
의존 관계 자동 설정  (0) 2018.02.15
빈 생성  (0) 2018.02.15
@ModelAttribute와 @RequestParam  (0) 2018.02.15
@mvc 의 modelMap  (0) 2018.02.15

+ Recent posts