내일배움캠프 42일차 TIL - PUB/SUB 패턴

권태하·2024년 6월 14일
0
post-thumbnail

Pub/Sub은 "Publish/Subscribe"의 약자로, 메시지 기반 통신에서 널리 사용되는 디자인 패턴입니다. 이 패턴은 메시지 발행자(Publisher)와 구독자(Subscriber) 사이의 느슨한 결합을 통해 시스템의 확장성과 유연성을 향상시킵니다.
Pub/Sub 패턴의 핵심 개념
• Publisher (발행자): 메시지를 생성하고 발행하는 역할을 합니다. 발행자는 메시지를 누가 받을지에 대해 알 필요가 없으며, 단순히 메시지를 특정 채널이나 토픽에 발행합니다.
• Subscriber (구독자): 특정 토픽이나 채널에 대한 메시지를 수신하기 위해 구독하는 역할을 합니다. 구독자는 메시지가 언제, 어디서 발행되는지 알 필요가 없으며, 단지 관심 있는 메시지를 수신하기만 하면 됩니다.
• Message (메시지): 발행자와 구독자 사이에서 전달되는 데이터입니다. 메시지는 다양한 형태의 정보를 포함할 수 있습니다.
• Broker or Message Queue (브로커 또는 메시지 큐): 발행된 메시지를 관리하고, 해당 메시지를 올바른 구독자에게 전달하는 중간 역할을 합니다. 브로커는 시스템의 확장성과 유연성을 높이는 데 중요한 역할을 합니다.
Pub/Sub 패턴의 장점
• 느슨한 결합: 발행자와 구독자가 서로 독립적으로 작동할 수 있어, 시스템의 각 부분을 독립적으로 개발하고 수정할 수 있습니다.
• 확장성: 새로운 구독자나 발행자를 쉽게 추가할 수 있으며, 시스템의 부하에 따라 유연하게 확장할 수 있습니다.
• 비동기 처리: 메시지는 비동기적으로 처리되므로, 시스템의 전체적인 성능과 반응성이 향상됩니다.
사용 사례
• 이벤트 알림 시스템: 사용자 액션에 대한 알림, 시스템 이벤트 등을 처리할 때 사용됩니다.
• 분산 시스템 간의 통신: 마이크로서비스 아키텍처에서 서비스 간의 결합도를 낮추고, 메시지 기반으로 통신할 때 사용됩니다.
• 데이터 스트리밍 및 처리: 실시간 데이터 스트리밍 및 배치 처리 시스템에서 데이터를 효율적으로 처리하고 분산시킬 때 사용됩니다.
Pub/Sub 패턴은 다양한 프로그래밍 언어와 플랫폼에서 구현할 수 있으며, 여러 메시지 브로커와 서비스(예: RabbitMQ, Apache Kafka, Google Cloud Pub/Sub)가 이 패턴을 지원합니다.

profile
스터디 로그

0개의 댓글

관련 채용 정보