본문 바로가기
카테고리 없음

GraphQL을 활용한 간단한 API 만들기: 실전 예제와 함께 알아보자

by printk 2025. 2. 7.

GraphQL을 활용한 간단한 API 만들기: 실전 예제와 함께 알아보자

요즘 많은 개발자들이 REST API 대신 GraphQL을 선택하고 있습니다. GraphQL은 클라이언트가 필요한 데이터만 요청할 수 있도록 해주기 때문에 비효율적인 데이터 전송을 줄여주고, 서버와의 통신을 최적화할 수 있도록 도와줍니다. 오늘은 GraphQL로 간단한 API를 만드는 방법에 대해 알아볼 거예요.

 

GraphQL의 기초

GraphQL이란 무엇인가요?

GraphQL은 페이스북에서 개발한 데이터 쿼리 언어입니다. 전통적인 REST API와는 달리, 데이터에 대해 클라이언트가 쿼리를 작성할 수 있습니다. 이를 통해 필요한 모든 데이터를 한 번의 요청으로 가져올 수 있으므로, 여러 엔드포인트에 요청하지 않고도 원하는 정보를 얻을 수 있어요.

GraphQL의 장점

  • 데이터 최적화: 클라이언트가 필요한 데이터만 요청할 수 있습니다.
  • 유연성: API의 버전 관리를 할 필요가 없어, API를 지속적으로 개선할 수 있습니다.
  • 강타입: 스키마를 통해 데이터의 타입을 명확히 정의할 수 있습니다.

 

GraphQL API 만들기

그럼 이제 GraphQL API를 실제로 만들어보겠습니다. 이 예제는 Node.js와 Express를 사용해 구축할 거예요.

환경 설정

먼저, Node.js와 Express를 설치해줄게요. 아래의 명령어를 터미널에 입력하세요.

bash npm init -y npm install express express-graphql graphql

이 명령어를 실행하면 express, express-graphql, graphql 패키지가 설치됩니다.

기본 코드 작성

이제 server.js 파일을 만들어서 기본 GraphQL 서버를 설정해볼게요.

const app = express();

const HelloType = new GraphQLObjectType({ name: 'Hello', fields: { message: { type: GraphQLString } } });

const RootQuery = new GraphQLObjectType({ name: 'RootQueryType', fields: { hello: { type: HelloType, resolve() { return { message: '안녕하세요, GraphQL!' }; } } } });

const schema = new GraphQLSchema({ query: RootQuery });

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

app.listen(4000, () => { console.log('서버가 4000번 포트에서 실행되고 있습니다.'); });

이 코드를 통해 GraphQL 서버를 설정할 수 있습니다. /graphql 경로로 요청을 보내면 HelloType에서 정의한 메시지를 받을 수 있어요.

쿼리 테스트하기

서버를 실행한 후, 웹 브라우저에서 http://localhost:4000/graphql로 이동해보세요. GraphiQL 인터페이스를 통해 다음 쿼리를 실행해볼 수 있습니다.

graphql { hello { message } }

이 쿼리를 실행하면 아래와 같은 결과를 응답받을 수 있어요.

json { "data": { "hello": { "message": "안녕하세요, GraphQL!" } } }

 

GraphQL 스키마의 이해

스키마란 무엇인가요?

GraphQL API의 기본이 되는 스키마는 데이터의 타입과 쿼리, 뮤테이션 등을 정의하는 문서입니다. 클라이언트가 요청할 수 있는 모든 데이터의 구조를 명세하는 역할을 해요.

스키마의 구성 요소

  • 쿼리: 데이터를 조회하는 요청을 정의합니다.
  • 뮤테이션: 데이터를 변경할 때 사용하는 요청을 정의합니다.
  • 서브스크립션: 실시간 데이터를 수신하는 요청을 정의합니다.

이렇게 각 요소들은 GraphQL API 설계에서 매우 중요한 부분이에요.

 

결론

이처럼 GraphQL을 이용한 API 구축은 클라이언트와 서버 간의 데이터 소통을 효과적으로 관리할 수 있는 방법입니다. GraphQL을 통해 필요한 데이터만 요청하고 응답받을 수 있는 능력은 현대 웹 개발에서 큰 장점으로 작용합니다. 데이터의 양과 요청의 효율성 모두를 고려할 수 있는 GraphQL의 반열에 함께 올라가 보세요.

추가 참고들

  • GraphQL 공식 문서:
  • Node.js와 GraphQL 통합 예제:
  • GraphiQL과 IDE: GraphQL 쿼리를 쉽게 테스트할 수 있는 도구입니다.

API를 구축할 때, GraphQL의 가능성을 탐구해 보세요. 이 글이 여러분에게 유익한 정보가 되었기를 바라며, 다음에 더 많은 GraphQL과 관련된 주제를 다룰 수 있도록 하겠습니다.

자주 묻는 질문 Q&A

Q1: GraphQL이란 무엇인가요?

A1: GraphQL은 페이스북에서 개발한 데이터 쿼리 언어로, 클라이언트가 필요한 데이터를 직접 요청할 수 있도록 해주는 기능을 제공합니다.

Q2: GraphQL의 장점은 무엇인가요?

A2: GraphQL의 장점으로는 데이터 최적화, 유연성, 강타입 정의가 있으며, 클라이언트가 필요한 데이터만 요청할 수 있어 비효율적인 데이터 전송을 줄입니다.

Q3: GraphQL API를 만들기 위한 기본 코드 구조는 어떻게 되나요?

A3: GraphQL API를 만들기 위해 Node.js와 Express를 사용하여 서버를 설정하고, GraphQL 스키마 및 쿼리를 정의하는 기본 코드를 작성해야 합니다.