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

[Spring] AOP 개념

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

AOP(Aspect Oriented Programming)

  • 말그대로 관점 지향 프로그래밍이다.
  • 관점 지향: 횡단 관심사의 분리를 허용하는 프로그램밍
  • 횡단 관심사: 시스템의 수많은 다른 부분에 의존하거나 영향을 미쳐야 하는 프로그램의 일부분이다
  • 간단하게 정리를 한다면
  • 시스템의 수많은 부분에 의존하거나 영향을 미치는 프로그램을 분리 하는 것이다.

 

AOP 예제

횡단 관심사

  • A, B, C 서비스가 있고 각 서비스는 서비스에 맞는 비즈니스 로직을 가지고 있다.
  • 하지만 로그 찍는 로직이 동일하게 들어가 있다고 하자
  • 로그를 찍는 print log 의 코드는 동일하다.
  • pring log가 횡단 관심사가 되는 것이다.
  • 그럼 AOP 맞게 구조를 바꿔 보자

 

 

횡단 관심사 분리

  • pring log 라는 기능을 따로 빼고
  • A, B, C 서비스에 적용한 모습이다.
  • 실제 구현 체는 따로 빠져 있고 프록시를 통해 A,B,C 서비스에 적용한 모습이다.

 

 

AOP 와 Proxy

AOP 기능을 이해하려면 프록시 개념을 이해 해야 한다.

왜냐 하면 AOP 기능이 동작하기 위해선 프록시가 필요하기 때문이다

위처럼 구현체는 따로 빠져있는데 어떻게 A, B, C 서비스 로직에 적용 시킬수 있는가?

그것을 가능하게 해주는 것이 프록시(CGLIB, JDK)다.

 

 

 

 

728x90
반응형

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

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

댓글