[nodejs] Nexus를 사용한 GraphQL 서버 구축

본 포스트에서는 Nexus를 사용하여 Node.js 기반의 GraphQL 서버를 구축하는 방법에 대해 알아보겠습니다.

목차

  1. Nexus 소개
  2. GraphQL 서버 준비
  3. Nexus 모델 정의
  4. Nexus 서버 설정
  5. 결론

Nexus 소개

Nexus는 GraphQL 스키마를 더욱 쉽게 정의하고 관리할 수 있게 해주는 라이브러리입니다. TypeScript를 기반으로 하며, GraphQL 서버를 빠르고 안정적으로 개발할 수 있도록 도와줍니다.

GraphQL 서버 준비

먼저, Node.js와 npm이 설치되어 있는지 확인합니다. 그리고 프로젝트 디렉토리에서 새로운 npm 프로젝트를 초기화합니다.

npm init -y

이후, 필요한 의존성 패키지들을 설치합니다.

npm install express graphql apollo-server-express @nexus/schema

Nexus 모델 정의

모델을 정의하기 위해 schema.ts 파일을 생성하고 다음과 같이 모델을 정의합니다.

import { objectType, makeSchema } from '@nexus/schema';

const Post = objectType({
  name: 'Post',
  definition(t) {
    t.int('id');
    t.string('title');
    // 다른 필드 추가
  },
});

const schema = makeSchema({
  types: [Post],
  // 기타 설정
});

Nexus 서버 설정

Nexus 서버를 설정하기 위해 server.ts 파일을 생성하고 다음과 같이 서버를 설정합니다.

import express from 'express';
import { ApolloServer } from 'apollo-server-express';
import { schema } from './schema';

const app = express();

const server = new ApolloServer({
  schema,
});

server.applyMiddleware({ app });

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

결론

Nexus를 사용하여 GraphQL 서버를 구축하는 방법에 대해 알아보았습니다. Nexus를 사용하면 GraphQL 스키마를 쉽게 정의하고 관리할 수 있으며, 개발 작업을 효율적으로 수행할 수 있습니다.

더 많은 기능과 세부적인 내용은 Nexus 공식 문서를 참조하시기 바랍니다.