[typescript] 타입스크립트로 작성하는 Node.js GraphQL API 서버 개발 사례

본 포스트에서는 Node.js와 GraphQL을 사용하여 API 서버를 개발하는 방법에 대해 설명합니다. 모든 코드는 타입스크립트로 작성되었으며, 타입 안정성과 모듈화를 강조합니다.

목차

  1. 개발 환경 설정
  2. GraphQL 스키마 작성
  3. Resolvers 구현
  4. API 서버 구축
  5. 결론

환경 설정

먼저, 타입스크립트와 Node.js를 활용하여 개발 환경을 설정합니다. 프로젝트를 시작하려면 npm init 명령을 사용하여 package.json 파일을 생성한 후 필요한 패키지들을 설치합니다.

npm init -y
npm install typescript @types/node ts-node nodemon graphql express express-graphql

스키마 작성

다음으로, GraphQL 스키마를 작성합니다. 스키마는 API에서 지원할 쿼리와 뮤테이션의 형식을 정의하는데 사용됩니다. 타입스크립트의 타입 정의를 사용하여 스키마를 작성하면 타입 안정성을 확보할 수 있습니다.

// schema.ts
import { buildSchema } from 'graphql';

const schema = buildSchema(`
  type Query {
    hello: String
  }
`);

export default schema;

Resolvers 구현

이제 스키마에서 정의한 쿼리와 뮤테이션을 실제로 처리할 Resolvers를 구현합니다. Resolvers는 GraphQL 요청에 대한 응답을 생성하는 함수입니다.

// resolvers.ts
const resolvers = {
  Query: {
    hello: () => 'Hello, World!'
  }
};

export default resolvers;

API 서버 구축

마지막으로, Express 서버를 만들고 GraphQL 미들웨어를 연결하여 API 서버를 구축합니다.

// server.ts
import express from 'express';
import graphqlHTTP from 'express-graphql';
import schema from './schema';
import resolvers from './resolvers';

const app = express();
app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: resolvers,
  graphiql: true
}));
app.listen(4000, () => {
  console.log('GraphQL Server is running on http://localhost:4000/graphql');
});

결론

본 포스트에서는 타입스크립트와 Node.js를 이용하여 GraphQL API 서버를 개발하는 과정에 대해 알아보았습니다. 타입스크립트의 타입 안정성과 모듈화 기능을 활용하여 안정적이고 확장 가능한 API 서버를 구축할 수 있습니다.

위의 예시는 기본적인 개발 방법을 보여주는 것일 뿐, 실제 프로젝트에 적용할 때에는 보다 복잡한 기능을 고려해야 합니다.

참고 자료