패스잇
CS 기초 · 중급

Proxy 패턴은 실제 객체에 대한 접근을 제어하거나 기능을 추가할 목적으로 사용됩니다. Proxy 패턴의 동작 원리를 설명하고, Virtual Proxy, Remote Proxy, Protective Proxy의 차이점을 구체적인 예시와 함께 설명해 주세요.

힌트 · Proxy는 실제 객체를 대신하는 대리자 역할을 합니다. 각 프록시 유형은 목적에 따라 실제 객체에 대한 접근을 다르게 제어합니다.

대리자접근 제어Virtual ProxyRemote ProxyProtective Proxy

모범답안

Proxy 패턴은 실제 객체에 대한 접근을 제어하거나 부가 기능을 제공하기 위해 중간에 대리자(Proxy)를 두는 디자인 패턴입니다. 클라이언트는 Proxy를 통해 실제 객체에 접근하며, Proxy는 접근 제어, 로깅, 캐싱 등의 역할을 수행할 수 있습니다.

Virtual Proxy는 실제 객체의 생성을 지연시키는 데 사용됩니다. 예를 들어, 큰 이미지 파일을 로딩할 때, Virtual Proxy는 이미지 로딩이 완료될 때까지 placeholder 이미지를 보여주다가 로딩이 완료되면 실제 이미지를 보여줍니다.

Remote Proxy는 서로 다른 주소 공간에 존재하는 객체에 대한 접근을 제공합니다. 예를 들어, 클라이언트가 서버에 있는 객체를 사용해야 할 때, Remote Proxy는 네트워크 통신을 처리하여 클라이언트가 마치 로컬 객체를 사용하는 것처럼 보이게 합니다.

Protective Proxy는 실제 객체에 대한 접근 권한을 제어합니다. 예를 들어, 특정 사용자에게만 접근 권한이 있는 객체에 대해, Protective Proxy는 사용자의 권한을 확인하고 권한이 있는 경우에만 실제 객체에 접근을 허용합니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 디자인 패턴 면접 질문

← 디자인 패턴 면접 질문 전체 보기