의문점 공부하기/🧾공부하며

🧾 GOF의 proxy패턴 사용하는 이유가 뭘까?

아리빠 2023. 7. 27. 15:33

일부 메서드의 동작 변경할때 기존 코드는 손대지 않고 기능을 변경 할 수 있기에...!


 

가상 프록시 (Virtual Proxy):

비용이 많이 드는 객체를 필요할 때 생성하도록 하는 패턴

ex) 데이터베이스 접근은 데이터가 실제로 사용되기 전까지 프록시가 대신하는데, 이는 초기화를 지연시키는 효과를 가지며, 복사/수정에도 유용

 

리모트 프록시 (Remote Proxy):

원격 컴포넌트의 클라이언트를 네트워크 주소와 IPC 프로토콜로부터 숨기는 패턴

프록시는 요청을 네트워크를 통해 전송하고, 이 요청은 서버 측 객체에 의해 처리된다.

 

보호 프록시 (Protection Proxy):

특정 메소드로의 접근을 제어하는 패턴

프록시 메소드는 인증 토큰을 전달받고, 이 토큰이 요청한 연산을 인증하지 못하면 예외를 던진다

 

시간이 오래 걸리는 작업을 위임하는 패턴:

프록시를 사용하여 시간이 오래 걸리는 작업을 대리인에게 위임함으로써 성능을 향상시킬 수 있다.

시스템 초기화나 프린트 프로그램에서 실제 프린터를 실행하는 과정 등이 해당

캐시 프록시 (Cache Proxy):

다수의 로컬 클라이언트들이 원격 컴포넌트로부터 얻어낸 결과를 공유할 수 있는 패턴

캐시를 보관하는 프록시

 

동기화 프록시 (Synchronization Proxy):

하나의 컴포넌트에 대해 다수의 유사한 액세스들을 동기화해야 할 때 사용하는 패턴

 

사용량 통계를 계산하거나 컴포넌트 삭제를 방지하는 패턴:

컴포넌트가 삭제되지 않도록 하거나 사용량 통계를 계산해야 할 때 사용