IT/Others

디자인 패턴 소개 (POSA 2)

김 정 환 2023. 3. 19. 22:36
반응형

POSA 2권에서는 대용량 네트워크, 분산 객체를 위한 패턴을 다룹니다. 대용량 네트워크에서는 서로 이질적인 시스템 간에 통신이 이루어지는 경우가 많습니다. 이질적인 두 시스템간에 통신을 하기 위해서는 어떠한 방법이 필요했고 이 방법이 이번 POSA 2에서 다루는 패턴들 입니다. 이제 POSA 2권에서 소개된 패턴들에 대해서 간략하게 알아보겠습니다.

pattern-oriented software architecture volume 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