[typescript] 타입스크립트로 GraphQL API를 작성하는 방법

GraphQL은 API를 쉽게 설계하고 쿼리할 수 있도록 도와주는 쿼리 언어입니다. 타입스크립트와 함께 사용하면 타입 안정성과 편리한 개발 경험을 얻을 수 있습니다. 타입스크립트로 GraphQL API를 작성하는 방법에 대해 알아봅시다.

1. 프로젝트 설정

먼저, 타입스크립트로 GraphQL API를 작성하기 위한 프로젝트를 설정합니다. 프로젝트 디렉토리를 생성한 후 다음 명령어를 사용하여 필요한 패키지를 설치합니다.

npm init -y
npm install express apollo-server-express graphql type-graphql
npm install --save-dev typescript @types/node
npx tsc --init

2. 스키마 정의

GraphQL API의 스키마를 정의합니다. 타입스크립트 클래스와 데코레이터를 사용하여 스키마를 작성할 수 있습니다.

예를 들어, 사용자 정보를 다루는 간단한 스키마를 작성해보겠습니다.

import { ObjectType, Field, ID } from 'type-graphql';

@ObjectType()
class User {
  @Field((type) => ID)
  id: string;

  @Field()
  name: string;

  @Field()
  email: string;
}

3. 리졸버 작성

스키마에 대한 실제 동작을 정의하는 리졸버를 작성합니다. Express와 함께 apollo-server를 사용하여 간단한 예제를 작성해보겠습니다.

import { ApolloServer } from 'apollo-server-express';
import { buildSchema } from 'type-graphql';
import express from 'express';

async function startApolloServer() {
  const schema = await buildSchema({
    resolvers: [/* Resolvers go here */],
  });

  const server = new ApolloServer({ schema });

  const app = express();
  server.applyMiddleware({ app });

  app.listen({ port: 4000 }, () =>
    console.log(`Server ready at http://localhost:4000${server.graphqlPath}`)
  );
}

startApolloServer();

4. 실행

타입스크립트 코드를 컴파일하고 서버를 실행하여 GraphQL API를 테스트합니다.

npx tsc
node dist/index.js

이제 타입스크립트로 간단한 GraphQL API를 작성하는 방법에 대해 알아보았습니다. 타입스크립트와 GraphQL을 함께 사용하면 강력한 타입 시스템과 편리한 개발 경험을 얻을 수 있습니다.

더 많은 정보는 타입스크립트 공식 문서와 GraphQL 공식 문서를 참고해보세요.

타입스크립트 공식 문서 GraphQL 공식 문서

이상으로, 타입스크립트로 GraphQL API를 작성하는 방법에 대해 알아보았습니다. 문제가 있거나 추가 질문이 있으시면 얼마든지 물어보세요!