software-design

Master-Slave Pattern

TV 요리 경연 프로그램을 보면, 메인 셰프(마스터)가 요리의 전체 구성을 지시하고, 보조 셰프들(슬레이브)이 각각 재료를 손질하거나 소스를 만드는 역할을 맡습니다. 보조 셰프들은 각자 맡은 작업만 집중적으로 수행하고, 결과는 모두 메인 셰프가 모아서 하나의 완성된 요리로 조율하죠. 메인 셰프가 중심에서 전체 진행을 통제하고, 보조들이 맡은 역할만 충실히 수행하는 협업 방식은 바로 중앙 제어자가 역할을 분배하고 결과를 취합하는 구조로, 마스터-슬레이브 패턴과 닮아 있습니다.


Master-Slave Pattern이란

Master-Slave Pattern은 하나의 마스터 컴포넌트가 전체 작업을 제어하고, 여러 슬레이브 컴포넌트가 실제 작업을 수행하는 제어 및 병렬 처리 아키텍처 패턴입니다. 마스터는 전체 문제를 작은 단위로 분할한 뒤 슬레이브들에게 작업을 분배하고, 각 슬레이브가 수행한 결과를 다시 모아 최종 결과를 완성합니다.

이 구조는 병렬 처리, 데이터 복제, 하드웨어 제어, 분산 처리 시스템 등 다양한 분야에서 활용됩니다. 예를 들어, 데이터베이스의 읽기 복제(Read Replica) 구조에서는 마스터가 쓰기 작업을 담당하고, 슬레이브가 읽기 요청을 분담하여 전체 성능을 높입니다. 또 다른 예로 하둡(Hadoop)의 MapReduce 프레임워크는 JobTracker(마스터)가 작업을 분배하고 TaskTracker(슬레이브)가 실제 연산을 수행한 뒤, 결과를 다시 합쳐 최종 결과를 만듭니다. 하드웨어 제어에서도 마스터 장치가 여러 센서나 프로세서를 제어하는 구조는 흔히 찾아볼 수 있습니다. Master-Slave 패턴의 주요 장점은 다음과 같습니다.

  • 작업 분산 및 병렬 처리 → 하나의 큰 작업을 여러 노드가 동시에 처리하므로 성능 향상
  • 확장성 → 슬레이브 노드를 추가하면 시스템 처리 능력을 쉽게 수평 확장 가능
  • 단순한 구조 → 중앙 제어자가 전체를 관리하므로 흐름이 명확

하지만 다음과 같은 단점도 있습니다.

  • 단일 장애 지점(SPOF) → 마스터가 장애를 일으키면 전체 시스템이 중단
  • 동기화 비용 → 슬레이브 간 데이터 일관성을 유지하는 것이 복잡
  • 결과 병합 부담 → 분산된 결과를 모아 일관된 최종 결과를 만드는 과정이 까다로움

이 때문에 실무에서는 마스터 장애를 대비해 페일오버(failover) 메커니즘을 두거나, 복수의 마스터를 두는 방식으로 단일 장애 지점을 줄이기도 합니다. 최근에는 용어상의 문제를 고려해 Master-Slave 대신 Primary-Replica, Leader-Follower 같은 이름으로 대체해 사용하는 경우도 많습니다.


정리

Master-Slave 패턴은 중앙 제어자인 마스터가 작업을 분할하고, 여러 슬레이브가 이를 병렬로 처리한 뒤 결과를 다시 모으는 구조로, 데이터베이스 복제, 병렬 연산, 분산 처리 시스템에서 널리 활용됩니다. 이를 통해 처리 성능과 확장성을 확보할 수 있지만, 마스터가 단일 장애 지점이 되기 때문에 failover(장애 전환) 전략과 슬레이브 동기화 관리가 필수적입니다. 최근에는 용어 측면에서 Master-Slave 대신 Primary-Replica 또는 Leader-Follower라는 표현을 사용하는 것이 권장됩니다.


참고자료