[javascript] Express.js에서의 GraphQL 연동 방법

GraphQL은 API를 개발하기 위한 쿼리 언어입니다. Express.js는 Node.js를 위한 웹 애플리케이션 프레임워크로, GraphQL을 쉽게 연동할 수 있습니다. 이번 블로그 포스트에서는 Express.js에서 GraphQL을 어떻게 연동하는지에 대해 알아보겠습니다.

단계 1: 프로젝트 설정

처음으로, Express.js 프로젝트를 만들고 expressexpress-graphql 패키지를 설치해야 합니다. 이를 위해 다음 명령어를 실행합니다:

$ mkdir my-graphql-project
$ cd my-graphql-project
$ npm init -y
$ npm install express express-graphql

단계 2: Express와 GraphQL 설정

다음으로, index.js 파일을 만들고 Express와 GraphQL을 설정해야 합니다. 다음 코드를 추가합니다:

const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { buildSchema } = require('graphql');

// GraphQL 스키마 정의
const schema = buildSchema(`
  type Query {
    hello: String
  }
`);

// Resolver 함수 정의
const root = {
  hello: () => 'Hello World!'
};

const app = express();
const port = 3000;

app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true
}));

app.listen(port, () => console.log(`Server running on port ${port}`));

위 코드에서 buildSchema 함수를 사용하여 GraphQL 스키마를 정의합니다. Query 타입은 hello 필드를 가지며, hello 필드는 문자열을 반환하는 함수와 연결됩니다.

또한, root 객체는 hello 함수의 구현을 정의합니다. 위 코드에서는 hello 함수가 “Hello World!” 문자열을 반환하도록 설정했습니다.

마지막으로, Express 앱을 생성하고 /graphql 경로에서 GraphQL 미들웨어를 사용하도록 설정합니다. graphiql 옵션을 true로 설정하면, 브라우저에서 GraphQL 쿼리를 테스트할 수 있는 도구를 사용할 수 있습니다.

단계 3: 서버 실행 및 테스트

이제 서버를 실행하고 GraphQL API를 테스트해보겠습니다. 다음 명령어를 실행하여 서버를 시작합니다:

$ node index.js

서버가 실행된 후에는 브라우저나 API 요청 도구를 사용하여 다음 주소에 접속합니다: http://localhost:3000/graphql

그럼 GraphQL 쿼리를 실행할 수 있는 도구가 나타나게 됩니다. 다음 쿼리를 입력하고 실행해보세요:

{
  hello
}

그러면 결과로 “Hello World!”라는 응답을 받게 될 것입니다. 이는 hello 필드가 정상적으로 작동한다는 것을 의미합니다.

결론

이렇게 Express.js에서 GraphQL을 연동하는 방법에 대해 알아보았습니다. Express.js와 GraphQL을 함께 사용하면 더욱 유연하고 효율적인 API를 개발할 수 있습니다. Express.js와 GraphQL에 대해 더 자세히 알고 싶다면 공식 문서를 참고해보세요.

참고 자료: