///////
Search
🐉

Dynamic Proxy의 CTW, PCW, LTW, RTW은 각각 어떤 시점에 개입하는 것일까요?

Proxy란?

프록시(Proxy)는 다른 객체에 대한 대리자 또는 대행자 역할을 수행하는 객체다.
원본 객체에 대한 접근을 중간에 가로채서 추가적인 작업을 수행하거나, 원본 객체에 대한 접근을 제어하거나 변경하는 데 사용된다.
최종적으로 요청을 위임받아 처리하는, 원래 요청하려고 했던 대상을 타깃이라고 한다.

Dynamic Proxy란?

리플렉션 기능을 이용하여 프록시를 동적으로 생성해주는 방식이다.
Reflection API를 통해 런타임 중, 클래스 정보에 접근하여 클래스를 원하는 대로 조작할 수 있다.
런타임에 인터페이스를 구현하는 클래스를 동적으로 생성하는 기술이며,
프록시 객체 생성을 프레임워크가 담당하기 때문에, 개발자는 프록시 클래스를 직접 작성할 필요가 없다.

LTW (Load-Time Weaving)

클래스 로딩 시점에 개입하는 방식이다.
클래스 로더가 클래스를 로딩하는 시점에 프록시 객체를 생성하여 원본 객체에 대한 호출을 가로채고 AOP 기능을 수행한다.

RTW (Runtime Weaving)

런타임 시점에 개입하는 방식이다.
애플리케이션이 실행되는 도중에 메서드 호출 등의 런타임 이벤트가 발생할 때, 프록시 객체의 동작을 삽입하여 AOP 기능을 수행한다.