์ฌ์ ๋ฆฌ๋
GraphQL โ ์ ํ๋ฆฌ์ผ์ด์ ์ด ํต์ ํ๋ ๋ฐฉ์์ ๋ณํ์ํค๊ณ ๊ฐ์ ํ๋ ๊ฒ

차세대가 크립토를 구입하고 유닛 트러스트 잔액을 확인하는 것이 Fortnite 로비에서 게임 사이에 가능해지기까지 시간이 오래 걸리지 않을 것입니다. 이것은 많은 기술적 진보를 통해 가능해질 것입니다.
오늘날 우리는 애플리케이션과 그 소유 회사가 데이터를 전송하는 방식(읽기, 업데이트, 추가/삭제)에 대해 논의하고 있습니다. 애플리케이션 프로그래밍 인터페이스(API)는 이러한 데이터 통신을 정의하는 아키텍처이며, 이러한 표준이 발전함에 따라 처리 요구 사항과 데이터 저장 요구 사항은 덜 힘들어졌습니다.
軽量 리소스 사용량에서 선두 주자는 GraphQL입니다. GraphQL은 오픈 소스 데이터 쿼리 및 조작 언어이며, 그 생태계의 기초는 그 사양과 함께 생성된 도구 모음입니다.
새로운 것은 아닙니다. 페이스북은 2012년에 개발하여 모바일 애플리케이션 개발에만 내부적으로 사용했습니다. 2015년에 오픈 소스로 공개되었으며, 현재 GraphQL Foundation(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을围绕하여 많은 도구가 구축되어 개발자에게 매우 친숙합니다.
- GraphQL은 단일 엔드포인트를 가지며, REST API는 여러 엔드포인트를 가집니다. 즉, 모든 데이터를 단일 요청으로 가져올 수 있습니다.
동전의 두 면: 요청자(클라이언트)와 제공자(GraphQL 호스트)
까지 지금까지 GraphQL을 데이터 “요청” 관점에서 살펴보았습니다. Salesforce 또는 Microsoft와 같은 회사가 데이터를 쿼리하고 조작할 수 있는 GraphQL API를 설정했습니다.
예를 들어, Salesforce와 관련된 클라이언트 사고 데이터를 클라이언트 포털에 포함시키려면, 가장 효율적인 방법은 포털에서 Salesforce GraphQL 서버로 정확한 데이터를 요청하는 것입니다. 원하는 데이터만 받게 되고, 과도한 가져오기나 부족한 가져오기가 없으므로 추가 처리 또는 데이터 저장이 필요하지 않습니다.
동전의 다른 면은 클라이언트가 원하는 데이터에 효율적으로 접근할 수 있는 방법을 제공하는 조직입니다.
GraphQL 아키텍처를 구축함으로써 조직은 모든 시스템을 하나의 모델로 통합하는 모델을 생성합니다. 이것은 이러한 시스템을 통합하고, 일단 작업이 완료되면 데이터를 쿼리하는 것이 API를 통해 간결해집니다.
애플리케이션 또는 제공자를 비교할 때, 나는 데이터를 다시 가져올 수 있는 기능을 제공하는지 살펴봅니다. 나는 이메일을 보내거나 엄격한 사전 정의된 보고서에 의존하지 않습니다. 나는 데이터를 유연하고 시간적으로 쿼리할 수 있는 방법으로 “연결”하고 싶습니다. 두 개의 애플리케이션/제공자가 다른 비교 점에서 유사하게 일치하고, 하나는 REST API 또는 GraphQL API를 제공한다면, 나는 확실히 API를 제공하는 것을 선택할 것입니다.












