디자인 패턴 - 프록시 패턴(Proxy pattern)
정의 : 어떤 객체에 대한 접근을 제어하기 위한 용도로 대리인이나 대변인에 해당하는 객체를 제공하는 패턴
프록시는 진짜 객체를 대신하는 역할을 맡는다.
클라이언트에서 실제 객체의 메소드를 호출하면 프록시가 그 호출을 중간에 가로챈다. 그리고 간접적으로 작업을 처리하게끔 만든다.
원격 프록시 :
원격 객체에 대한 접근을 제어. 네트워크 상 다른 객체 호출 등.
가상 프록시 :
생성하기 힘든 자원에 대한 접근을 제어. 객체 생성 도중 임시로 자기가 기능을 처리하다가 객체 생성이 완료된 뒤에는 진짜 객체에게 그냥 일을 넘겨준다.
예를 들어 로딩 시 객체를 생성하느라 프로그램이 아예 멈춰있지 않게끔 하는 용도로 쓰일 수 있다. 만약 이미지를 출력하는 객체가 있는데 이미지 로딩 시간이 오래 걸린다면, 그동안 그 자리에 임시 이미지를 띄운다든가.
보호 프록시 :
접근 권한이 필요한 자원에 대한 접근을 제어. 클라이언트 별로 호출할 수 있는 메소드를 제한한다거나.
방화벽, 스마트 레퍼런스, 캐싱, 동기화, 복잡도 숨김, 지연 복사(CopyOnWrite) 등.
프록시는 진짜 객체를 대신하는 역할을 맡는다.
클라이언트에서 실제 객체의 메소드를 호출하면 프록시가 그 호출을 중간에 가로챈다. 그리고 간접적으로 작업을 처리하게끔 만든다.
원격 프록시 :
원격 객체에 대한 접근을 제어. 네트워크 상 다른 객체 호출 등.
가상 프록시 :
생성하기 힘든 자원에 대한 접근을 제어. 객체 생성 도중 임시로 자기가 기능을 처리하다가 객체 생성이 완료된 뒤에는 진짜 객체에게 그냥 일을 넘겨준다.
예를 들어 로딩 시 객체를 생성하느라 프로그램이 아예 멈춰있지 않게끔 하는 용도로 쓰일 수 있다. 만약 이미지를 출력하는 객체가 있는데 이미지 로딩 시간이 오래 걸린다면, 그동안 그 자리에 임시 이미지를 띄운다든가.
보호 프록시 :
접근 권한이 필요한 자원에 대한 접근을 제어. 클라이언트 별로 호출할 수 있는 메소드를 제한한다거나.
방화벽, 스마트 레퍼런스, 캐싱, 동기화, 복잡도 숨김, 지연 복사(CopyOnWrite) 등.
댓글
댓글 쓰기