프록시 패턴을 사용해 createValidatedUser(user) 함수를 구현하세요.
프록시 패턴은 대상 객체에 대한 접근을 가로채(intercept) 검증, 로깅, 권한 제어 등을 수행할 수 있게 합니다. 원본 객체를 직접 변경하지 않고도 동작을 확장할 수 있습니다.
createValidatedUser(user)는 다음 규칙을 강제하는 프록시 객체를 반환해야 합니다:
age를 양의 정수가 아닌 값(0, 음수, 정수가 아닌 숫자)으로 설정 시 예외를 던집니다name을 빈 문자열로 설정 시 예외를 던집니다undefined를 반환합니다 (C++/Java/Kotlin의 정적 타입 언어에서는 정의된 게터만 반환)const user = createValidatedUser({ name: 'Alice', age: 30 });
user.age = 31; // OK
user.name = 'Bob'; // OK
user.age = -1; // throw!
user.name = ''; // throw!
console.log(user.unknown); // undefined
Proxy + handler / Java: 래퍼 클래스 + setter / Kotlin: 래퍼 + setter / C++: 래퍼 클래스 + setter