프런트엔드/디자인 패턴 31

Proxy, Reverse Proxy, Load Balancer 의 차이

웹 개발을 하시는 분들이라면 Proxy, Reverse Proxy, Load Balancer 라는 용어를 들어보셨을 것입니다. 하지만 이들이 무엇을 의미하고 어떤 기능을 하는지 정확하게 알고 계신가요? 저는 이번 글에서 이 세 가지 개념에 대해 쉽고 간단하게 설명해드리고자 합니다. 그리고 이들이 어떤 장점과 단점을 가지고 있으며 어떤 상황에서 사용하면 좋은지도 함께 알아보겠습니다. 이 글을 읽고 나면 Proxy, Reverse Proxy, Load Balancer 의 차이를 명확하게 파악하실 수 있을 것입니다. Proxy 란 무엇인가? Proxy 는 사용자와 인터넷 사이에 위치하여 중개자 역할을 하는 것입니다. Proxy 를 사용하면 사용자의 실제 IP 주소를 숨기고 Proxy 서버의 IP 주소를 통해 ..

[11일차] 방문자 | 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴

출처: 에릭 감마 , 리처드 헬름 , 랄프 존슨 , 존 블리시디스. 『Gof의 디자인 패턴』. 김정아(역). 프로텍미디어, 2015. [11일차] 방문자(Visitor) 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴 타입스크립트로 설명하는 GoF 디자인 패턴의 행동 패턴 11일만에 끝내기 챌린지 방문자란? 객체 구조를 이루는 원소에 대해 수행할 연산을 표현하는 패턴으로, 연산을 적용할 원소의 클래스를 변경하지 않고도 새로운 연산을 정의할 수 있게 한다. 활용성 객체 구조를 정의한 클래스는 거의 변하지 않지만, 전체 구조에 걸쳐 새로운 연산을 추가하고 싶을 때 구조 및 구현 interface ElementClass { accept(visitor: Visitor): void } class Con..

[10일차] 탬플릿 메소드 | 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴

출처: 에릭 감마 , 리처드 헬름 , 랄프 존슨 , 존 블리시디스. 『Gof의 디자인 패턴』. 김정아(역). 프로텍미디어, 2015. [10일차] 탬플릿 메소드(Template Method) 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴 타입스크립트로 설명하는 GoF 디자인 패턴의 행동 패턴 11일만에 끝내기 챌린지 탬플릿 메소드란? 객체의 연산에는 알고리즘의 뼈대만을 정의하고 각 단계에서 수행할 구체적 처리는 서브클래스쪽으로 미루는 패턴이다. 알고리즘의 구조 자체는 그대로 놔둔 채 알고리즘 각 단계의 처리를 서브클래스에서 재정의할 수 있게 한다. 활용성 1) 어떤 한 알고리즘을 이루는 부분 중 변하지 않는 부분을 한 번 정의해 놓고 다양해질 수 있는 부분은 서브클래스에서 정의할 수 있도록 ..

[9일차] 전략 | 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴

출처: 에릭 감마 , 리처드 헬름 , 랄프 존슨 , 존 블리시디스. 『Gof의 디자인 패턴』. 김정아(역). 프로텍미디어, 2015. [9일차] 전략(Strategy) 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴 타입스크립트로 설명하는 GoF 디자인 패턴의 행동 패턴 11일만에 끝내기 챌린지 전략이란? 동일 계열의 알고리즘군을 정의하고, 각각의 알고리즘을 캡슐화하여, 이들을 상호교환이 가능하도록 만드는 패턴이다. 알고리즘을 사용하는 사용자와 상관없이 독립적으로 알고리즘을 다양하게 변경할 수 있게 한다. 활용성 1) 하나의 클래스가 많은 행동을 정의하고, 이런 행동들이 그 클래스의 연산안에서 복잡한 다중 조건문의 모습을 취할 때 2) 행동들이 조금씩 다를 뿐 개념적으로 관련된 많은 클래스들이..

