작심삼일

15주차. Proxy 본문

스터디/디자인 패턴

15주차. Proxy

yun_s 2021. 9. 30. 21:16
728x90
반응형

디자인 패턴을 모르는 사람이 스터디를 하며 적은 것이라 틀린 부분이 있을 수 있습니다.

틀린 부분은 알려주시면 감사하겠습니다.

어떤 패턴인가

다른 객체에 대한 접근을 제어하기 위한 대리자 또는 자리채움자 역할을 하는 객체를 둡니다.

 

Remote proxy: 객체가 다른 주소 공간에 존재한다는 사실을 숨길 수 있습니다.

Virtual proxy: 요구에 따라 객체를 생성하는 등 처리를 최적화할 수 있습니다.

Protection proxy & Smart reference: 객체가 접근할 때마다 추가 관리를 책임집니다.

                                                            객체를 생성할 것인지 삭제할 것인지를 관리합니다.


어떻게 쓰는가

Proxy: 실제로 참조할 대상에 대한 참조자를 관리합니다.

           Subject와 동일한 인터페이스를 제공하여 실제 대상을 대체할 수 있어야 합니다.

           실제 대상에 대한 접근을 제어하고 실제 대상의 생성과 삭제를 책임집니다.

           Proxy의 종류에 따라서 다음을 수행합니다.

            - Remote proxy: 요청 메시지와 인자를 인코딩하여 이를 다른 주소 공간에 있는 실제 대상에게 전달

            - Virtual proxy: 실제 대상에 대한 추가적인 정보를 보유하여 실제 접근을 지연할 수 있도록 해야 함

            - Protection proxy: 요청한 대상이 실제 요청할 수 있는 권한이 있는 지 확인

Subject: RealSubject와 Proxy에 공통적인 인터페이스를 정의하여,

               RealSubject가 요청되는 곳에 Proxy를 사용할 수 있게 합니다.

RealSubject: 프록시가 대표하는 실제 객체입니다.


어디서 활용되는가

이는 책의 내용 (p. 281)을 그대로 가져왔다.

1. Remote proxy: 서로 다른 주소 공간에 존재하는 객체를 가리키는 대표 객체로, 로컬 환경에 위치합니다.

2. Virtual proxy: 요청이 있을 때만 필요한 고비용 객체를 생성합니다.

3. Protection proxy: 원래 객체에 대한 실제 접근을 제어합니다.

                                  이는 객체별로 접근 제어 권한이 다를 때 유용하게 사용할 수 있습니다.

4. Smart reference: 원시 포인터의 대체용 객체로, 실제 객체에 접근이 일어날 때 추가적인 행동을 수행합니다.


My Opinion

책에 '포인터'라고 설명되어있던 부분이 있었다. 포인터라고 생각을 하니까 이해가 쉬웠다.

메모리를 많이 잡지 않거나 사용자로부터 내부를 보호하고 싶을 때 사용할 것 같다.

728x90
반응형

'스터디 > 디자인 패턴' 카테고리의 다른 글

14주차-2. Bridge  (0) 2021.09.23
14주차-1. Observer  (0) 2021.09.23
13주차. Mediator  (0) 2021.09.09
12주차. Facade  (0) 2021.08.18
11주차. Builder  (0) 2021.08.11
Comments