본문으로 건너뛰기

Pub/Sub 개요

Beta kr-central-1 kr-central-2

카카오클라우드의 Pub/Sub 서비스는 대용량 이벤트와 데이터 분석을 위한 비설치형 메시지 큐(Message Queue) 서비스입니다. Pub/Sub은 정보를 생성하고 발행하는 "게시자"와 정보를 수신하고 처리하는 "구독자" 간의 비동기 통신 패턴을 사용합니다. 게시자는 RPC이 아니라 이벤트를 브로드캐스트하여 구독자와 비동기적으로 통신합니다.
이런 비동기 통신 패턴에서는 정보를 발행하는 게시자는 정보를 수신하는 구독자를 명시적으로 식별하지 않고, 대신 정보를 특정 토픽(topic)에 발행합니다. 정보를 수신하는 구독자는 해당 토픽을 구독하고, 발행된 정보를 수신하여 처리할 수 있습니다.

용어 정리
  • Pub/Sub: "Publish/Subscribe"의 약어로, 데이터의 발행(Publish)과 구독(Subscribe)을 기반으로 한 메시지 패턴을 사용하여 정보를 효율적으로 분배하고 처리하는 서비스입니다.
  • RPC(Remote Procedure Call): "동기식 리모트 프로시져 콜"이라고도 하며, 클라이언트와 서버 간의 직접적인 호출을 통해 통신하는 메시지 통신 패턴입니다. Pub/Sub과는 다르게, 클라이언트가 서버의 특정 프로시저나 함수를 호출하고 결과를 기다리는 동기식 통신 패턴입니다.
  • 메시지 큐(Message Queue): 메시지 대기열이라고도 하며, 서버리스 및 마이크로 서비스 아키텍처에 사용되는 비동기식 서비스 대 서비스 통신 형태입니다. 메시지는 대기열에 저장되어 처리되고, 각 메시지는 하나의 구독자에 의해 한 번만 처리됩니다. 메시지 큐는 규모가 큰 처리 작업의 결합을 해제하고, 버퍼링 또는 배치 작업을 수행하며, 급변하는 워크로드를 원활하게 지원하는 데 사용될 수 있습니다.

사용 목적 및 사례

메시지 큐를 사용하지 않을 경우, 대규모 데이터 처리 및 메시지 전송을 수동으로 구현해야 하므로 복잡도가 증가하며, 구현에도 많은 시간이 소요됩니다. 애플리케이션 간의 통신 또한 동기적으로 이루어지므로 한 애플리케이션이 다른 애플리케이션의 응답을 기다릴 때 애플리케이션의 응답 시간이 증가합니다. 이런 애플리케이션 간의 직접적인 통신은 애플리케이션 간 결합도를 증가시키므로, 변경과 확장도 어렵습니다.
카카오클라우드의 Pub/Sub은 대량의 메시지 데이터를 가져오거나 Webhook이 필요한 경우 애플리케이션/서비스 간 통신을 비동기적으로 처리하여 데이터 관리 효율성을 높일 수 있습니다.

특징

Pub/Sub 서비스를 이용해 대규모의 메시지를 효율적으로 관리할 수 있습니다.

태스크 병렬 처리

  • 여러 사용자 간의 이벤트 분석, 처리 등 많은 태스크를 효율적으로 작업할 수 있도록 지원

효율적인 메시지 관리

  • 재시도 정책, 보관 기간, 시점 되돌리기 등의 지정된 정책에 따라 미확인 메시지를 다시 자동 요청하고 필요에 따라 특정 토픽의 메시지를 보관하고 시점을 되돌릴 수 있음

Push 전송

  • 메시지가 메시지 토픽 게시될 때 비동기 이벤트 알림을 즉시 푸시하고, 메시지를 사용할 수 있게 되면 구독자에게 알림을 전송

보안

  • 메시지 토픽은 콘텐츠를 게시하려는 애플리케이션을 인증하며, 네트워크를 통해 전송 중인 메시지를 암호화된 엔드포인트를 사용하여 보호

시작하기

Pub/Sub에 대한 자세한 사용 가이드는 How-to Guides에서 설명합니다. 카카오클라우드를 처음 시작하신다면 카카오클라우드 시작하기를 참고하시기 바랍니다.