[8일차] 상태 | 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴

출처: 에릭 감마 , 리처드 헬름 , 랄프 존슨 , 존 블리시디스. 『Gof의 디자인 패턴』. 김정아(역). 프로텍미디어, 2015. [8일차] 상태(State) 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴 타입스크립트로 설명하는 GoF 디자인 패턴의 행동 패턴 11일만에 끝내기 챌린지 상태란? 객체의 내부 상태에 따라 스스로 행동을 변경할 수 있게끔 허가하는 패턴으로, 이렇게 하면 객체를 마치 자신의 클래스를 바꾸는 것 처럼 보인다. 활용성 1) 객체의 행동이 상태에 따라 달라질수 있고, 객체의 상태에 따라서 런타임에 행동이 바뀌어야 할 때 2) 어떤 연산에 그 객체의 상태에 따라 달라지는 다중 분기 조건 처리가 너무 많이 있을 때 구조 및 구현 interface State { handl..

[7일차] 옵저버 | 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴

출처: 에릭 감마 , 리처드 헬름 , 랄프 존슨 , 존 블리시디스. 『Gof의 디자인 패턴』. 김정아(역). 프로텍미디어, 2015. [7일차] 옵저버(Observer) 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴 타입스크립트로 설명하는 GoF 디자인 패턴의 행동 패턴 11일만에 끝내기 챌린지 옵저버란? 객체 사이에 일대 다의 의존 관계를 정의해두어, 어떤 객체의 상태가 변할 때 그 객체에 의존성을 가진 다른 객체들이 그 변화를 통지 받고 자동으로 갱신될 수 있게 만듭니다. 활용성 1) 어떤 추상 개념이 두 가지 양상을 갖고 하나가 다른 하나에 종속적일 때. 각 양상을 별도의 객체로 캡슐화하여 이들 각각을 재사용할 수 있습니다. 2) 한 객체에 가해진 변경으로 다른 객체를 변경해야 하고, ..

[6일차] 메멘토 | 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴

출처: 에릭 감마 , 리처드 헬름 , 랄프 존슨 , 존 블리시디스. 『Gof의 디자인 패턴』. 김정아(역). 프로텍미디어, 2015. [6일차] 메멘토(Memento) 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴 타입스크립트로 설명하는 GoF 디자인 패턴의 행동 패턴 11일만에 끝내기 챌린지 메멘토란? 캡슐화를 위배하지 않은 체 어떤 객체의 내부 상태를 잡아내고 실체화 시켜둠으로써, 이후 해당 객체가 그 상태로 되돌아 올 수 있도록 합니다. 활용성 1) 어떤 객체의 상태에 대한 스냅샷을 저장한 후 나중에 이 상태로 복구해야 할 때 2) 상태를 얻는 데 필요한 직접적인 인터페이스를 두면 그 객체의 구현 세부사항에 드러날 수 밖에 없고, 이것으로 객체의 캡슐화가 깨질때 구조 및 구현 class..

[5일차] 중재자 | 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴

출처: 에릭 감마 , 리처드 헬름 , 랄프 존슨 , 존 블리시디스. 『Gof의 디자인 패턴』. 김정아(역). 프로텍미디어, 2015. [5일차] 중재자(Mediator) 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴 타입스크립트로 설명하는 GoF 디자인 패턴의 행동 패턴 11일만에 끝내기 챌린지 중재자란? 한 집합에 속해 있는 객체의 상호작용을 캡슐화하는 객체를 정의합니다. 객체들이 서로를 직접 참조하지 않도록 하여 객체들 간의 소결합(Loose Coupling)을 촉진시키며, 객체들 간의 상호작용을 독립적으로 다양화 시킬 수 있게 합니다. 활용성 1) 한 객체가 다른 객체를 너무 많이 참고하고, 너무 많은 의사소통을 수행해서 그 객체를 재사용하기 힘들 때 2) 여러 클래스에 분산된 행동들이..

[4일차] 반복자 | 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴

