코딩스토리

What is Cloud Pub/Sub? - ep.2 본문

Google Cloud Platform

What is Cloud Pub/Sub? - ep.2

kimtaehyun98 2022. 7. 4. 15:46

# 해당 포스팅은 Google Cloud Tech Youtube의 Cloud Pub/Sub 관련 영상을 기반으로 작성하였습니다.

What is Cloud Pub/Sub? -ep2

 

앞선 포스팅의 내용은 왜 Cloud Pub/Sub 모델이 등장했는지에 대한 설명이었다.

(이전 포스팅 링크 : https://kimtaehyun98.tistory.com/145)

 

이런 개념이 어떻게 실제로 사용될까?

 

이젠 개발자 마인드로 넘어가서 생각해보자.

 

Cloud Pub/Sub은 이름 그대로 Publisher와 Subscriber model을 지원하다.

 

Publisher, 즉 제공자는 메시지를 만들어서 보낸다.

그리고 메시지는 모든 Subscriber, 즉 구독자가 승인할 때까지 저장된다.

 

위에서 생성된 Topic의 결과를 수신하기 위해 구독자들은 Subscription을 생성한다.

(쉽게 말하면 해당 Topic을 구독한다는 것이다.)

 

Subscription을 함으로써 Cloud Pub/Sub이 메시지를 구독자에게 Push 하거나 구독자 스스로 메시지를 Pull 받아올 수 있다.

(구독자가 메시지를 확인하면 메시지는 지워진다고 한다.)

 

Communication

 

Publisher와 Subscriber가 소통하는 방식은 아래와 같다.

 

 

즉, Publisher와 Subscriber의 개수로 구분할 수 있다.

 

Cloud Pub/Sub 내부는 아래와 같이 생겼다.

 

 

이 그림을 보면 좀 명확해진다.

Publisher와 Subscriber을 연결할 때는 각각의 Topic과 Subscription이 붙는 것을 확인할 수 있다.

 

그럼 이걸 이전의 상품 주문 예제로 바꿔보자.

 

왼쪽 그림을 Pub/Sub 모델로 표현하면 오른쪽과 같다는 것이다.

 

실제 서비스에는 아래와 같이 쓰이게 된다.

 

Publisher는 Google API.com에 https 요청을 할 수 있는 모든 애플리케이션이 될 수 있다.

우리는 대부분 Web Service나 Device가 될 것이다.

 

Subscribers는 Pull을 하는지 Push에 하는지에 따라 조금씩 다르다.

 

먼저 Pull을 하는 구독자는 Https 요청을 할 수 있는 능력만 있으면 된다. 

하지만 Push는 Post 요청을 수락할 수 있어야 한다.

 

이유는 위에서 말했듯이 Push는 Publisher가 Subscriber에게 해주는 것이기 때문에 작업의 주체가 Publisher이므로 Post가 가능해야 한다.

 

좀 더 세부적으로 살펴보면 이런 느낌이다.

 

앞 단에서 Data가 수집되고, Cloud Pub/Sub으로 모인다.

Data의 수집은 프론트 엔드, 데이터 베이스 , 서버 등 다양한 예가 될 수 있다.

 

이렇게 생성된 데이터를 어떤 방식을 통해 가공할 건지, 즉 어떤 로직을 사용할 건지 결정하고 작업을 실행한다.

 

결과는 해당 Topic을 구독하고 있는 구독자에게 메시지가 갈 것이다. (또는 구독자가 가져가거나)

 

 

이제 전체적인 Cloud Pub/Sub을 알게 되었다.

 

흐름을 요약해보자면

 

가공하고 싶은 데이터를 모아 Cloud Pub/Sub에 수집한다.

수집된 데이터는 Topic의 로직에 따라 다양한 작업을 수행한다.

작업의 결과는 해당 Topic을 구독하고 있는 구독자가 확인할 수 있다.

 

어느 정도 감은 잡힌 것 같다. 

하지만 어떻게 만들어야 될지도 잘 모르겠고, 선뜻 시작하기 두려울 수 있다.

 

다음 포스팅에서는 어떻게 시작해야 하는지에 대해 좀 더 얘기해보자.

 

https://www.youtube.com/watch?v=MjEam95VLiI 

 

Comments