구글 클라우드 플랫폼은 많은 서비스와 API를 제공하여 개발자들이 클라우드 환경에서 다양한 작업을 수행할 수 있게 도와줍니다. 그 중에서도 Google Cloud Pub/Sub은 메시징 시스템으로서 신속하고 안정적인 데이터 전송을 제공합니다. 이번 기술 블로그에서는 자바스크립트를 이용하여 Google Cloud Pub/Sub와의 통합 개발에 대해 알아보겠습니다.
Google 클라우드 계정 설정하기
우선, Google Cloud Pub/Sub를 사용하기 위해서는 Google 클라우드 플랫폼에 계정을 생성하고 프로젝트를 만들어야 합니다. Google 클라우드 콘솔로 이동하여 계정을 생성하고 프로젝트를 만드세요. 생성된 프로젝트의 클라우드 Pub/Sub 서비스를 활성화해야 합니다.
Pub/Sub 클라이언트 라이브러리 설치
Google Cloud Pub/Sub과 상호 작용하기 위해서는 Pub/Sub 클라이언트 라이브러리를 설치해야 합니다. Node.js 기반으로 개발하신다면, npm을 사용하여 다음과 같이 라이브러리를 설치할 수 있습니다.
npm install --save @google-cloud/pubsub
인증 설정하기
Google Cloud Pub/Sub와 통신하기 위해서는 인증 설정이 필요합니다. 인증 설정을 간단하게 하기 위해 gcloud 명령어를 사용하여 사용자 인증 정보를 생성할 수 있습니다.
gcloud auth application-default login
위 명령어를 실행하면 웹 브라우저가 열리고 Google 클라우드 플랫폼에 로그인하도록 요청합니다. 로그인 후 인증 정보가 자동으로 생성됩니다.
Pub/Sub 토픽 및 구독 생성
Pub/Sub를 사용하기 위해서는 먼저 토픽과 구독을 생성해야 합니다. 토픽은 Publisher(발행자)가 메시지를 발행하는 곳이고, 구독은 Subscriber(구독자)가 메시지를 받는 곳입니다. Pub/Sub 클라이언트 라이브러리를 사용하여 다음과 같이 토픽과 구독을 생성할 수 있습니다.
const { PubSub } = require('@google-cloud/pubsub');
const pubsub = new PubSub();
const topicName = 'my-topic';
const subscriptionName = 'my-subscription';
async function createTopicAndSubscription() {
const [topic] = await pubsub.createTopic(topicName);
console.log(`Created topic: ${topic.name}`);
const [subscription] = await topic.createSubscription(subscriptionName);
console.log(`Created subscription: ${subscription.name}`);
}
createTopicAndSubscription();
메시지 발행하기
토픽과 구독을 생성하였다면 이제 메시지를 발행해보겠습니다. Pub/Sub 클라이언트 라이브러리를 사용하여 다음과 같이 메시지를 발행할 수 있습니다.
const { PubSub } = require('@google-cloud/pubsub');
const pubsub = new PubSub();
const topicName = 'my-topic';
async function publishMessage(data) {
const dataBuffer = Buffer.from(data);
const messageId = await pubsub.topic(topicName).publish(dataBuffer);
console.log(`Published message with ID: ${messageId}`);
}
publishMessage('Hello, Pub/Sub!');
메시지 구독하기
메시지를 발행했다면 이제는 Subscriber(구독자) 측에서 해당 메시지를 받아오는 작업을 해야 합니다. Pub/Sub 클라이언트 라이브러리를 사용하여 다음과 같이 메시지를 구독할 수 있습니다.
const { PubSub } = require('@google-cloud/pubsub');
const pubsub = new PubSub();
const subscriptionName = 'my-subscription';
function handleMessage(message) {
console.log(`Received message: ${message.data.toString()}`);
message.ack();
}
async function startSubscriber() {
const subscription = pubsub.subscription(subscriptionName);
subscription.on('message', handleMessage);
console.log('Started subscriber');
}
startSubscriber();
결론
이제 자바스크립트를 이용하여 Google Cloud Pub/Sub와의 통합 개발에 대해 알아보았습니다. Pub/Sub을 통해 안정적이고 확장 가능한 메시징 시스템을 구축할 수 있으며, 자바스크립트를 사용하여 간편하게 구현할 수 있습니다. 유연한 메시지 큐 솔루션인 Google Cloud Pub/Sub은 다양한 클라우드 애플리케이션 개발에 많은 도움을 줄 것입니다.