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 |
댓글