프록시는 클라이언트가 사용하는 실제 서비스 객체를 대신하는 객체를 제공하는 구조 디자인 패턴입니다. 프록시는 클라이언트 요청을 수신하고, 일부 작업(접근 제어, 캐싱 등)을 수행한 다음 요청을 서비스 객체에 전달합니다.
프록시 객체는 서비스 객체와 같은 인터페이스를 가지기 때문에 클라이언트에 전달되면 실제 객체와 상호교환이 가능합니다.
개념적인 예시
이 예시는 프록시 디자인 패턴의 구조를 보여주고 다음 질문에 중점을 둡니다:
- 패턴은 어떤 클래스들로 구성되어 있나요?
- 이 클래스들은 어떤 역할을 하나요?
- 패턴의 요소들은 어떻게 서로 연관되어 있나요?
이 패턴의 구조를 배우면 실제 PHP 사용 사례를 기반으로 하는 다음 예시를 더욱 쉽게 이해할 수 있을 것입니다.
index.php: 개념적인 예시
Output.txt: 실행 결과
실제 사례 예시
프록시들이 사용될 수 있는 방법은 무수히 많습니다: 캐싱, 로깅, 접근 제한, 초기화 지연 등. 이 예시는 프록시 패턴이 다운로더 객체의 결과를 캐싱하여 해당 객체의 성능을 향상하는 방법을 보여줍니다.
index.php: 실제 사례 예시
Output.txt: 실행 결과