Skip to Content
Suffering builds character
아카이브21.spring Aop프록시 패턴1.프록시 패턴

1.프록시 패턴

1. Proxy

Proxy의 기본 개념은 두 대상 사이에 껴서 대리자(Proxy) 역할을 수행하는 개념이자 객체

코드를 작성하는 맥락에서는 하나의 객체로 표현될 수 있고, 서버와 클라이언트 맥락에서는 하나의 별도의 서버로 표현될 수도 있음

1-1. Client

브라우저나 React 애플리케이션이 아닌 Java 내에서 main()와 같이 어떤 클래스를 실제로 호출하여 사용하는 곳(Caller)

1-2. Proxy

핵심 기능을 담당하는 인터페이스를 구현한 것처럼 가장하여 Client에서 Proxy 자신을 거쳐서 핵심 기능을 사용하도록 유도

Client는 핵심 기능을 호출한 것으로 생각하지만, Proxy 객체가 중간에 끼어들어 먼저 동작하는 구조

1-3. Target

실제 핵심 기능을 담당하는 대상 객체, Target Object라고함

2. Proxy의 특징

2-1. Target 객체와 같은 Interface를 구현

Client 입장에서는 별도의 코드의 변경 없이 핵심 기능을 선언한 Interface를 통해 호출하지만 실제로는 Proxy가 먼저 동작해야 하기 때문에 Target 객체가 구현한 핵심 기능 Interface를 Proxy 객체도 동일하게 구현해야함

결과적으로 Client는 Proxy가 아닌 Target 객체를 호출하고 있다고 생각하게 되어 Proxy 객체의 존재를 알지 못함

2-2. Target 객체를 제어할 수 있는 위치에 있음

실제 Target 객체가 호출되기 전에 먼저 호출되어 동작하기 때문에 Target 객체를 제어할 수 있는 위치에 있다고 볼 수 있음

Last updated on