GraphQL은 API를 개발하기 위한 쿼리 언어입니다. Express.js는 Node.js를 위한 웹 애플리케이션 프레임워크로, GraphQL을 쉽게 연동할 수 있습니다. 이번 블로그 포스트에서는 Express.js에서 GraphQL을 어떻게 연동하는지에 대해 알아보겠습니다.
단계 1: 프로젝트 설정
처음으로, Express.js 프로젝트를 만들고 express
와 express-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에 대해 더 자세히 알고 싶다면 공식 문서를 참고해보세요.
참고 자료: