[typescript] 타입스크립트에서 GraphQL 스키마 정의하기

GraphQL은 API를 위한 쿼리 언어 및 런타임입니다. 타입스크립트를 사용하여 GraphQL 스키마를 정의하려면 graphql 라이브러리를 활용할 수 있습니다. 스키마를 정의함으로써 타입스크립트에서 GraphQL 쿼리 및 뮤테이션의 타입을 검증하고 이점을 얻을 수 있습니다.

1. 스키마 정의하기

GraphQL 스키마를 정의하려면 graphql 라이브러리의 buildSchema 함수를 사용하여 스키마를 작성합니다. 아래는 간단한 예제입니다.

import { buildSchema } from 'graphql';

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

위 예제에서는 Query 타입을 가진 hello 필드가 있는 간단한 스키마를 정의했습니다.

2. Resolver 구현하기

다음으로는 위에서 정의한 스키마에 대한 Resolver를 구현해야 합니다. Resolver는 요청된 쿼리에 대한 실제 동작을 정의하는 함수입니다.

const root = {
  hello: () => 'Hello, World!',
};

위 예제에서는 hello 필드에 대한 Resolver를 구현하여 “Hello, World!”를 반환하도록 설정했습니다.

3. 스키마와 Resolver 연결하기

마지막으로, 스키마와 Resolver를 연결하여 GraphQL 서버를 실행할 수 있습니다.

import { graphql, print } from 'graphql';

graphql(schema, print('{ hello }'), root).then((response) => {
  console.log(response);
});

위 예제에서는 graphql 함수를 사용하여 스키마, 쿼리, Resolver를 전달하여 GraphQL 요청을 수행하고 결과를 콘솔에 출력합니다.

타입스크립트를 사용하여 GraphQL 스키마를 정의하고 이를 활용함으로써 타입 안정성을 확보하고 코드 유지보수성을 높일 수 있습니다.

결론

이제 타입스크립트에서 GraphQL 스키마를 정의하고 활용하는 방법에 대해 알아보았습니다. GraphQL을 효과적으로 활용하기 위해서는 타입스크립트의 강력한 타입 시스템을 활용하여 스키마와 타입을 정의하는 것이 중요합니다.


참고 자료: