본문 바로가기
Development, Architecture/Design Pattern

[디자인 패턴] Proxy Pattern 프록시 패턴

by ggyongi 2021. 12. 1.

Proxy Pattern

Definition

프록시 패턴은 어떤 객체에 대한 접근을 제어하기 위한 용도로 대리인이나 대변인에 해당하는 객체를 제공하는 패턴입니다.

Structure

image

Types

프록시 패턴은 다양하게 활용이 될 수 있습니다.

원격 프록시는 원격 객체에 대한 접근을 제어할 수 있습니다.
가상 프록시는 생성하기 힘든 자원에 대한 접근을 제어할 수 있습니다.
보호 프록시는 접근 권한이 필요한 자원에 대한 접근을 제어할 수 있습니다.

Source Code

이번 예제에서는 가장 간단한 프록시 패턴 형태만을 살펴보겠습니다.

가장 먼저 Subject 인터페이스를 만들어줍니다. 여기선 IService가 Subject 인터페이스에 해당합니다.

package proxy_pattern;

public interface IService {
    String runSomething();
}

그리고 RealSubject 클래스를 작성합니다. 여기서는 Service 클래스에 해당합니다.

package proxy_pattern;

public class Service implements IService {

    @Override
    public String runSomething() {
        return "서비스 실행";
    }

}

그리고 프록시 클래스를 만듭니다.

package proxy_pattern;

public class Proxy implements IService {

    IService iService;

    @Override
    public String runSomething() {
        iService = new Service();
        return iService.runSomething(); // delegate  
    }

}

테스트는 다음과 같이 진행됩니다.

package proxy_pattern;

public class PatternTest {

    public static void main(String[] args) {
        Proxy proxy = new Proxy();
        System.out.println(proxy.runSomething());

    }

}

출력 결과는 다음과 같습니다.

서비스 실행

Reference

책 - 헤드퍼스트 디자인패턴

더 자세한 내용
원격 프록시 관련 참고 글 : https://gre-eny.tistory.com/253
가상 프록시, 보호 프록시 관련 글 : https://jdm.kr/blog/235

📘 비전공자 개발자 취업 성공기 시리즈

개발자가 되고 싶었던 한 비전공자의 1년 4개월 이야기
막막했던 시작부터 좌절, 그리고 합격까지의 여정을 기록했습니다

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글