AOP(Aspect Oriented Programming)
AOP? → 공통 관심사항을 분리하는 방식 공통 관심사항을 추출할 수 있는 이유에는 proxy(대리자)가 있다. 프록시는 런타임 위빙(Runtime Weaving)을 수행한다. 런타임 위빙이란, Runtime때 실제 객체를 가상의 객체로 적용시키는 과정이다. Spring에서는 이 런타임 위빙을 1) JDK Dynamic Proxy 2) CGlib Proxy 두가지 방법으로 구현한다. 두번째 방법인 CGlib(Code Generator Library)는, 이미 스프링이나 하이버네이트에 내장되어있다. DI로 주입받은 객체를 출력해보면 CGLIB이 생성한 가짜 객체가 등장함을 알 수 있다. 즉, memberService가 아닌 다른 객체가 Injection 되어있다. 타겟을 감싸는 프록시가 런타임에 생성되면,..
2022.03.02