[nodejs] Fastify와 GraphQL 통합 방법

Fastify는 빠르고 효율적인 웹 프레임워크로서 고성능의 Node.js 애플리케이션을 빌드하는 데 사용됩니다. GraphQL은 데이터 쿼리 언어 및 런타임입니다. Fastify와 GraphQL을 통합하여 웹 애플리케이션의 성능을 향상시킬 수 있습니다. 이 게시물에서는 Fastify와 GraphQL을 함께 사용하는 방법에 대해 설명하겠습니다.

1. Fastify 및 GraphQL 설치

먼저 Fastify와 함께 GraphQL을 사용하려면 Fastify 및 GraphQL 관련 패키지를 설치해야 합니다.

npm install fastify fastify-gql graphql

이 명령을 사용하여 Fastify, Fastify GraphQL 플러그인 및 GraphQL 라이브러리를 설치할 수 있습니다.

2. Fastify 애플리케이션에 GraphQL 통합

다음으로 Fastify 애플리케이션에 GraphQL을 통합해야 합니다.

const fastify = require('fastify')();
const { makeExecutableSchema } = require('graphql-tools');
const fastifyGQL = require('fastify-gql');

// GraphQL 스키마 정의
const typeDefs = `
  type Query {
    hello: String
  }
`;

// 리졸버 함수 정의
const resolvers = {
  Query: {
    hello: () => 'Hello world!'
  }
};

// GraphQL 스키마 및 리졸버로 Fastify GQL 플러그인 등록
fastify.register(fastifyGQL, {
  schema: makeExecutableSchema({ typeDefs, resolvers }),
  graphiql: true
});

// Fastify 서버 시작
fastify.listen(3000, (err, address) => {
  if (err) throw err;
  console.log(`서버가 ${address}에서 실행 중`);
});

위의 코드 예제에서는 Fastify 애플리케이션에 GraphQL 스키마를 정의하고, 리졸버 함수를 작성한 후, Fastify GQL 플러그인을 등록하여 GraphQL을 통합하였습니다.

3. 테스트

이제 터미널에서 애플리케이션을 실행하고 브라우저에서 http://localhost:3000/graphql을 열어 GraphQL Playground 또는 GraphiQL을 통해 쿼리를 실행하여 Fastify와 GraphQL이 통합된 애플리케이션을 테스트할 수 있습니다.

이렇게하여 Fastify와 GraphQL을 통합하여 강력한 웹 애플리케이션을 구축할 수 있습니다.

위의 예에서는 Fastify GQL 플러그인을 사용하여 Fastify와 GraphQL을 통합하는 방법을 안내했습니다. Fastify와 함께 GraphQL을 사용하면 성능과 유연성을 모두 활용할 수 있으며, 빠르고 안정적인 웹 애플리케이션을 구축할 수 있습니다.

Happy coding!

Fastify 공식 문서 GraphQL 공식 문서 Fastify GQL 플러그인 GitHub 저장소