이안의 평일코딩

[GraphQL] 그래프QL이란? 본문

Back-end/GraphQL

[GraphQL] 그래프QL이란?

이안92 2021. 3. 18. 12:34
반응형

 GraphQL이란?

Graph Query Language는 Structed Query Language(SQL)와 마찬가지로 쿼리 언어이다. SQL은 데이터베이스 시스템에 저장된 데이터를 효율적으로 가져오는 것이 목적이고, GQL은 웹 클라이언트가 데이터를 서버로부터 효율적으로 가져오는 것이 목적이다. SQL은 주로 백엔드 시스템에서 작성하고 호출하는 반면에 GQL은 주로 클라이언트 시스템에서 호출한다.

 

 REST API와의 차이

REST API는 URL, METHOD등을 조합하기 때문에 Resource 별로 다양한 Endpoint가 존재한다. 반면 GQL은 단 하나의 Endpoint가 존재한다. REST API는 단순한 서비스에서는 좋지만 복잡한 서비스나 클라이언트의 요청사항에 따라 사용하지 않는 데이터도 같이 반환받는 리로스의 낭비 Over-Fetching과 유효한 데이터를 보여주기 위해 여러 API를 호출하게 되는 Under-Fetching이 발생한다. 그래서 서비스가 커져갈 때 개발자나 클라이언트에게 부담이 되게된다. 이러한 한계를 극복하기 위해 등장한 것이 GQL이다. GQL은 한번의 네트워크 호출로 처리가 가능하다. GQL은 불러오는 데이터의 종류를 쿼리 조합을 통해 결정한다. 즉, Endpoint를 1개만 생성하고 클라이언트에게 필요한 데이터는 직접 쿼리를 작성하고 호출하고 반환 받기 때문에 Over-Fetching, Under-Fetching 문제를 손쉽게 해결할 수 있다.

 

 GraphQL Yoga

 

graphql-yoga는 쉽게 설치하는데 중점을 둔 완전한 기능을 갖춘 GraphQL 서버이다. create-react-app 명령어처럼 GraphQL 프로젝트를 빠르게 시작할 수 있게 해준다.

yarn add graphql-yoga

터미널에서 위와 같이 GraphQL Yoga를 설치해준다.

반응형
Comments