Free Lines Arrow
본문 바로가기
Spring/Spring 고급

[Spring] Spring AOP 개념

by skahn1215 2023. 6. 27.
728x90
반응형

Spring AOP

  • Spring AOP 는 스프링에서 사용하는 AOP 방식이다.
  • 개념과 어떻게 사용 하는지 파악해보자.

 

Spring AOP Proxy

  • AOP를 적용하기 위해선 프록시가 필요하다.
  • 스프링은 CGLIB 프록시를 사용한다.

 

Spring AOP 용어

  • 용어를 바로 설명하기 전에 예제를 한번 보자
  • 아래 처럼 OrderService가 있고 그안에 save, cancel 메소드가 있다고 해보자.
  • 사용자가 주문을 취소 했을때 cancel 이 몇번 되었는지 로그를 쌓고 싶다고 가정해보자.

 

Advice

  • 우리는 먼저 로그를 저장하는 부가 기능을 구현을 해야 한다.
  • 아래처럼 Log 를 저장하는 기능을 Advice 라고한다.

 

PointCut

  • 그럼 저 어디바이스를 어떻게 지정을 할까?
  • 우리는 Pointcut 으로 어떤 메소드에 부가기능을 저장할수 있을지 정할수 있다.

 

Advisor

  • 위 그림을 보면 Advice 와 Pointcut이 한쌍으로 이루어져 있는 것 같지 않은가?
  • 그게 바로 Advisor다.
  • 하지만 여기에 프록시가 있어야 한다.

 

 

 

Prox를 이용한 AOP 전체 동작 구조

1. 클라이언트가 cancel 을 호출을 한다.

2. 프록시가 동작하고 Point cut 을 확인해 Advice 적용여부를 확인한다.

3. 적용여부가 판단이 된다면 프록시에 해당 기능을 적용한다

4. Proxy 를 통해 cancel 호출 시킨다.
- Proxy 안에 Advice 가 적용이 되어 있어 cancel을 호출할때 부가 기능을 수행 시킬수 있게 되는 구조이다.

728x90
반응형

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

[Spring] AOP 개념  (0) 2023.06.15
[Spring] CGLIB  (0) 2023.04.18
[Spring] JDK Proxy  (0) 2023.04.18
[Spring] Proxy  (0) 2023.01.23

댓글