[typescript] 타입스크립트에서 AWS AppSync와 GraphQL을 사용하여 실시간 데이터 소켓 구성

AWS AppSync는 웹 애플리케이션과 모바일 앱에 대한 실시간 데이터를 제공하기 위한 관리형 서비스로, GraphQL을 통해 데이터를 쿼리하고 구독하며, 동시에 데이터를 수신 및 전송할 수 있습니다. 타입스크립트에서 AWS AppSync와 GraphQL을 사용하여 실시간 데이터 소켓을 설정하는 방법에 대해 알아보겠습니다.

1. AWS AppSync API 생성

먼저 AWS 콘솔을 통해 AppSync API를 생성합니다. 생성된 API의 설정에서 Data Sources 섹션에서 데이터 소스를 추가하고, Resolver를 설정합니다.

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

다음으로, 타입스크립트 프로젝트를 초기화하고 AWS Amplify와 관련 패키지들을 설치합니다.

npm init -y
npm install aws-amplify aws-appsync graphql-tag

3. AWS Amplify 구성

AWS Amplify를 사용하여 AWS AppSync 설정을 프로젝트에 추가합니다.

import Amplify, { API, graphqlOperation } from 'aws-amplify';
import AWSAppSyncClient from 'aws-appsync';
import gql from 'graphql-tag';

Amplify.configure({
  aws_appsync_graphqlEndpoint: 'YOUR_API_ENDPOINT',
  aws_appsync_region: 'YOUR_AWS_REGION',
  aws_appsync_authenticationType: 'API_KEY',
  aws_appsync_apiKey: 'YOUR_API_KEY',
});

const client = new AWSAppSyncClient({});

4. GraphQL 구독 설정

구독을 통해 실시간으로 데이터를 수신받을 수 있습니다.

const subscription = API.graphql(graphqlOperation(
  gql`subscription {
    onDataUpdated {
      id
      data
    }
  }`
)).subscribe({
  next: (eventData) => console.log('Data updated:', eventData),
  error: (error) => console.error('Subscription error:', error),
});

위 코드는 onDataUpdated subscription을 사용하여 데이터 업데이트를 구독합니다.

결론

타입스크립트와 AWS AppSync를 사용하여 GraphQL을 통해 실시간 데이터 소켓을 설정하는 방법은 매우 간단합니다. 이를 통해 사용자는 실시간으로 데이터를 업데이트하고 획득할 수 있으며, 실시간 통신 기능을 지원하는 현대적인 애플리케이션을 더 쉽게 구축할 수 있습니다.

더 많은 정보 및 자세한 내용은 AWS Amplify 공식 문서를 참고하시기 바랍니다.