사상 리더

Graphql – 데이터 통신 방식을 변화시키고 개선하는 방법

mm
Unite.AI를 Google의 선호 소스에 추가

다음 세대는 곧 크립토를 구입하고 유닛 트러스트 잔액을 확인하기 위해 Fortnite 로비에서 게임 사이에 технолог적인 발전을 통해 이를 가능하게 할 것입니다.

오늘날 우리는 애플리케이션과 소유한 회사 간에 데이터가 전송되는 방식(읽기, 업데이트, 추가/삭제)에 대해 논의합니다. 애플리케이션 프로그래밍 인터페이스(API)는 이러한 데이터 통신을 정의하는 아키텍처이며, 이러한 표준이 발전함에 따라 처리 요구 사항과 데이터 저장 요구 사항은 덜 번거로워졌습니다.

리소스 사용량이 가벼운 대표적인 예는 GraphQL입니다. 이는 오픈 소스 데이터 쿼리 및 조작 언어이며, 그 기반은 사양과 함께 만들어진 도구 모음입니다.

새로운 것이 아닙니다. 페이스북에서 2012년에 개발하여 모바일 애플리케이션 개발에만 내부적으로 사용했습니다. 2015년에 오픈 소스로 공개되었으며, 현재 GraphQL 재단(https://graphql.org/foundation/)에서 관리하고 있습니다.

나는 왜 지금 이것에 대해 글을 쓰고 있는가? 기술적 채택의 일반적인 로드맵은 다음과 같은 단계를 따릅니다. 1) 취미/개인 프로젝트, 2) 여러 언어에 걸친 구현, 3) 스타트업 및 소규모 회사에 걸친 구현, 4) 중형 회사 및 제품 개발에서 사용, 5) 대기업 및 기술 거인.

GraphQL은 5단계에 도달했습니다. 현재 GitHub, Pinterest, Shopify, Microsoft 등에서 사용되고 있으며, 최근에는 2022년 3월에 Salesforce에서도 사용되고 있습니다.

Salesforce에서 데이터를 더 효율적으로 가져오는 방법을 찾던 중에 GraphQL 문서를 발견하고 읽기 시작했습니다.

전통적인 REST API와 어떻게 다르나요?

  • GraphQL의 주요优势 중 하나는 특정 데이터만 쿼리하여 반환할 수 있다는 것입니다. 특정 클라이언트 사건과 관련된 두 개의 필드만을 원한다면, 그 둘만을 얻을 수 있습니다. 전통적인 REST API는 사건과 관련된 모든 필드를 반환합니다. 그 필드는 100개 이상일 수 있습니다. 이제 원치 않는 모든 데이터를 처리해야 합니다. 이것을 데이터 오버 패칭(언더 패칭도 문제입니다)이라고 합니다.
  • 위의 내용은 GraphQL이 데이터를 반환할 때 다른 API 방법론보다 빠르다는 것을 의미합니다.
  • GraphQL은 강력한 타입 언어로, 코드 오류를 실행하기 전에 발견할 수 있습니다.
  • 개발자에게 매우 친숙한 도구 세트가 만들어졌습니다.
  • GraphQL은 단일 엔드포인트를 가지며, REST API는 여러 엔드포인트를 가집니다. 즉, 모든 데이터를 단일 요청으로 가져올 수 있습니다.

동전의 두 면: 요청자(클라이언트)와 제공자(GraphQL 호스트)

지금까지 GraphQL을 데이터 “요청” 관점에서 살펴보았습니다. Salesforce 또는 Microsoft와 같은 회사가 GraphQL API를 설정하여 데이터를 쿼리하고 조작할 수 있습니다.

예를 들어, Salesforce와 관련된 클라이언트 사건 데이터를 클라이언트 포털에 포함시키려면, 가장 효율적인 방법은 포털에서 Salesforce GraphQL 서버로 정확히 필요한 데이터를 요청하는 것입니다. 원하는 데이터만을 얻을 수 있으며, 추가적인 처리 또는 데이터 저장이 필요하지 않습니다.

동전의 다른 면은 클라이언트가 원하는 데이터에 효율적인 방법으로 접근할 수 있도록 GraphQL 아키텍처를 설정하는 조직입니다.

GraphQL API를 구축하면 조직은 모든 시스템을 하나의 모델로 통합하는 모델을 생성합니다. 이러한 시스템을 통일하면, 일단 작업을 완료하면 데이터를 쿼리하는 것이 API를 통해 간단해집니다.

애플리케이션 또는 제공자를 비교할 때, 데이터를 다시 가져오는 기능을 제공하는지 확인합니다. 이메일을 보내거나 엄격하게 정의된 보고서에 의존하지 않으려 합니다. 데이터를 유연하고 시간적으로 쿼리할 수 있는 방법으로 “플러그인”하고 싶습니다. 두 개의 애플리케이션/제공자가 다른 비교 점에서 유사하게 일치하고, 하나가 REST API 또는 GraphQL API를 제공한다면, 나는 분명히 API를 제공하는 것을 선택할 것입니다.

Marcus Loveland, RP PA Analyst Developer at Maitland Fund Services, ‘IT ’을 위해 글을 쓰며, 응용 프로그램 프로그래밍 인터페이스(API)에 대해 앞으로 나아가고 GraphQL API 아키텍처에 집중하고 있습니다.