AOP는 OOP를 보완하는 프로그래밍 기법이다.

OOP는 클래스가 모듈화의 기본단위라면

AOP는 Aspect가 모듈화의 기본단위이다.

Aspect는 트랜잭션 관리와 같은 공통적인 관심사를 모듈화해서 여러 클래스에 걸쳐서 적용할 수 있게 해준다.

이런 공통 관심사를 cross-cutting concerns 라고 부른다.

AOP Concept


AOP 용어 정리

여기서 나오는 용어는 Spring에 한정된 것이 아님.

  1. Aspect
  2. JoinPoint
  3. Advice
  4. Pointcut
  5. Introduction