Spring AOP 에서는 프록시 기술로 JDK Proxy 와 CGLIB 를 제공하고 있는데, 이 둘에 대한 비교 글을 작성하고자 한다.
1. JDK Proxy
- 인터페이스 기반
> 프록시를 생성하려면 반드시 대상 객체가 구현한 인터페이스가 있어야 함
- InvocationHandler.invoke() 메서드를 통해 인터페이스의 메서드 호출을 처리
2. CGLIB
- 클래스 기반
> 대상 클래스의 상속을 통해 프록시를 생성하고, 메서드를 오버라이딩하여 동작 추가
> 인터페이스를 구현하지 않은 클래스도 프록시로 사용할 수 있음
- 내부적으로 MethodInterceptor 를 구현하여 메서드 호출을 가로채고 처리
- 대상 클래스나 메서드가 final 이면 프록시 생성 불가
3. 기타
- JDK Proxy 가 CGLIB 보다 상대적으로 가볍고 사용이 간단함
'IT > Spring' 카테고리의 다른 글
[Spring] AOP (0) | 2025.01.06 |
---|---|
[Spring] Reflection (1) | 2025.01.03 |
[Spring] Spring Batch 도입기 (1) | 2025.01.02 |
[Spring] WebFlux 테스트 코드 작성 (0) | 2024.11.27 |
[Spring] Spring Framework vs. Spring Boot (2) | 2024.11.14 |