Skip to content
On this page
On this page

AOP

Spring Framework의 AOP

  • CGLib은 클래스 프록시를 꼭 해야하는 경우 또는 강제로 설정한 경우만 만들어지고, 인터페이스를 사용하면 JDK 프록시로 만들어진다.
  • Spring AOP의 가장 크리티컬 한 단점은 Self Invocation 문제 즉, 동일 오브젝트 내의 다른 메서드를 호출할 때 AOP가 적용되지 않는다는 문제가 있다.
    • 그 외에 성능이나 스택 트레이스가 매우 길어진다는 것들은 사소한 문제이다.
  • JDK 프록시, CGLib 프록시 구현은 선택의 문제이고 둘 사이의 큰 성능 차이는 없다.
    • CGLib의 근본적인 단점은, final 클래스를 만들지 못한다는 것
    • 추가적으로는 CGLib는 네이티브 컴파일이 가장 큰 적인데, GraalVM으로 AOP를 하는데에 가장 큰 장애 포인트이다.
      • 오죽하면 스프링이 GraalVM 붙이는 작업을 시작한 이래로 CGLib 기본으로 들어가는 @Configuration을 기본으로 전환했다.
Edit this page
Last updated on 3/13/2023