프록시 패턴

고장난 고양이·2022년 7월 8일
0

개발지식

목록 보기
8/25
post-custom-banner

프록시 패턴이란?

프록시 패턴이은 대상 객체에 접근하기 전 그 접근에 대한 흐름을 가로채 다ㅐ상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴입니다.

프록시 패턴 종류

가상프록시

꼭 필요로 하는 시점까지 객체의 생성을 연기하고, 해당 객체가 생성된 것 처럼 동작하도록 만들고 싶을 때 사용하는 패턴이다. 프록시 클래스에서 작은 단위의 작업을 처리하고 리소스가 많이 요구되는 작업들이 필요할 경우만 주체 클래스를 사용하도록 구현한다.

원격프록시

원격 객체에 대한 접근을 제어 로컬 환경에 존재하며, 원격 객체에 대한 대변자 역할을 하는 객체 서로 다른 주소 공간에 있는 객체에 대해 마치 같은 주소 공간에 있는 것 처럼 동작하게 하는 패턴이다.(예: Google Docs)

보호프록시

주체 클래스에 대한 접근을 제어하기 위한 경우에 객체에 대한 접근 권한을 제어하거나 객체마다 접근 권한을 달리하고 싶을 경우 사용하는 패턴으로 프록시 클래스에서 클라이언트가 주체 클래스에 대한 접근을 허용할지 말지 결정하도록 할 수 있다.

프록시 패턴의 장단점

프록시 패턴 장점

  1. 사이즈가 큰 객체(ex : 이미지)가 로딩되기 전에도 프록시를 통해 참조를 할 수 있다.

  2. 실제 객체의 public, protected 메소드들을 숨기고 인터페이스를 통해 노출시킬 수 있다.

  3. 로컬에 있지 않고 떨어져 있는 객체를 사용할 수 있다.

  4. 원래 객체의 접근에 대해서 사전처리를 할 수 있다.

프록시 패턴 단점

  1. 객체를 생성할때 한단계를 거치게 되므로, 빈번한 객체 생성이 필요한 경우 성능이 저하될 수 있다.

  2. 프록시 내부에서 객체 생성을 위해 스레드가 생성, 동기화가 구현되야 하는 경우 성능이 저하될 수 있다.

  3. 로직이 난해해져 가독성이 떨어질 수 있다.

참고
https://coding-factory.tistory.com/711
https://velog.io/@newtownboy/%EB%94%94%EC%9E%90%EC%9D%B8%ED%8C%A8%ED%84%B4-%ED%94%84%EB%A1%9D%EC%8B%9C%ED%8C%A8%ED%84%B4Proxy-Pattern

profile
개발새발X발일지
post-custom-banner

0개의 댓글