November 22, 2021
Proxy
는 특정 객체를 감싸 프로퍼티 읽기, 쓰기와 같은 객체에 가해지는 작업을 중간에서 가로채는 객체로, 가로채진 작업은 Proxy
자체에서 처리되기도 하고, 원래 객체가 처리하도록 그대로 전달되기도 합니다.
프락시는 다양한 라이브러리와 몇몇 브라우저 프레임워크에서 사용되고 있습니다. 이번 챕터에선 프락시를 어떻게 실무에 적용할 수 있을지 다양한 예제를 통해 살펴보겠습니다.
문법:
let proxy = new Proxy(target, handler)
target
– 감싸게 될 객체로, 함수를 포함한 모든 객체가 가능합니다.handler
– 동작을 가로채는 메서드인 '트랩(trap)'이 담긴 객체로, 여기서 프락시를 설정합니다(예시: get
트랩은 target
의 프로퍼티를 읽을 때, set
트랩은 target
의 프로퍼티를 쓸 때 활성화됨).이해하기 어려워서 TOAST UI 참고... #
Proxy
란프록시 객체(Proxy object)는 대상 객체(Target object) 대신 사용된다. 대상 객체를 직접 사용하는 대신, 프록시 객체가 사용되며 각 작업을 대상 객체로 전달하고 결과를 다시 코드로 돌려준다.
이러한 방식을 통해 프록시 객체는 JavaScript의 기본적인 명령에 대한 동작을 사용자 정의가 가능하도록 한다. 객체 자체가 처리하는 특정 명령을 재정의할 수 있게 되는 것이다. 이런 명령의 종류는 속성 검색, 접근, 할당, 열거, 함수 호출 등이 대표적이다.
new Proxy(target, handler);