Trustworthy Proxies: Virtualizing Objects with Invariants
Source
Evernote/Papers/Trustworthy Proxies Virtualizing Objects with Invariants.md
Summary
이 논문은 객체 지향 언어에서 프록시(Proxy)와 언어 강제 불변식(Invariants)이 상호작용하는 문제를 다룹니다. 특히 ECMAScript 6(ES6) 프록시 API 설계의 기초가 된 연구로, 프록시가 타겟 객체를 가상화하더라도 언어 수준에서 불변식(예: immutable fields)이 여전히 강제되도록 하는 메커니즘을 제시합니다. 이를 통해 클라이언트는 프록시의 신뢰성에 의존하지 않고도 언어가 보장하는 불변식을 안전하게 사용할 수 있습니다.
Key Points
- 프록시는 타겟 객체를 감싸거나 모방하는 플레이스홀더 객체로, 표현과 동작이 원본과 다를 수 있음.
- 객체 지향 언어는 immutable fields 등 언어 강제 불변식을 제공하며, 클라이언트는 이를 맹신할 수 있음.
- 프록시가 불변식을 가진 객체를 대체할 때, 해당 불변식이 언어에 의해 강제되는지 프록시 구현체에 의존하는지 명확히 할 필요성 제기.
- JavaScript 유사 언어 컨텍스트에서, 프록시가 객체를 가상화하되 불변식은 언어가 계속 강제하도록 하는 Proxy API 설계 제안.
- 이 설계는 ECMAScript 6(ES6)의 Proxy 기능 구현의 이론적 기반이 됨.