반응형

원격지 프락시 5

[C#] 프락시 패턴(Proxy Pattern) 원격지 프락시 - 구현

12. 프락시 패턴(Proxy Pattern) - 원격지 프락시 [그림] 프락시 패턴(Proxy Pattern) 원격지 프락시 클래스 다이어그램 12. 4 구현 프락시 패턴 중에 원격지 프락시에 대한 예제 프로그램을 구현하는 순서는 서버 측을 구현한 후에 클라이언트 측을 구현할게요. 서버 측은 ITake, ICamera, ListenServer와 Stub 순으로 구현해 봅시다. 12.4.1 ITake와 Camera ITake에서는 단순히 TakeAPicture, ChangeMode, GetMode 메서드를 약속합시다. ▶ ITake.cs using System; namespace RemoteProxy { class Camera:ITake { bool mode = false; //true: 수동 모드, f..

[C#] 프락시 패턴(Proxy Pattern) 원격지 프락시 - 설계

12. 프락시 패턴(Proxy Pattern) - 원격지 프락시 12. 3 디자인 프락시 패턴 중에 원격지 프락시를 설명하기 위한 예제 프로그램은 서버 측과 클라이언트 측이 필요합니다. 서버 측에서는 실제 개체인 Camera 개체 외에도 소켓 통신에서 클라이언트 연결을 기다리기 위한 ListenServer와 실제 소켓 통신을 수행하여 클라이언트 측 요청에 맞게 Camera를 제어하는 Stub으로 구성할 것입니다. 그리고 클라이언트 측에는 서버 측에 있는 Camera와 같은 방법으로 사용할 수 있게 RemoteController를 제공할 것입니다. Camera와 RemoteController는 ITake와 실현 관계를 갖게 할 것입니다. ITakce에서는 필요한 기능에 대해 약속하고 Camera와 Remo..

[C#] 프락시 패턴(Proxy Pattern) 원격지 프락시 - 개요, 시나리오

12. 프락시 패턴(Proxy Pattern) - 원격지 프락시 12.1 개요 프락시 패턴은 사용하는 개체를 통해 실제 개체를 제어하는 패턴입니다. 프락시 패턴은 사용하는 목적과 방법에 따라 원격지 프락시와 가상 프락시, 보호용 프락시, 스마트 참조자로 구분할 수 있습니다. 원격지 프락시는 사용할 실제 개체가 클라이언트와 다른 위치에 있을 때 원격지에 있는 개체처럼 사용할 수 있는 프락시를 말합니다. 가상 프락시는 사용할 실제 개체의 특정 행위가 많은 시간이 들 때 비 동기적으로 수행할 수 있게하여 사용자가 작업이 완료되는 것을 기다리지 않게 해 주는 프락시입니다. 보호용 프락시는 개체의 기능을 권한에 따라 사용하는 수준을 다르게 해 주는 프락시입니다. 스마트 참조자는 여러 곳에서 사용하는 개체가 있다면..

[소프트웨어 설계 패턴 C#] 12. 프락시 패턴(Proxy Pattern) - 원격지 프락시

12. 프락시 패턴(Proxy Pattern) - 원격지 프락시 프락시 패턴은 사용하는 개체를 통해 실제 개체를 제어하는 패턴입니다. 프락시 패턴은 사용하는 목적과 방법에 따라 원격지 프락시와 가상 프락시, 보호용 프락시, 스마트 참조자로 구분할 수 있습니다. 원격지 프락시는 사용할 실제 개체가 클라이언트와 다른 위치에 있을 때 원격지에 있는 개체처럼 사용할 수 있는 프락시를 말합니다. 가상 프락시는 사용할 실제 개체의 특정 행위가 많은 시간이 들 때 비 동기적으로 수행할 수 있게하여 사용자가 작업이 완료되는 것을 기다리지 않게 해 주는 프락시입니다. 보호용 프락시는 개체의 기능을 권한에 따라 사용하는 수준을 다르게 해 주는 프락시입니다. 스마트 참조자는 여러 곳에서 사용하는 개체가 있다면 실제 개체를 ..

12. 프락시 패턴(Proxy Pattern) - 원격지 프락시 [Escort GoF의 디자인 패턴]

12. 프락시 패턴(Proxy Pattern) - 원격지 프락시 12.1 개요 프락시 패턴은 사용자가 사용하는 개체를 통해 실제 개체를 제어하게 하는 패턴입니다. 프락시 패턴을 사용하는 경우에는 제어하기 위한 개체가 사용자와 위치가 다른 경우에 사용자가 원격지에 있는 개체에 접근하기 쉽게 할 경우가 있습니다(원격지 프락시). 그리고 실제 개체의 특정 행위를 호출할 때 해당 작업이 완료되기를 기다리는 비용이 크다면 작업 요청을 대행하는 프락시 개체를 두어 사용자가 작업이 완료되기를 기다리지 않게 할 수 있습니다(가상 프락시). 이 외에도 권한에 따라 사용할 수 있는 수준이 다른 실 개체를 보호하기 위해 프락시 개체를 제공하는 방법(보호용 프락시)과 여러 곳에서 하나의 개체를 사용해야 한다면 참조 카운터를 ..

반응형