[typescript] GraphQL 스키마 데이터베이스 연동

GraphQL은 클라이언트와 서버 간의 데이터 통신을 위한 강력한 쿼리 언어입니다. 이번에는 TypeScript와 GraphQL을 사용하여 스키마를 데이터베이스와 연동하는 방법을 알아보겠습니다.

필수 도구

이 예제를 따라하기 위해서는 다음의 도구가 필요합니다:

프로젝트 설정

먼저 프로젝트 폴더를 만들고, 필요한 패키지를 설치합니다.

mkdir graphql-database-connection
cd graphql-database-connection
npm init -y
npm install graphql graphql-tools express apollo-server-express
npm install -D typescript @types/node
npx tsc --init

GraphQL 스키마 정의

다음으로, schema.graphql 파일을 생성하고 GraphQL 스키마를 정의합니다.

type User {
  id: ID!
  name: String!
  email: String!
}

type Query {
  getUser(id: ID!): User
}

TypeScript 코드 작성

index.ts 파일을 생성하고 다음과 같이 코드를 작성합니다.

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

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

  type Query {
    getUser(id: ID!): User
  }
`;

const resolvers = {
  Query: {
    getUser: (parent, args, context, info) => {
      // 데이터베이스에서 사용자 정보를 가져와 반환하는 코드 작성
    },
  },
};

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

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

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

데이터베이스 연동

마지막으로, resolvers에 데이터베이스 쿼리 로직을 추가하여 GraphQL 스키마와 데이터베이스를 연동합니다. 원하는 데이터베이스에 따라서 적절한 데이터베이스 클라이언트를 사용하여 연동 작업을 진행합니다.

이제 TypeScript와 GraphQL을 사용하여 스키마를 데이터베이스와 연동하는 방법을 알아보았습니다. 이를 바탕으로 원하는 데이터를 효율적으로 관리하고 조작할 수 있게 될 것입니다.