[spring]스프링 aop 개념 :: 개발/일상_Mr.lee

[spring]스프링 aop 개념

Posted by Mr.mandu.
2016. 4. 16. 21:03 개발/java,spring


스프링은 AOP 프레임워크 기능도 제공한다.


AOP - Aspect Oriented Programming, 관점 지향 프로그래밍


관점 지향과 횡단적 관심사 분리

○ 관점 

- 소프트웨어가 갖는 다양한 특징이나 성질


○ 공통 관심 사항(횡단관심사)

    - 어떤 특정 모듈에서만 필요로 하는 것이 아니라어플리케이션 전반에 걸쳐 필요한 기능

    - Logging 기능, DB 트랜잭션 기능보안기타 등등










AOP 용어

○ 어드바이스(Advice)

- 관점으로서 분리되고 실행시 모듈에 위빙된 구체적인 처리

- Advice가 어디에서 위빙하는지 Poincut이라는 단위로 정의

- Advice가 위빙되는 인스턴스를 '대상객체'라고 부름

Advice 타입

 

before

함수 실행전 advice를 실행

after

함수가 종료(outcome)되지 않는한 함수 실행전 advice를 실행

after-returning

함수가 성공적으로 완료되면 함수 실행 후 advice 실행

after-throwing

함수가 exception 발생으로 종료되면 함수 실행 후 advice 실행

around

호출된 advice된 함수 전/후에 advice 실행



○ 조인포인트(Joinpoint)

- Advice를 위빙하는 포인트

- 구체적으로 '메소드호출'이나 '예외 발생'이라는 포인트를 Joinpoint로 정의


○ 포인트컷(Pointcut)

- 하나 또는 복수의 Joinpoint를 하나로 묶은 것

- Advice의 위빙 정의는 Pointcut을 대상으로 설정

- 하나의 Pointcut에는 복수 Advice를 연결할 수 있음


○ 어드바이저(Advisor)

- Advice와 Pointcut을 하나로 묶어 다루는 것

- Advisor는 스프링 AOP에만 있음


○ Weaving

- 포인트컷에 의해서 결정된 조인포인트에 지정된 어드바이스를 삽입하는 과정 (다른 말로 크로스컷팅)





스프링 AOP에 대해서 정리 하였습니다.

처음에 이론을 보면서 확 와닿지가 않았습니다. 하지만 실습을 통해 조금은..???이해 할 수 있었습니다.

실습한 내용도 올리도록 하겠습니다.