[typescript] 타입스크립트와 GCP의 Cloud Pub/Sub 연동 방법

GCP (Google Cloud Platform)은 다양한 서비스를 제공하여 개발자들이 안정적이고 확장 가능한 애플리케이션을 구축할 수 있도록 지원합니다. 이 글에서는 GCP의 Cloud Pub/Sub 메시징 서비스를 타입스크립트 애플리케이션과 연동하는 방법을 살펴보겠습니다.

Cloud Pub/Sub이란?

Cloud Pub/Sub은 구글 클라우드 플랫폼에서 제공하는 메시징 서비스로, 실시간 메시지 전송 및 수신을 위한 기능을 제공합니다. Pub/Sub은 다양한 종류의 애플리케이션과 서비스 간에 안전하고 신속하게 데이터를 전송할 수 있도록 지원합니다.

타입스크립트 프로젝트 설정

npm init -y
npm install @google-cloud/pubsub

먼저, 타입스크립트 프로젝트를 설정하고 @google-cloud/pubsub 패키지를 설치해야 합니다.

GCP 프로젝트 및 인증 설정

GCP 콘솔에서 새로운 프로젝트를 만들고, Service Account를 생성하여 프로젝트에 대한 인증 정보를 획들할 수 있습니다. 이후 인증 정보를 JSON 파일로 다운로드하고, 프로젝트에서 사용할 위치에 저장합니다.

Pub/Sub 연동

import { PubSub } from '@google-cloud/pubsub';

// 인증 정보 경로
const keyFilename = 'path-to-your-keyfile.json';

// Pub/Sub 인스턴스 생성
const pubSubClient = new PubSub({
  keyFilename: keyFilename,
});

// 토픽 및 구독 생성
const topicName = 'your-topic-name';
const subscriptionName = 'your-subscription-name';

const [topic] = await pubSubClient.createTopic(topicName);
console.log(`Topic ${topic.name} created.`);

const [subscription] = await topic.createSubscription(subscriptionName);
console.log(`Subscription ${subscription.name} created.`);

위 예제 코드에서는 먼저 @google-cloud/pubsub 패키지를 가져와서, 인증 정보를 사용하여 Pub/Sub 클라이언트를 생성합니다. 이후 특정한 토픽과 구독을 생성하는 방법을 보여줍니다.

메시지 발행 및 구독

// 메시지 발행
const data = Buffer.from('Hello, Pub/Sub!');
const messageId = await topic.publish(data);
console.log(`Message ${messageId} published.`);

// 메시지 수신
const messageHandler = (message) => {
  console.log(`Received message: ${message.data.toString()}`);
  message.ack();
};

subscription.on('message', messageHandler);

위 코드는 특정 토픽에 메시지를 발행하고, 해당 구독에서 메시지를 수신하는 방법을 보여줍니다.

이제, 타입스크립트 애플리케이션과 GCP의 Cloud Pub/Sub을 연동하는 방법을 살펴보았습니다. 이를 통해 안정적이고 확장 가능한 메시징 솔루션을 타입스크립트 기반 애플리케이션과 통합할 수 있습니다.

참고 자료

이제, 안전하게 데이터를 전송하고 처리하기 위한 Cloud Pub/Sub을 타입스크립트 프로젝트에서 사용할 수 있을 것입니다.