[typescript] 타입스크립트를 활용한 GraphQL 스키마 작성 방법

이번 포스트에서는 타입스크립트를 사용하여 GraphQL 스키마를 작성하는 방법을 알아보겠습니다. GraphQL은 API 스키마를 정의하고 타입 시스템을 활용하여 데이터를 쿼리하는 데 사용되는 강력한 쿼리 언어입니다. 타입스크립트를 사용하여 GraphQL 스키마를 정의하면 코드의 안전성과 가독성을 높일 수 있으며, 개발 과정에서 런타임 오류를 줄일 수 있습니다.

1. GraphQL 스키마 작성

먼저, 타입스크립트를 사용하여 GraphQL 스키마를 작성하기 위해 graphql 모듈을 설치해야 합니다.

npm install graphql

다음으로, graphql-tools 모듈을 사용하여 스키마를 정의하고 resolvers를 연결합니다.

// schema.ts

import { makeExecutableSchema } from 'graphql-tools';

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

const resolvers = {
  Query: {
    hello: () => 'Hello, world!',
  },
};

export const schema = makeExecutableSchema({ typeDefs, resolvers });

위 예제에서는 hello 쿼리를 가진 간단한 스키마를 작성했습니다. 이제 makeExecutableSchema 함수를 사용하여 스키마와 리졸버를 연결한 후 schema를 내보냅니다.

2. GraphQL 스키마 타입 정의

타입스크립트를 사용하여 GraphQL 스키마의 타입을 정의할 때는 graphql 모듈을 사용하여 타입을 정의합니다.

// types.ts

import { GraphQLObjectType, GraphQLString, GraphQLSchema } from 'graphql';

const queryType = new GraphQLObjectType({
  name: 'Query',
  fields: {
    hello: {
      type: GraphQLString,
      resolve: () => 'Hello, world!',
    },
  },
});

export const schema = new GraphQLSchema({ query: queryType });

위 예제에서는 GraphQLObjectType을 사용하여 Query 타입을 정의하고, 해당 타입에 hello 필드를 추가하였습니다.

결론

이제 여러분은 타입스크립트를 사용하여 GraphQL 스키마를 작성하는 방법을 숙지하였습니다. 타입스크립트의 강력한 타입 시스템을 활용하여 GraphQL 스키마를 안전하게 작성하고, 런타임 오류를 줄일 수 있습니다. GraphQL을 사용하는 프로젝트에서 타입스크립트를 활용하여 스키마를 작성해보세요.

참조: GraphQL 공식 문서, 타입스크립트 공식 문서