사용자가 프록시 패턴 객체를 통해서 대상 객체로 들어간다 .

Untitled

대상 객체(Subject)에 접근하기 전 그 접근에 대한 흐름을 가로채 대상 객체 앞단의 인터페이스 역할을 하는 디자인 패턴

이를 통해 객체의 속성, 변환 등을 보완하며 보안, 데이터 검증, 캐싱, 로깅 에 사용합니다.

function createReactiveObject(target, callback) {
		const proxy = new Proxy(target, {
				set(obj, prop, value) {
						if (value !== obj[prop]){
								const prev = obj[prop]
								obj[prop] = value
								callback(`${prop}가 [${prev}] >> [${value}] 로 변경되었습니다.`)
						}
						return true
				}
		})
		return proxy
}
const a = {
		"형규": "솔로"
}

const b = createReactiveObject(a, console.log)
b.형규 = "솔로"
b.형규 = "커플"
// 형규가 [솔로] >> [커플] 로 변경되었습니다.

createReactiveObject 함수가 target 을 전달 받았을 때 바로 if 문 내의 로직을 수행하는 것이 아니라 proxy가 가로채서 수행한다.

대표적으로 프록시 서버를 예로 들 수 있습니다.

프록시 서버

프록시 서버(proxy server)는 서버와 클라이언트 사이에서 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템이나 응용 프로그램을 가리킵니다.

Untitled

프록시 서버로 쓰는 CloudFlare