그래프QL 뜻(GraphQL)? GQL과 SQL 2가지 구분

GraphQL 의미 및 개념 설명

GraphQL의 의미와 개념에 대해 알아봅시다.

GraphQL의 의미와 개념을 이해합니다.

GraphQL은 웹과 앱을 의미합니다. API(애플리케이션 프로그래밍 인터페이스) 쿼리 언어를 의미합니다. GraphQL(GraphQL)은 그래프 쿼리 언어(Graph Query Language)의 약어입니다. GraphQL(GQL)은 기존 REST API의 한계를 극복하고 서버와 보다 효율적으로 통신하기 위해 서버에 데이터를 요청합니다. 데이터를 검색하거나 변경할 수 있는 API 언어입니다. GraphQL을 이용하면 REST API가 아닌 다른 방식으로 연결된 데이터 중에서 원하는 데이터만 효율적으로 검색할 수 있습니다. GQL(GraphQL)은 2015년 React.js를 통해 개발되었습니다. 페이스북 주식회사이것은 에서 게시한 쿼리 언어입니다.

GraphQL 의미 및 개념 설명

GraphQL은 클라이언트 시스템이 서버 시스템에서 필요한 데이터를 검색하는 데 사용하는 API(Application Programing Interface)에 대한 쿼리 언어를 의미합니다. Graph QL(Graph Query Language)은 기존 REST API의 한계를 극복하기 위해 Facebook에서 만들었으며, 필요한 데이터 필드를 포함하여 쿼리를 서버에 보내 클라이언트가 서버에서 원하는 데이터를 유연하게 수신할 수 있도록 해줍니다. 이를 위해 만들어졌습니다. 그러나 GraphQL은 클라이언트에서 직접 사용할 수 있습니다. 데이터베이스(DB)접근하는 구조가 아니며, 요청한 쿼리에 포함될 수 있는 모든 데이터 필드에 대해 어떤 데이터를 처리하여 전송할지 서버에 미리 구현하여 구성되어 있습니다. GraphQL을 통해 클라이언트 측은 API 요청을 보다 유연하게 만들 수 있습니다. REST API에서 발생할 수 있는 오버페칭(over-fetching)이나 언더페칭(under-fetching) 문제를 개선하고, 클라이언트 측의 자유도를 높일 수 있는 기술입니다. 기존 대표 클라이언트와 서버 간 통신 방식은 REST API 방식이었습니다. 메인 시스템이나 서버 측 개발자는 REST API를 생성하고 API 사양을 통해 클라이언트 측 개발자에게 사용 방법을 제공합니다. 클라이언트 측 개발자는 API 사양에 설명된 대로만 데이터를 수신할 수 있습니다. 클라이언트 측 개발자는 원하는 데이터만 선택하여 받을 수 없었고, 원하는 데이터가 없을 경우에는 기본 시스템이나 서버 측 개발자에게 필요한 데이터 필드가 포함된 API를 추가로 요청해야 했습니다. 하지만 GraphQL은 이러한 불편함을 해결해줍니다. GQL(그래프 쿼리 언어)은 SQL(구조적 쿼리 언어)과 다릅니다.[GQL과 SQL 2가지 구분]

Classification SQL (Structured Query Language) 데이터베이스에서 데이터를 효율적으로 검색하는 쿼리 언어입니다. GQL(Graph Query Language) 클라이언트에서 서버의 데이터를 효율적으로 검색하는 언어입니다.

SQL(Structured Query Language)은 데이터베이스(DB)에 저장된 데이터를 효율적으로 검색하기 위해 사용되는 쿼리 언어이다. GQL(Graph Query Language)은 웹 클라이언트 측에서 서버로부터 데이터를 효율적으로 검색하기 위한 쿼리 언어입니다. 기존 REST API의 한계를 극복하기 위한 언어입니다. Graph QL은 기존 REST API 방식보다 장점이 더 많습니다. REST API 방식에서 오버페치는 필요한 데이터를 검색하기 위해 불필요한 데이터를 검색해야 합니다. 오버페칭 문제가 있었는데, GraphQL 방식을 사용하면 필요한 데이터만 선택적으로 가져올 수 있습니다. 그리고 REST API 방식에서는 여러 데이터를 조회하기 위해 여러 번의 요청이 필요한 under-fetching 문제가 발생할 수 있는데, GraphQL 방식은 한 번의 요청으로 한 번에 여러 데이터를 조회할 수 있다는 장점이 있습니다. Graph QL 방법에는 끝점이 하나만 있습니다. GraphQL은 웹이나 앱에서 그래프 구조로 API(Application Program Interface)를 보다 편리하고 효율적으로 쿼리할 수 있는 쿼리입니다. 그것은 언어이다. REST API는 간단한 쿼리는 가능하지만, 응답을 받을 때 불필요한 데이터가 많이 포함되어 있어 통신을 낭비하는 비효율적인 구조였습니다. 데이터베이스(DB)에 발행할 SQL(Structured Query Language)을 정의하면 웹을 통해 원하는 데이터를 얻을 수 있다. GraphQL은 Facebook 회사에서 만들었습니다. 페이스북에서는 모바일 앱을 개발할 때 안드로이드, iOS 등 다양한 운영체제와 다양한 디바이스에 따라 필요한 데이터 타입이 조금씩 다르기 때문에 REST API 방식으로는 구현하기가 어렵습니다. 데이터를 요청하는 측에서 원하는 형식으로 데이터를 검색할 수 있도록 수정할 수 있는 쿼리 언어와 유사한 API를 만들었습니다. REST API와 달리 Graph QL을 사용하면 필요한 데이터를 보다 구체적으로 요청할 수 있습니다. REST API 방식에서는 필요 이상으로 많은 데이터를 생성하는 오버페치 문제가 자주 발생하는데, 그래프 QL에서는 필요한 데이터만 요청하고 필요한 데이터만 받을 수 있습니다. Graph QL의 경우 개발서버의 구조가 기존 REST API에 비해 훨씬 복잡해진다는 문제가 있습니다. REST API의 호출 구조는 매우 간단하지만, GraphQL에서는 다양한 옵션이 포함되어 복잡해집니다. 또한 GraphQL 전용 프레임워크와 플러그인이 없으면 GraphQL을 개발하기가 어렵습니다. 하지만 Graph QL은 단점보다 장점이 훨씬 크기 때문에 Graph QL은 매우 효과적이고 좋은 데이터 쿼리 언어입니다. Graph QL과 관련된 개념에는 gRPC, GraphiQL 및 BFF가 포함됩니다. gRPC(구글 원격 프로시저 호출)은 구글 주식회사에서 만든 오픈 소스 RPC(Remote Procedure Call) 프레임워크입니다. gRPC는 XML-RPC나 SOAP에 비해 데이터의 양을 줄일 수 있는 방법이다. XML-RPC나 SOAP의 경우 XML 등 텍스트 형식으로 교환하기 때문에 불필요한 데이터가 많지만, gRPC는 바이너리로 통신하기 때문에 데이터의 양을 줄일 수 있다. GraphiQL은 웹 브라우저 등에서 실행할 수 있는 GraphQL용 통합 개발 환경을 말합니다. GraphiQL을 사용하면 요청 세부 정보를 입력하고 요청에 대한 응답을 간단히 확인할 수 있습니다. BFF(Backend for Frontend)는 프런트엔드를 위한 백엔드 서버를 말합니다. BFF는 API 호출 및 HTML 생성을 담당하는 서버를 나타냅니다. 마이크로 서비스가 증가하면 여러 API를 구성하면 요청 수를 크게 줄일 수 있습니다.