출처: 에릭 감마 , 리처드 헬름 , 랄프 존슨 , 존 블리시디스. 『Gof의 디자인 패턴』. 김정아(역). 프로텍미디어, 2015. [4일차] 반복자(Iterator) 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴 타입스크립트로 설명하는 GoF 디자인 패턴의 행동 패턴 11일만에 끝내기 챌린지 반복자란? 내부 표현부를 노출하지 않고 어떤 집합 객체에 속한 원소들을 순차적으로 접근할 수 있는 방법을 제공합니다. 활용성 1) 객체 내부 표현 방식을 모르고도 집합 객체의 각 원소들에 접근하고 싶을 때 2) 집합 객체를 순회하는 다양한 방법을 지원하고 싶을 때 트리를 순회할 때 중위 순회 방식이나 전위 순회 방식등과 같은 순회 알고리즘을 바꿀 수 있다. 3) 서로 다른 집합 객체 구조에 대해서도 ..

[3일차] 해석자 | 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴

출처: 에릭 감마 , 리처드 헬름 , 랄프 존슨 , 존 블리시디스. 『Gof의 디자인 패턴』. 김정아(역). 프로텍미디어, 2015. [3일차] 해석자(Interpreter) 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴 타입스크립트로 설명하는 GoF 디자인 패턴의 행동 패턴 11일만에 끝내기 챌린지 해석자란? 간단한 언어의 문법을 정의하는 방법과 그 언어로 문장을 구성하는 방법, 이들 문장을 해석하는 방법을 설명합니다. 활용성 정의할 언어의 문법이 간단할 때 적합하다. 문법이 복잡하다면 문법을 정의하는 클래스 계통이 복잡해지고 관리하기 힘들기 때문에 이럴 때는 파서 생성기가 적합하다. 해석자 정의 방법 1) 문법정의 expression: 시작 기호 literal: 터미널 기호 express..

[2일차] 명령 | 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴

출처: 에릭 감마 , 리처드 헬름 , 랄프 존슨 , 존 블리시디스. 『Gof의 디자인 패턴』. 김정아(역). 프로텍미디어, 2015. [2일차] 명령(Command) 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴 타입스크립트로 설명하는 GoF 디자인 패턴의 행동 패턴 11일만에 끝내기 챌린지 명령이란? 명령 패턴은 요청 자체를 캡슐화하는 것입니다. 이를 통해 요청이 서로 다른 사용자를 매개변수로 만들고, 요청을 대기 시키거나 로깅하여, 되돌릴 수 있는 연산을 지원합니다. 활용성 1) 수행할 동작을 객체로 매개변수화하고자 할 때 절차지향 프로그래밍에서는 이를 콜백 함수, 즉 어딘가 등록되었다가 나중에 호출되는 함수를 사용해서 이러한 매개변수화를 표현할 수 있다. 명령 패턴은 콜백을 객체지향 방..

[1일차] 책임연쇄 | 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴

출처: 에릭 감마 , 리처드 헬름 , 랄프 존슨 , 존 블리시디스. 『Gof의 디자인 패턴』. 김정아(역). 프로텍미디어, 2015. [1일차] 책임연쇄(Chain of responsibility) 행동 패턴 11일만에 끝내기 챌린지 - GoF 디자인 패턴 타입스크립트로 설명하는 GoF 디자인 패턴의 행동 패턴 11일만에 끝내기 챌린지 책임연쇄란? 메세지를 보내는 객체와 이를 받아 처리하는 객체들 간의 결합도를 없애기 위한 패턴입니다. 하나의 요청에 대한 처리가 반드시 한 객체에서만 되지 않고, 여러 객체에게 그 처리 기회를 주려는 것입니다. 활용성 1) 하나 이상의 객체가 요청을 처리해야 하고, 그 요청 처리자 중 어떤 것이 선행자인지 모를 때, 처리자가 자동으로 확정되어야 합니다. 2) 메시지를 받을..

728x90