AOP

부가 기능을 핵심 기능으로 분리하기 위해 등장한 기술. 부가 기능을 분리함으로써 해당 로직을 재사용할 수 있고, 핵심 기능은 핵심 역할에만 집중할 수 있도록 도와줌

Spring의 AOP는 프록시 방식으로 동작. Spring에서 AOP를 활용하기 위해서는 @EnableAspectJAutoProxy 어노테이션을 붙여줘야하며, 이에 대한 옵션으로 proxyTargetClass가 있음.

Proxy 구현체

스프링의 AOP 구현

스프링의 ProxyFactoryBean

https://velog.io/@hanblueblue/Spring-Proxy-2-Spring-with-proxy

@Transactional 동작 원리