반응형
POSA 2권에서는 대용량 네트워크, 분산 객체를 위한 패턴을 다룹니다. 대용량 네트워크에서는 서로 이질적인 시스템 간에 통신이 이루어지는 경우가 많습니다. 이질적인 두 시스템간에 통신을 하기 위해서는 어떠한 방법이 필요했고 이 방법이 이번 POSA 2에서 다루는 패턴들 입니다. 이제 POSA 2권에서 소개된 패턴들에 대해서 간략하게 알아보겠습니다.
POSA 2 패턴은 크게 4개의 카테고리로 나눌 수 있습니다. 서비스 접근 및 설정, 이벤트 핸들러, 동시성 제어, 동기화 입니다.
서비스 접근 및 설정 | 이벤트 핸들러 | 동시성 제어 | 동기화 |
Wrapper Facade (Facade Pattern) 비-객체지향 또는 복잡한 시스템을 관리성, 호환성, 견고성을 확보하기 위해 객체지향 클래스로 캡슐화 하는 패턴 |
Reactor 서비스 개발시 쉽게 프로토콜을 추가, 변경하기 위해 서비스의 핸들러를 등록, 삭제 변경하는 패턴 |
Active Object Invocation(호출)과 Execution(실행)을 분리하여 Client에게 투명성을 제공하는 패턴. 즉, Client의 요청작업과 응답처리의 분리가 목적 Message Queue의 축소 버전 |
Strategized Locking Multi-Thread 환경에서 Component의 Critical Section을 보호하기 위한 패턴. 파라메터화된 타입, 다형성, Template를 이용하여 변화에 유연한 전략적인 Locking 매커니즘을 제공 |
Component Configurator 서비스의 재시작없이 캔포넌트를 런타임시에 생성하고, 변경하는 패턴 |
Proactor Reactor의 확장판으로 Async, Non-Blocking 환경에서 동작하는 Dispatcher 패턴 |
Monitor Object Multi-Thread 상황에서 안전하게 사용할 수 있는 Queue를 만드는 패턴 |
Thread-Safe Interface Thread의 Deadlock 현상을 미연에 방지하기 위해 뮤텍스와 세마포어를 이용하여 특정 자원의 Critical Section을 구현하는 패턴 |
Interceptor 후킹을 이용해 메시지를 가로채는 패턴. Pipe-Filter와 Component Configurator와 같이 사용 |
Asynchronous Completion Token 비동기 상황에서 메시지 손실없이 통신하기 위한 토큰 UUID 개념 |
Leader/Follower Leader 스레드가 요청을 받아 처리하면 follower 스레드들 중 하나를 새로운 Leader로 지정. 처리가 끝난 스레드는 다시 follwer 스레드로 대기 |
Double-Checked Locking Singleton을 멀티 쓰레드 환경에서 사용했을 때 사용되는 문제점을해결하기 위해 이중으로 Locking을 하는 패턴 |
Extension Interface 클라이언트와 서버와 통신하기 위해 어떠한 인터페이스의 목록을 제공하는 패턴 |
Acceptor-Connector 다양한 접속 방법을 지원하기 위한Dispatcher 패턴 |
Thread-Specific Storage Thread에서 공용 자원을 획득 시, 전역적인 하나의 자원만 할당해서 사용하는 것이 아닌, Thread가 공통적으로 접근할 수 있는 특정(Specific)한 저장 영역(Storage)를 두어 효율적으로 공용 자원을 관리하는 패턴 |
반응형
'IT > Others' 카테고리의 다른 글
I/O operation (0) | 2023.05.06 |
---|---|
Reactor 패턴과 Proactor 패턴 (0) | 2023.05.06 |
디자인 패턴 소개 (POSA 1) (0) | 2023.01.26 |
객체 지향 상속의 종류 : Subclassing 과 Subtyping (0) | 2022.11.26 |
싱글톤 패턴 (0) | 2022.08.27 |