[typescript] 타입스크립트와 GraphQL 스키마 백엔드 연동

이번 포스트에서는 타입스크립트로 작성된 백엔드 애플리케이션과 GraphQL 스키마를 연동하는 방법에 대해 알아보겠습니다.

1. GraphQL 스키마 정의

먼저, GraphQL 스키마를 정의해야 합니다. 이때, 타입스크립트 타입을 사용하여 스키마를 정의하는 것이 좋습니다. 예를 들어 다음과 같이 User 타입을 정의할 수 있습니다.

type User {
  id: number;
  name: string;
  email: string;
}

type Query {
  user(id: number): User;
}

이렇게 정의된 스키마를 기반으로 타입스크립트 코드를 작성할 수 있습니다.

2. 타입스크립트 코드 작성

타입스크립트로 작성된 백엔드 애플리케이션에서는, GraphQL 스키마와 연동하기 위해 graphql-js 라이브러리를 사용할 수 있습니다. 먼저, 필요한 패키지를 설치합니다.

npm install graphql express apollo-server-express

다음으로, 스키마에 맞는 리졸버 함수를 작성합니다.

import { ApolloServer, gql } from 'apollo-server-express';

const typeDefs = gql`
  type User {
    id: Int
    name: String
    email: String
  }

  type Query {
    user(id: Int): User
  }
`;

const resolvers = {
  Query: {
    user: (parent, args, context, info) => {
      // 사용자 정보를 가져오는 로직 작성
    }
  }
};

const server = new ApolloServer({ typeDefs, resolvers });

// Express 앱에 GraphQL 서버를 마운트
const app = express();
server.applyMiddleware({ app });

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

3. 애플리케이션 테스트

이제 애플리케이션을 실행하고 GraphQL Playground 나 다른 클라이언트를 사용하여 스키마와 백엔드가 잘 연동되었는지 테스트할 수 있습니다.

이렇게 타입스크립트와 GraphQL 스키마를 백엔드에서 연동함으로써, 타입 안정성과 유연한 데이터 요청 처리를 할 수 있는 백엔드 애플리케이션을 구축할 수 있습니다.

참고 자료

이상으로 타입스크립트와 GraphQL 스키마 백엔드 연동에 대한 포스트를 마치도록 하겠습니다. 감사합니다.