이 글은 Spring Framework 5.2.8 버전 Core Technologies의 AOP 문서에 기반하여 작성되었습니다.
AOP는 프로그램 구조에 대한 다른 사고방식을 제공함으로써 OOP를 보완하는 역할을 보완합니다. 즉 AOP라고 하는 것은 OOP를 대체하는 개념이라기 보다는 OOP와 결합하여 보완적인 관계를 가질 수 있는 것입니다. OOP의 모듈 단위는
Class라는 형태로 표현할 수 있을 것이며, AOP의 모듈 단위는 Aspect로 말할 수 있습니다. Aspect는 여러 타입들과 객체를 가로지르는 관심을 모듈화한 것입니다. 예를 들면 Transaction의 관리 등이 있을 것입니다. 그리고 이러한 가로지르는 관심이라는 것을 문자 그대로 횡단 관심사라고 표현하기도 합니다.
AOP는 Spring 프레임워크를 구성하는 핵심적인 기술입니다. 하지만 Spring 프레임워크를 구성하는 또다른 IoC가 AOP와 연결되어 있거나 하지는 않기 때문에 우리는 필요에 의해서 AOP를 채택할 수도 있고 채택하지 않을 수도 있습니다. 하지만 AOP는 사용에 따라 IoC를 보완하여 강력한 미들웨어 솔루션을 제공할 수 있습니다.
Aspect Oriented Programming with Spring
https://docs.spring.io/spring/docs/5.2.8.RELEASE/spring-framework-reference/core.html#aop
'Java > Spring' 카테고리의 다른 글
Spring AOP: AOP Concepts 2 (0) | 2020.07.30 |
---|---|
Spring AOP: AOP Concepts 1 (0) | 2020.07.30 |
Custom Constraint (0) | 2020.07.07 |
@Transactional Attribute (0) | 2020.06.29 |
Spring StopWatch (0) | 2020.04.28 |