ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Web] GraphQL 이란?
    WEB 2020. 11. 15. 14:42
    728x90

    GraphQL이란?

    • facebook에서 만든 Graph Query Language로 API를 위한 쿼리 언어
    • 타입 시스템을 이용해서 실행하는 서버사이드 런타임

    REST API의 단점을 극복하기 위해 만들어짐

    • REST API는 API를 호출했을 때 상황에 따라 필요하지 않은 데이터도 받는 Over Fetching이 발생
    • REST API는 원하는 데이터를 얻기 위해 여러 API를 호출하는 Under Fetching이 발생
    • API를 만들 때 도메인 별로 엔드포인트를 갖기 때문에 각 도메인에 비슷한 API가 존재할 수 있음

    GraphQL의 장점

    • 하나의 엔드포인트만 가지고 있음
    • 클라이언트에서 쿼리를 작성하여 필요한 데이터를 받아옴
      • 요청 횟수와 응답 사이즈를 줄일 수 있음
      • Over Fetching, Under Fetching 문제 해결

    GraphQL의 단점

    • 요청이 text로 전달되서 파일 전송 등의 구현이 복잡
    • 캐싱 사용 불가 (Apollo를 사용하여 해결 가능)
    • 재귀적인 쿼리를 사용할 수 없음 (Apollo를 사용하여 해결 가능)
    728x90

    'WEB' 카테고리의 다른 글

    [WEB] Nginx란?  (0) 2021.03.01
    Apollo란?  (0) 2020.12.05
    API, SDK 란?  (0) 2020.11.14
    [WEB] Message Queue란?  (0) 2020.09.17
    [WEB] MSA(Microservices Architecture)란?  (0) 2020.09.01
Designed by Tistory.