작성
·
119
0
강의에서 프록시 팩토리에 여러 어드바이저 붙여 프록시 생성을 하나만 하는게 비용 효율적이기 때문이다.
라고 이해했습니다.
그러면 프록시 팩토리도 하나만 쓰는건가요?
target이 되는 bean들에 따라 아래 그림의 A 프록시가 프록시 적용이 필요한 bean개수 만큼 생길 것 같은데,
target이 다 다른데도 불구하고 프록시 하나만 Bean으로 등록되는것이 맞는지 궁금합니다.
프록시 적용된 객체들은 각각 CGLIB 붙어서 나오던데, 이게 다 하나의 프록시 라는 것인가요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
dbdomino님, 문의하신 내용에 따르면 프록시 팩토리가 여러 개의 어드바이저를 붙여 프록시를 생성하는 과정에서 궁금증이 있으신 것 같습니다.
Spring에서는 대상이 되는 각 bean에 대하여 필요에 따라 독립적인 프록시를 생성할 수 있습니다. 이는 AOP의 개념과 관련이 있으며, 각 프록시는 target bean과 연관된 어드바이저(advisor)에 의해 각각의 관심사(aspect)를 적용받게 됩니다. 즉, target이 다른 각각의 bean에 대해 각기 다른 프록시 객체가 생성되며, 이들 각각은 하나의 프록시 객체로 관리됩니다. 여러 어드바이져, 즉 관심사가 동일한 bean에 대해서는 하나의 프록시를 통해서 여러 개의 조언(advice)을 적용할 수 있습니다.
CGLIB를 사용해 동적으로 프록시 클래스가 생성되는데, 각 target bean마다 별도의 프록시가 생성되어 관리됩니다. 즉, 하나의 프록시 팩토리가 여러 프록시 객체를 생성하긴 하지만 프록시 팩토리 자체가 단 하나만 존재하는 것은 아닙니다. 실제 어플리케이션에서는 여러 프록시를 필요에 따라 생성하며, 이들은 각각의 bean을 위한 프록시 서비스 역할을 수행하게 됩니다.
이미지에 대한 설명으로는 AOP를 시각적으로 설명하는 다이어그램이 있는 것으로 보이며, 이는 스프링 컨테이너가 AOP를 구현하는 방식을 나타내는 것으로 해석됩니다. 포인트컷(Pointcut)과 어드바이스(Advice) 같은 AOP 핵심 용어들이 다이어그램에 포함되어 있어, 이 다이어그램은 AOP의 개념이 실제로 어떻게 동작하는지 이해하는데 도움을 줍니다.
답변이 dbdomino님의 궁금증을 해소하는데 도움이 되었으면 좋겠습니다.