AOP - Aspect? 관점? 핵심 관심사? 횡단 관심사?
AOP(Aspect-Oriented Programming) 관점 지향 프로그래밍
AOP는 로직(code) 주입이라고 할 수 있다.
횡단관심사 : 로깅, 보안, 트랜잭션 기능 처럼 다수의 모듈에 공통적으로 나타나는 부분을 뜻한다.
핵심관심사 : 주요 프로그램의 로직을 얘기한다.
코드 = 핵심 관심사 + 횡단 관심사
@Before : 실행 전 시작되는 애너테이션
@After : 실행 후 시작되는 애너테이션
스프링 AOP의 핵심 3가지
- 스프링 AOP는 인터페이스 기반이다.
- 스프링 AOP는 프록시 기반이다.
- 스프링 AOP는 런타임 기반이다.
JoinPoint 파라미터를 이용하면
실행 시점에 실제 호출된 메서드가 무엇인지, 실제 호출된 메서드를 소유한 객체가 무엇인지
또 호출된 메서드의 파라미터는 무엇인지 등의 정보를 확인할 수 있다.
광의의 JoinPoint는 Aspect 적용이 가능한 모든 지점을 말하고
협의의 JoinPoint란 호출된 객체의 메서드다.
Aspect = Advice들 + Pointcut들
Advice = Pointcut에 적용할 로직, 즉 메서드를 의미 언제, 무엇을 적용할지 정의한 메서드
Advisor = 한 개의 Advice + 한 개의 Pointcut
Aspect와 Advisor의 차이점은 Advisor는 스프링 AOP에서만 사용하는 용어이며 스프링이 발전해 오면서
다수의 Advice와 다수의 Pointcut을 다양하게 조합해서 사용할 수 있는 방법 즉 Aspect가 나왔기 때문에
하나만 사용하면 Advisor를 사용할 필요가 없어졌다.
'독서 > 스프링 입문을 위한 자바 객체지향의 원리와 이해' 카테고리의 다른 글
스프링 삼각형과 설정 정보-3 (0) | 2023.05.24 |
---|---|
스프링 삼각형과 설정 정보-1 (2) | 2023.05.23 |
스프링이 사랑한 디자인 패턴 (1) | 2023.05.18 |
메모리 구조 , 객체 지향 4대 특성 , SOLID원칙 (0) | 2023.04.28 |