본문 바로가기
Tech/GraphQL

GraphQL 간단 소개

by egas 2021. 6. 24.

GraphQL은 API용 쿼리 언어이며, 기존 데이터로 이러한 쿼리를 수행하기위한 런타임이다.

 

GraphQL 쿼리를 API에 보내고 필요한 것을 정확히 얻을 수 있다.

출처: https://graphql.org/

GraphQL 쿼리는 항상 예측 가능한 결과를 반환한다.

GraphQL을 사용하는 앱은 서버가 아닌 가져오는 데이터를 제어하기 때문에 빠르고 안정적이다.

 

단일 요청으로 많은 리소스 얻기

데이터 요청 (출처: https://graphql.org/)
데이터 응답 (출처: https://graphql.org/)

일반적인 REST API는 여러 URL에서 로드해야하지만, GraphQL API는 단일 요청으로 앱에 필요한 모든 데이터를 가져올 수 있다.

따라서, GraphQL을 사용하는 앱은 느린 모바일 네트워크 연결에서도 빠를 수 있다.

 

Type 시스템으로 가능한 type에 대해 명시할 수 있다.

(출처: https://graphql.org/)

GraphQL API는 엔드 포인트가 아닌 유형과 필드로 구성된다. 단일 엔드 포인트에서 데이터의 모든 기능에 엑세스 할 수 있다.

GraphQL은 Type을 사용하여 앱이 가능한 항목만 요청하여 명확하고 유용한 오류만 제공 받을 수 있다.

 

GraphiQL 개발자 도구가 만들어져 있다.

https://github.com/graphql/graphiql

 

graphql/graphiql

GraphiQL & the GraphQL LSP Reference Ecosystem for building browser & IDE tools. - graphql/graphiql

github.com

 

버전없이 API를 발전시킬 수 있다.

새로운 fields나 type을 추가/삭제하려할 때, 간편하게 기존 type에 추가/@deprecated만 붙이면 돼서 지속적인 액세스를 제공하면서 더 깨끗하고 유지 관리가 쉬운 서버 코드를 작성 할 수 있다.

 

사용하고 있는 회사들

 

Facebook의 모바일 앱은 2012년 부터 GraphQL로 구동되었다. GraphQL의 사양은 2015년에 오픈 소스로 개방됐으며 많은 팀에서 사용 중이다.

 

REST API vs GraphQL

REST API

각각 하나의 리소스를 여러 URL로 노출한다.

GraphQL

GraphQL은 일반적으로 서비스의 모든 기능을 하나의 엔드포인트 HTTP를 통해 제공된다. 

728x90

'Tech > GraphQL' 카테고리의 다른 글

GraphQL Schema  (0) 2021.07.01
GraphQL best practice  (0) 2021.06.24
GraphQL 스카마 & 타입  (0) 2021.06.24
GraphQL 쿼리, 뮤테이션  (0) 2021.06.24

댓글