()은 () / () 처럼 역할이 분리된 컴포넌트()를 구조화하는데 주로 응용되는 패턴입니다.

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

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

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

, , and 과 같은 소프트웨어가 () (Architectural pattern)에 해당합니다.

()은 객체의 동적인 변경, 추가, 삭제 및 재할당이 가능하며 개발자에게 배포를 투명하게 할 수 있다는 장점이 있습니다.

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



facebook posting twit

  • Interpreter pattern은 SQL 또는 통신프로토콜을 기술하는 언어 구현시 주로 이용되는 아키텍쳐
  • Blackboard pattern은 오늘날 NLU(Natural Language Understanding)이나 차량인식 등에 응용되는 아키텍쳐
  • MVC(Model-view-controller) pattern은 Django, Rails와 같은 웹 어플리케이션 개발에 주로 응용되는 아키텍쳐
  • Event-bus pattern은 Push Notification Service, 안드로이드 앱 개발에 주로 응용되는 아키텍쳐
  • Peer-to-peer pattern은 BitTorrent와 같이 파일공유 솔루션이나 P2PTV, PDTP와 같은 멀티미디어 프로토콜에 주로 이용
  • Pipe-filter pattern은 컴파일러와 같이 통해 연속되는 필터링 기법을 통한 분석을 하는 아키텍쳐에 주로 이용
  • Master-slave pattern은 장애 대응을 위한 Database 복제 등 병렬처리 및 Disaster Recovery 대응 로직에 주로 이용
  • Client-server pattern은 TCP/IP를 통해 데이터를 주고 받는 이메일, 웹하드 등이 주로 이용하는 아키텍쳐
  • Layered pattern은 PC App, 쇼핑몰(이커머스) 웹사이트 등이 주로 쓰는 아키텍쳐 패턴
  • Machine Learning Tool의 종류와 용도
  • Leave a Reply