본문 바로가기

두두의 IT

GraphQL이란?

728x90

[개요]

페이스북에 의하여 REST API 문제를 해결하기 위해 만들어짐

 

[개념]

  • Specification (Spec) : GraphQL 문서에 작성된 규칙의 종류. 오픈소스 됨
  • GraphQL : 아이디어, 개념. 쿼리 언어
  • GraphQL Implementations : GraphQL의 spec을 읽고 해당 규칙을 실제의 코드로 번역한 것

 

[특징]

어느 특정 언어에 종속되지 않음

 

[REST API]

  • API : 서버와 통신하기 위해 만들어진 인터페이스
  • REST API : 여러개의 URL을 활용하여 작동함. 모든 URL은 고유하고, 각기 다른 데이터를 제공함. 이 URL은 특정 웹사이트의 URL이 아니고 JSON 포멧으로 데이터를 제공하는 역할임
  • REST : 매번 새로운 URL을 생성하는 방식

 

[REST API 문제점을 해결한 GraphQL]

1. Over Fetching : 내가 필요한 것보다 더 많은 데이터를 가져온 경우

=> 실제 필요한 정보만 특정하여 요청한다면 DB가 일을 많이 할 필요도 없고 서버와 휴대폰 간의 이동해야 하는 데이터도 커지지 않기 때문에 로딩 시간도 획기적으로 줄 것임

=> GraphQL은 Query Language이기 때문에 정확하게 필요한 정보만 요청할 수 있음

2. Under Fetching : 필요한 것보다 적은 양의 데이터를 가져온 경우

=> 각기 다른 정보가 필요할 때 REST API는 두 개의 URL을 요청해야 하므로 로딩 시간이 오래 걸림. GraphQL은 정확히 원하는 것만 요청할 수 있기 때문에 1개의 쿼리에 2개의 정보를 한방에 요청할 수 있음