()은 마스터(master)와 슬레이브(slave)로 구성되어져 있는데, 마스터는 일을 분배하는 역할을 가지고 있으며, 슬레이브는 전달된 기능을 수행합니다.

즉, 마스터(주인)이 업무를 지시하면, 슬레이브(하녀)는 그 일을 완료하여 결과물을 전달 하는 것입니다.

Master-slave pattern은 장애 대응을 위한 Database 복제 등 병렬처리 및 Disaster Recovery 대응 로직에 주로 이용

()의 예로는 데이터베이스 복제()를 들 수 있습니다. 즉, 마스터 DB는 원본데이터를 가지고 있고, 슬레이브는 그 복제본을 동기화하여 가지고 있습니다.

참고로 이라 함은 사전적으로 "복제"라는 의미를 가지고 있습니다.

다른 예로는 USB 허브를 예로 들수 있는데, USB 허브를 통해 마스터 포트에서 사용하던 기능을 그대로 사용할 수 있습니다.

()의 장점은 정확성에 있습니다. 즉, 서비스의 실행은 각기 다른 구현체를 가진 슬레이브들에게 전파되어 설계된 로직대로 동작합니다.

반면에, 슬레이브가 독립적이므로 공유되는 상태가 없으므로 실시간 시스템에서는 간 레이턴시 문제가 발생할 수 있습니다. 이 패턴은 분리 가능한 문제에만 적용할 수 있다.



facebook posting twit

  • MVC(Model-view-controller) pattern은 Django, Rails와 같은 웹 어플리케이션 개발에 주로 응용되는 아키텍쳐
  • Event-bus pattern은 Push Notification Service, 안드로이드 앱 개발에 주로 응용되는 아키텍쳐
  • Peer-to-peer pattern은 BitTorrent와 같이 파일공유 솔루션이나 P2PTV, PDTP와 같은 멀티미디어 프로토콜에 주로 이용
  • Broker pattern은 Apache ActiveMQ, Apache Kafka, RabbitMQ 등 메시지 미들웨어 같은 아키텍쳐에 주로 이용
  • Pipe-filter pattern은 컴파일러와 같이 통해 연속되는 필터링 기법을 통한 분석을 하는 아키텍쳐에 주로 이용
  • Client-server pattern은 TCP/IP를 통해 데이터를 주고 받는 이메일, 웹하드 등이 주로 이용하는 아키텍쳐
  • Layered pattern은 PC App, 쇼핑몰(이커머스) 웹사이트 등이 주로 쓰는 아키텍쳐 패턴
  • Machine Learning Tool의 종류와 용도
  • 자연어처리(NLU)를 하기 위한 소프트웨어 아키텍쳐 – 걸음마단계부터 인간 수준으로 진화하는 방향에 대해 알아본다
  • 구글 머신러닝 솔루션 텐서플로(Google Machine Learning – TensorFlow) 오픈소스 공개에 따른 현재와 미래의 비젼
  • Leave a Reply