Proxy는 가로채고 Reflect는 기본 동작을 보존한다

Proxy는 객체 앞의 관문이고 Reflect는 관문 안에서 원래 객체 연산을 표준 방식으로 이어 주는 도구다.

구간역할좋은 사용깨지기 쉬운 지점
target원본 객체와 prototype 규칙 보관실제 데이터는 target에 둠proxy와 target을 섞어 전달
handler필요한 trap만 정의get/set/has/delete 감시모든 연산을 무리하게 가로챔
Reflect원래 내부 연산에 위임receiver, boolean 반환 규칙 보존trap 안에서 proxy를 다시 호출
invariant언어 불변식 우선non-configurable 규칙 확인숨길 수 없는 속성을 숨기려 함

Proxy 코드는 “무엇을 감시할지”와 “기본 동작을 어떻게 유지할지”를 분리해야 안전하다.