컴퓨터 공학 & 통신

[개념 정리/디자인 패턴] 구조 패턴 - 프록시 패턴

왈왈디 2023. 7. 5. 15:09
728x90

프록시 패턴

프록시 패턴이란 객체가 어떤 대상 객체에 접근하기 전,

그 접근에 대한 흐름을 가로채서

해당 접근을 필터링하거나 수정하는 등의 역할을 하는 계층이 있는 디자인 패턴이다.

 

대표적인 예시로는 서버 앞에 두어 캐싱, 로깅 등에 활용하는 프록시 서버가 있다.

프록시 서버

https 프록시 서버를 사용하여 내 서버를 https로 바꾸는 수고를 덜 수 있다.

DDOS 공격을 필터링할 때에도 프록시 서버를 사용한다.

 

일반적으로 프록시 서버로 cloudfare를 두어

불필요한 트래픽, 또는 공격적인 트래픽 필터링한다.

 

아래는 프록시 패턴을 사용하는 자바스크립트 예시 코드이다.

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.민수 = "성인";

// 형규가 [미성년자] >> [성인] (으)로 변경되었습니다

 

참고: inflearn 강의 'CS 지식의 정석 - 큰돌

728x90