프록시를 사용하면 기존코드를 수정하지 않고 부가기능을 추가할 수 있습니다.
프록시를 사용하기 위해서는 Config를 만들어서 Bean을 등록해 의존관계를 설정해주어야 합니다.
기존에는 스프링 Bean이 orderControllerV1Impl과 같은 실제 객체를 반환했지만
프록시를 사용하면 실제 객체 대신 프록시 객체를 Bean에 등록해주어야 합니다.
실제 객체는 스프링 Bean에 등록하지 않습니다.
왜냐하면 프록시 객체에 실제 객체를 참조하고 있고
쉽게 말해 프록시 객체 안에 실제 객체가 존재하기 때문입니다.
프록시 객체는 IOC(스프링 컨테이너)가 관리하고 힙 메모리에도 올라갑니다.
반면 실제 객체는 힙 메모리에는 올라가지만 IOC가 관리하지는 않습니다.