본문 바로가기

Proxy

(2)
[Java] Dynamic Proxy란? n개의 클래스에 대해 n개의 프록시 클래스를 만들어주어야 할까? 부가적인 기능을 추상화하여 공통 코드로 만들어야 한다. 서로 다른 클래스의 Proxy 클래스 구현을 추상화해야 한다. 마치며 이전 글 Proxy란?에서 Proxy를 만들어 구현 코드를 수정하지 않고 부가적인 기능을 추가시켰다. 부가적인 기능을 추가시키고 싶은 클래스의 Proxy 클래스를 직접 만들어 클라이언트가 proxy 클래스를 호출하도록 했다. 이 때 이런 문제가 있었다. 'n개의 클래스에 대해 n개의 프록시 클래스를 만들어주어야 할까?' 이 문제를 해결하기 위해 문제를 추상화해보자. 1. 부가적인 기능을 추상화하여 공통 코드로 만들어야 한다. (단순 Proxy 클래스 구현에서는 모든 Proxy 기능에 부가 기능 코드를 구현해야 했다) ..
[Java] Proxy란? Proxy와 @Transactional '구현 코드를 수정하지 않고 부가적인 기능을 어떻게 수행할 것인가?' 'n개의 클래스에 대해 n개의 프록시 클래스를 만들어주어야 할까?' 다음 글 - Dynamic Proxy Proxy란 개념을 공부하게 된 계기는 Spring에서 @Transactional annotation이 어떻게 동작하는가를 알기 위해서였다. @Transactional annotation이 붙은 코드를 열심히 디버깅하여 따라가보니 다음과 같은 흐름을 볼 수 있었다. 클래스와 메서드에 집중하기 위해 메서드 파라미터나 기타 시그니처 코드들은 생략하였다. package org.springframework.aop.framework; class CglibAopProxy implements AopPr..