구조패턴중 프록시 패턴에 대해서
일반적으로 프록시는 다른 무언가와 이어지는 인터페이스의 역할을 하는 클래스이다. 프록시는 어떠한 것(이를테면 네트워크 연결, 메모리 안의 커다란 객체, 파일, 또 복제할 수 없거나 수요가 많은 리소스)과도 인터페이스의 역할을 수행할 수 있다.
위키에 정의된 프록시 패턴이다.
회사를 주제로 하는 드라마에서 대리라는 직함을 들어본적이 있을거다.
간단한 업무에 해당하는 것들은 직접 처리하지만 회사에 큰 영향을 끼치는 일에 대해서는 상관에게 보고를 하게 된다.
프록시 패턴도 대리처럼 직접 일을 처리하는 경우도 있고 복잡한 일의 경우 다른곳에 전달하여 그곳에서 처리하도록 한다.
페이스북, 인스타그램, 트위터등을 사용하기 위해서 회원가입이 필요하다.
회원 가입을 통해 사용자 이름과 패스워드 입력을 통해 로그인하여 해당 서비스를 이용하게 된다.
회원 가입 과정에서 프록시 개념을 옅볼 수 있다.
회원 가입 페이지 폼에서 사용자 이름과 패스워드를 입력한다.
해당 서비스의 데이터 베이스를 보호하는 프록시가 이름은 그대로 데이터 베이스에 전달하고 패스워드는 암호화 하여 데이터 베이스에 전달한다.
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살이 되지 않은 경우 메시지를 통해 운전할 수 없음을 알리게 된다.