Tag Archives: Broker pattern

아키텍쳐 패턴이란 – 소프트웨어 디자인 패턴

외국인회사에 있다 보면 개발자 채용시 아키텍쳐 설계 부분도 이야기를 하게 됩니다. 그러면 어떤 어프로치로 소프트웨어를 설계해야 하느냐에 대한 논의를 하게 됩니다.

소프트웨어 개발/설계시 아키텍쳐링을 하다 보니 반복되는 패턴이 나오기 시작했고, 사람들은 이 패턴에 이름을 붙이기 시작했습니다. 즉, 아키텍쳐 패턴(Archiectural Patterns)이라 함은 소프트웨어 디자인 패턴이라고 할 수 있습니다. 참고로 패턴(Pattern)=유형,종류 라고 간주하셔도 될 것 같습니다.

 

아키텍쳐 패턴(Architectural Patterns)은 대략 다음의 10가지 종류가 있습니다.

1. Layered pattern

2. Client-server pattern

3. Master-slave pattern

4. Pipe-filter pattern

5. Broker pattern

6. Peer-to-peer pattern

7. Event-bus pattern

8. Model-view-controller pattern

9. Blackboard pattern

10. Interpreter pattern

 

여기에 하나 빠진것이 있다면 최근 떠오르는 MSA(Micro Service Architecture)가 있을텐데요… 이정도 길이면 학생들 가르킬때 21주짜리 프로그램이 하나 나올법도 하네요.

Broker pattern은 Apache ActiveMQ, Apache Kafka, RabbitMQ 등 메시지 미들웨어 같은 아키텍쳐에 주로 이용

브로커아키텍쳐 패턴(Broker Architectural pattern)은 클라이언트-서버(Client-Server) / 마스터-슬레이브(Master-Slave) 처럼 역할이 분리된 컴포넌트(decoupled components)를 구조화하는데 주로 응용되는 패턴입니다.

여기서 브로커 컴포넌트는 컴포넌트간 통신(communication)을 조율(coordination) 하는 역할을 담당합니다.

클라이언트가 어떤 요청사항을 전달하면, 브로커가 중간에 받아서 이를 처리할 기능이 있는 서버로 명령을 요청하게 되고, 서버가 이에 따른 결과를 처리하는 방식입니다.

Broker pattern은 Apache ActiveMQ, Apache Kafka, RabbitMQ 등 메시지 미들웨어 같은 아키텍쳐에 주로 이용

Apache ActiveMQ, Apache Kafka, RabbitMQ and JBoss Messaging과 같은 소프트웨어가 브로커(Broker) 아키텍쳐 패턴(Architectural pattern)에 해당합니다.

브로커아키텍쳐 패턴(Broker Architectural pattern)은 객체의 동적인 변경, 추가, 삭제 및 재할당이 가능하며 개발자에게 배포를 투명하게 할 수 있다는 장점이 있습니다.

또한 배포를 투명하게 하려면 서비스 표현에 대한 문서화 등의 표준화가 필요합니다.