본문 바로가기
개발/ETC

디자인 패턴 (3)

by devhooney 2023. 1. 4.
728x90

1. 프록시 패턴과 프록시 서버

- 프록시 패턴

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

객체의 속성, 변환 등을 보완하며 보안, 데이터 검증, 캐싱, 로깅에 사용

이는 프록시 객체로 쓰이기도 하지만 프록시 서버로도 활용

 

* 프록시 서버에서의 캐싱:

캐시 안에 정보를 담아두고, 캐시 안에 있는 정보를 요구하는 요청에 대해 다시 저 멀리 있는 원격 서버에 요청하지 않고 캐시 안에 있는 데이터를 활용하는 것을 말한다. -> 불필요하게 외부와 연결하지 않기 때문에 트래픽을 줄일 수 있다는 장점이 있다.

 

- 프록시 서버

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

 

- 프록시 서버로 쓰는 nginx

nginx는 비동기 이벤트 기반의 구조와 다수의 연결을 효과적으로 처리 가능한 웹 서버

서버 앞단의 프록시 서버로 활용 -> 익명 사용자의 직접적인 서버로의 접근을 차단, 간접적으로 한 단계를 더 거침으로써 보안성을 강화 가능, 실제 포트를 숨길 수 있음

 

 

 

728x90

 

 

 

 

2. 이터레이터 패턴

이터레이터 패턴은 이터레이터를 사용해 컬렉션 요소에 접근하는 디자인 패턴

순회할 수 있는 여러 가지 자료형의 구조와는 상관없이 이터레이터라는 하나의 인터페이스로 순회가 가능

const mp = new Map();
const st = new Set();

mp.set('a', 1);
mp.set('b', 2);
mp.set('c', 3);

st.add(1);
st.add(2);
st.add(3);

for (let a of mp) {
	console.log(a);
}

for (let a of st) {
	console.log(a);
}


// ['a', 1]
// ['b', 2]
// ['c', 3]

// 1
// 2
// 3

- map과 set은 다른 구조이지만 for a of b 라는 이터레이터 프로토콜을 통해 순회가 가능

 

* 이터레이터 프로토콜:

이터러블한 객체들을 순회할 때 쓰이는 규칙

 

* 이터러블한 객체

반복 가능한 객체로 배열을 일반화한 객체

 

 

 

 

3. 노출모듈 패턴

노출모듈 패턴은 즉시 실행 함수를 통해 private, public 같은 접근 제어자를 만드는 패턴

 

* public:

클래스에 정의된 함수에서 접근 가능하며 자식 클래스와 외부 클래스에서 접근 가능한 범위

 

* protected:

클래스에 정의된 함수에서 접근 가능, 자식 클래스에서 접근 가능하지만 외부 클래스에서 접근 불가능한 범위

 

* private:

클래스에 정의된 함수에서 접근 가능하지만 자식 클래스와 외부 클래스에서 접근 불가능한 범위

 

* 즉시 실행 함수:

함수를 정의하자마자 바로 호출하는 함수. 초기화 코드, 라이브러리 내 전역 변수의 충돌 방지 등에 사용

 

 

 

 

 

 

- 참고

http://www.yes24.com/Product/Goods/108887922

728x90

'개발 > ETC' 카테고리의 다른 글

프로세스와 스레드  (0) 2023.01.29
디자인 패턴 (4)  (0) 2023.01.06
디자인 패턴 (2)  (0) 2023.01.03
디자인 패턴 (1)  (0) 2023.01.02
공공데이터 API 사용해보기  (0) 2022.08.25