GraphQL

cracKey·2022년 7월 12일
0

GraphQL

페이스북에서 개발한 GraphQL은 API를 위한 쿼리 언어이며 타입시스템을 사용한 서버사이드런타임.
REST를 대체할 수 있는 GraphQL은 개발자가 단일 API호출로 다양한 데이터 소스에서 데이터를 끌어오는 요청을 구성할 수 있도록 지원합니다.

GraphQL 작업은 쿼리와 변형입니다. 이를 생성, 읽기, 업데이트, 삭제(CRUD) 모델로 생각해 보자면, 쿼리는 읽기와 동일한 과정입니다. 이외 모든 작업(생성, 업데이트, 삭제)는 변형을 통해 이루어집니다.

GraphQL은 선언형 데이터 fetching 언어라고 부르는데, 개발자는 무슨 데이터가 필요한 지에 대해서만 요구사항을 작성하면 되고, 어떻게 가져올지는 신경쓰지 않아도 됩니다.

sql이 데이터베이스 시스템에서 저장된 데이터를 효율적으로 가져온다면, gql은 웹 클라이언트가 데이터를 서버로부터 효율적으로 가져오는 것에 특화되어 있습니다. 그래서 보통 gql의 문장은 주로 클라이언트 시스템에서 작성하고 호출합니다.

Rest API가 url, method와 같은 다양한 조합으로 생기는 다양한 endpoint가 존재한다면, gql은 단 하나의 endpoint만 존재한다는 특징이 있습니다.

GraphQL 장점

  • GraphQL 호출은 단일 왕복으로 처리되며 클라이언트는 오버페칭 없이 요청한 결과만 얻습니다.

    Over-fetching : 내가 요청한 영역의 정보보다 더 많은 정보를 서버에서 받는다. 즉, 쓸모없는 정보들도 받게된다. 이는 비효율적이고 개발자들이 뭘 받았는지 모르게 된다.

    Under-fetching : 어떤 하나를 완성하기위해 다른 요청들을 해야할 때 발생한다. REST에서 하나를 완성하려고 많은 소스를 요청하는 것이 Under-fetching이다.

GraphQL 구조

  • Query (쿼리 = 데이터)
  • Mutation (변형)
  • Subscription (설명)

참고
profile
키보드가 부서지게 / 개발공부노트

0개의 댓글