본문 바로가기
Study/Spring Korea

Spring AOP 입문

by epro 2007. 3. 26.
◎ AOP?
Aspect-Oriented Programming의 줄임말, 관점 지향 프로그래밍이라고 해석됨

◎ AOP를 쓰는 이유
=> 애플리케이션 전체에 걸쳐 흩어져 있던 기능을 한 곳(Aspect)에 작성할 수 있다.

◎ AOP 장점
1. 각 관심사에 대한 로직이 코드의 여기저기에 흩어지지 않고 한 장소에서 관리된다.
2. 애플리케이션 고유의 서비스 모듈이 명확해진다.

◎ AOP 적용사례
=> Logging, Exception, Transaction, Security 등

◎ AOP에 등장하는 새로운 용어
- Joinpoint :
   클래스의 인스턴스 생성 시점, 메소드를 호출하는 시점, Exception이 발생하는 시점과 같이 애스펙트를 플러그인할 수 있는 애플리케이션의 실행 지점을 말한다.
- Advice :
   로깅, 트랜젝션관리 같은 기능을 제공하는 것. Aspect의 실제 구현체.
- Pointcut :
   분리된 기능(advice)를 결합시키기 위한 규칙(패턴)이 필요한데, 이 패턴을 Pointcut이라고 한다.
- Aspect :
   Advice와 Pointcut을 합쳐서 하나의 Aspect라고 한다. 즉, 일정한 패턴을 가지는 클래스에 Adivce를 적용하도록 지원할 수 있는 것을 Aspect라고 한다.
- Weaving :
   Aspect를 대상 객체에 적용하여 새로운 프록시 객체를 생성하는 과정을 말한다.
- Target :
   실질적인 비지니스 로직을 구현하고 있는 클래스로써 Advice를 받는 클래스를 말한다.

◎ Advice 타입
- Before advice
- After returning advice
- After throwing advice
- After (finally) advice
- Around advice

댓글