본문 바로가기
Front-End

1. Introduction

by Judy 2021. 11. 17.

GraphQL의 핵심은 클라이언트가 필요한 데이터를 정확하게 특정하여 API에 요청하는 선언적인 데이터를 불러오기를 가능하게 만드는 것.

 

고정된 형태의 데이터 구조를 반환하는 엔드포인트 여러 개 제공하는 것이 아닌, GraphQL 서버는 단 하나의 엔드포인트만을 노출시키고, 클라이언트가 요청한 데이터들만을 정확하게 반환하는 것을 GraphQL이라고 함.

 

GraphQL - API에 대한 쿼리 언어

데이터베이스 상에 데이터를 저장하고 있는 서버로부터 데이터를 불러오는 작업이 필요함.

API는 어플리케이션의 필요에 따라 저장된 데이터에 접근할 수 있는 인터페이스를 제공해야만 합니다.

 

GrpahQL은 데이터베이스가 아닌. API를 위한 쿼리 언어

API가 사용되는 모든 맥락에서 효율적으로 사용될 수 있습니다.

 

REST에 대한 보단 효율적인 대안

REST를 API를 설계하는 방식에 있어 큰 어려움으로 작용하는 3가지 요인

1. 모바일 사용의 증가로 인한 효율적인 데이터 로딩의 필요성

모바일사용, 저전력 장치, 느린 네트워크 환경의 증가 등이 Facebook이 GraphQL을 개발하고자 하는 최초의 동기

GraphQL은 네트워크 상에서 전송되어야 하는 데이터의 양을 최소화하고, 이에 따라 앞서 언급한 조건 하에 작동하는 어플리케이션의 퍼포먼스를 대체적으로 향상시켜줍니다.

 

2. 다양한 프론트엔드 프레임워크와 플랫폼의 등장

클라이언트 어플리케이션을 작동시키는 프레임워크와 플랫폼이 다양해짐에 따라, 각각의 요구사항들을 모두 충족시키는 하나의 API를 만들고 유지한다는 것이 어려워짐.

GraphQL을 사용하면, 각 클라이언트는 필요한 데이터에만 정확하게 접근하는것이 가능해짐.

 

3. 빠른 개발 & 신속한 기능 개발에 대한 기대

무중단 배포는 많은 기업들 사이에서 표준.

빠른 순환과 빈번한 서비스 업데이트는 필수가 되었습니다. REST API를 사용할 떄 클라이언트 측의 특정 요규사항이나 설계 변경에 대응하기 위하여서버의 데이터를 노출시키는 방법을 변경해야 하는 겨웅

빠른 개발, 제품 순환이 방해 받는다.

 

GraphQL은 API와 통신하는 클라이언트이라면 어디에서든 사용될 수 있는 기술입니다. Netflix, Courseara와 같은 기업들은 API 상호작용을 보다 효율적으로 개선하고자, GraphQL과 유사한 기술을 내부적으로 연구해오던 중이었습니다.

 

Coursera: 클라이언트에게 필요한 데이터를 특정할 수 있는 유사한 기술을 구상하고 있었다.

Netflix: 그들이 만든 해결책인 Falcor를 오픈 소스화하였다.

GraphQL이 오픈 소스를 공개한 뒤 Coursera는 지금까지 이루어놓은 작업을 모두 취소하고 GraphQL 프로젝트에 합류

 

'Front-End' 카테고리의 다른 글

[tailwind CSS] tailwindCSS 기초 셋팅  (0) 2021.12.16
2. GraphQL is the better REST  (0) 2021.11.17
[Redux] Redux Saga  (0) 2020.09.10
[React] 한눈에 보는 리액트  (0) 2020.08.24
[JS] iterator  (0) 2020.07.23