[typescript] 타입스크립트에서 GraphQL 쿼리 작성하기

GraphQL은 클라이언트와 서버 간의 데이터 통신을 위한 강력한 쿼리 언어이자 런타임입니다. 타입스크립트를 사용하는 경우, GraphQL 쿼리를 작성하고 사용하는 방법에 대해 알아보겠습니다.

1. GraphQL 스키마 및 쿼리 정의

먼저, GraphQL 스키마를 정의해야 합니다. 타입스크립트에서는 graphql 패키지를 사용하여 GraphQL 스키마를 정의할 수 있습니다. 예를 들어, 다음과 같이 스키마를 정의할 수 있습니다.

import { gql } from 'graphql';

const typeDefs = gql`
  type Query {
    hello: String
  }
`;

2. GraphQL 쿼리 보내기

GraphQL 쿼리를 보내기 위해 클라이언트 라이브러리를 사용해야 합니다. apollo-clientgraphql-request와 같은 라이브러리를 사용하여 쿼리를 서버에 보낼 수 있습니다.

import { request, gql } from 'graphql-request';

const query = gql`
  query {
    hello
  }
`;

const data = await request('http://localhost:4000', query);
console.log(data);

3. 타입 안정성 확보

타입스크립트를 사용하면 GraphQL 쿼리에 대해 타입 안정성을 확보할 수 있습니다. codegen과 같은 도구를 사용하여 GraphQL 쿼리를 기반으로 타입 정의를 생성할 수 있습니다.

// graphql.schema.d.ts
export type Query = {
  hello: string;
};

이제, 타입이 안정된 GraphQL 쿼리를 작성하고 사용할 수 있습니다.

결론

타입스크립트를 사용하여 GraphQL 쿼리를 작성하고 활용하는 것은 타입 안정성을 확보하면서 개발 생산성을 높일 수 있는 좋은 방법입니다. GraphQL 쿼리를 정의하고 실행함에 있어서 타입스크립트가 제공하는 강력한 기능들을 활용하여 안정적이고 확장 가능한 코드를 작성할 수 있습니다.

참고 문헌: