brunch

You can make anything
by writing

C.S.Lewis

by eddward park Mar 14. 2021

Proxy Pattern

구조패턴중 프록시 패턴에 대해서

피그마로 직접 그린 이미지


일반적으로 프록시는 다른 무언가와 이어지는 인터페이스의 역할을 하는 클래스이다. 프록시는 어떠한 것(이를테면 네트워크 연결, 메모리 안의 커다란 객체, 파일, 또 복제할 수 없거나 수요가 많은 리소스)과도 인터페이스의 역할을 수행할 수 있다.


위키에 정의된 프록시 패턴이다.


회사를 주제로 하는 드라마에서 대리라는 직함을 들어본적이 있을거다.


간단한 업무에 해당하는 것들은 직접 처리하지만 회사에 큰 영향을 끼치는 일에 대해서는 상관에게 보고를 하게 된다.


프록시 패턴도 대리처럼 직접 일을 처리하는 경우도 있고 복잡한 일의 경우 다른곳에 전달하여 그곳에서 처리하도록 한다.



피그마로 직접 그린 이미지


페이스북, 인스타그램, 트위터등을 사용하기 위해서 회원가입이 필요하다.


회원 가입을 통해 사용자 이름과 패스워드 입력을 통해 로그인하여 해당 서비스를 이용하게 된다.


회원 가입 과정에서 프록시 개념을 옅볼 수 있다.


회원 가입 페이지 폼에서 사용자 이름과 패스워드를 입력한다.


해당 서비스의 데이터 베이스를 보호하는 프록시가 이름은 그대로 데이터 베이스에 전달하고 패스워드는 암호화 하여 데이터 베이스에 전달한다.


프록시 패턴을 사용함으로써 사용자의 직접적인 데이터베이스 접근을 막고 패스워드를 암호화 하여 해킹등으로 부터 보호할 수 있게 한다.



피그마로 직접 그린 이미지


https://github.com/fbeline/design-patterns-JS/blob/master/src/structural/proxy/proxy_es6.js


위의 이미지는 프록시 패턴의 예제 코드이다.

(this.driver.age < 18) ? "too young to drive" : new Car().drive()

이 부분이 프록시 패턴이 필요한 부분이다.


운전자의 나이가 18살이 되지 않은 경우 메시지를 통해 운전할 수 없음을 알리게 된다.


앞으로 프록시 패턴이 필요한 경우가 생긴다면 위에 설명한 내용을 떠올리도록 하자.



매거진의 이전글 Singleton Pattern
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari