IT/Spring

[Spring] JDK Proxy vs. CGLIB

어린이개발자 2025. 1. 5. 22:04

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