티스토리 뷰

도움받기

한 단계씩 배워보는 GraphQL

초딩영웅 2019. 3. 18. 20:58

우리 대부분은 REST API를 만드는 데 매우 익숙 할 것입니다. GraphQL은 데이터 요구 사항과 상호 작용을 설명하기 위해 직관적이고 유연한 구문을 기반으로 클라이언트 응용 프로그램을 작성하기 위해 Facebook에서 만든 쿼리 언어입니다. GraphQL은 REST와 유사한 API의 가장 큰 단점 중 하나를 해결하도록 설계되었습니다. GraphQL 서비스는 이러한 유형에 대한 유형 및 필드를 정의한 다음 각 유형의 각 필드에 대한 기능을 제공하여 작성됩니다.

GraphQL 기능

  • 계층 구조 - 쿼리는 반환하는 데이터와 정확하게 같습니다.
  • 클라이언트 지정 쿼리 - 클라이언트는 서버에서 가져올 내용을 자유롭게 지정할 수 있습니다.
  • 강력한 형식 - 실행 전에 GraphQL 형식 시스템 내에서 구문 론적으로 쿼리의 유효성을 검사 할 수 있습니다. 또한 GraphiQL과 같은 개발 경험을 향상시키는 강력한 도구를 활용할 수 있습니다.
  • Introspective - GraphQL 구문 자체를 사용하여 유형 시스템을 쿼리 할 수 ​​있습니다. 들어오는 데이터를 강력한 형식의 인터페이스로 구문 분석하고 JSON을 구문 분석하고 수동으로 객체로 변환 할 필요가없는 훌륭한 방법입니다.

사용해야만하는 이유

전통적인 REST 호출의 주요 문제점 중 하나는 클라이언트가 사용자 정의 (제한 또는 확장) 된 데이터 세트를 요청할 수 없다는 점입니다. 대부분의 경우 클라이언트가 서버의 정보를 요청하면 모든 필드를 가져 오거나 전혀 가져 오지 않습니다.

 

또 다른 어려움은 다중 종점을 만들고 유지 보수하는 것입니다. 플랫폼이 성장함에 따라 그 수가 증가 할 것입니다. 따라서 클라이언트는 종종 다른 끝점에서 데이터를 요청해야합니다. GraphQL API는 종점이 아닌 유형 및 필드로 구성됩니다. 단일 엔드 포인트에서 데이터의 모든 기능에 액세스 할 수 있습니다.

 

GraphQL 서버를 만들 때 모든 데이터 가져 오기 및 변경을위한 하나의 URL 만 있으면됩니다. 따라서 클라이언트는 원하는 것을 설명하는 쿼리 문자열을 서버에 보내서 데이터 집합을 요청할 수 있습니다.

 

여기는 GraphQL 을 배워보는 곳입니다. 해당 링크를 참조 하시면 됩니다.

 

from 한 단계씩 배워보는 GraphQL 

from Apollo와의 실시간 GraphQL UI 업데이트.

from Express에서 GraphQL 서브 스크립 션 생성하기

from Express 서버에서 Apollo를 사용하여 GraphQL 구현

from Build a Graphql Api for Node & MYSQL 2019— JWT

from Hello, GraphQL! Graph QL 도입으로 얻었던 효과

from Building APIs with GraphQL, NodeJs, and Mongoose (실습참고)

from express-graphql에 mongodb 사용하기

 

관련 개인 실습 샘플 소스는 여기 입니다.

https://gitlab.com/betaworld/qraphql-backend

 

댓글