Self-Study/기타

[GraphQL] GraphQL의 기본 개념

Raadian 2022. 9. 27. 16:38

References

https://graphql.org/

https://tech.kakao.com/2019/08/01/graphql-basic/

http://www.incodom.kr/REST

https://www.apollographql.com/blog/graphql/basics/graphql-vs-rest/

 

 

GraphQL 이란?

메타(meta)에서 개발된 쿼리 언어로 줄여서 GQL이라고도 한다.

기존 SQL과 달리 GrapQL의 경우 클라이언트 시스템에서 쿼리를 작성하고 데이터를 호출하는 특징이 있다.

 

 

GraphQL이 가진 특성

SQL - Backend - Frontend의 경우 REST API와 같은 네트워크를 통해 데이터를 요청 및 응답하는 과정이 일반적이다.

다만, 해당 구조의 특성 상 서버에서 구현한 각 API마다 여러 번 호출 및 응답 과정을 거치기 때문에 만약 한 페이지 내에서 수많은 API를 호출해야 할 경우 그만큼 클라이언트의 로직 복잡화 및 속도 저하로 인해 유지보수의 어려움이 생긴다.

또한 데이터의 요청 및 응답한 번에 하나씩 이루어지기 때문에 원하는 데이터를 가져오기 위해선 그만큼 방대한 양의 데이터도 한꺼번에 가져와야 한다.

REST API의 요청, 응답 체계


이와 반면에, GraphQL의 경우 기존 RestAPI와 같은 구조에서 벗어나 클라이언트 측에서 원하는 데이터를 요청시 이를 한 번만 가져와 응답을 하는 구조로 좀 더 직관적이고 빠른 형태의 네트워크가 이루어진다.

var { graphql, buildSchema } = require('graphql');

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

var rootValue = { hello: () => 'Hello world!' };

var source = '{ hello }';

graphql({ schema, source, rootValue }).then((response) => {
  console.log(response);
});

Rest API와 GraphQL의 요청, 응답 차이