Graph Query Language

Undefined 기술블로그 ·2020년 10월 5일
0
post-thumbnail

사용자가 애플리케이션을 대하는 기준이 높아졌기 때문에

앱 성능을 그 기준에 맞춰야한다.

HTTP 요청 하나만 가지고 데이터를 받기위해 요청을 여러번 할 필요가 없다.

-웹 앱 API 개발을 위한 GraphQL 책 중에서 -

Graph Qeury Language

Graph QL은 선언형 데이터 폐칭으로써

무슨데이터가 필요한지에 대한 요구사항만 적어주면 된다.

핵심은 어떻게 가져올지는 생각하지않아도 된다는점 !

데이터 베이스 또는 데이터 관리 시스템에 접근하기 위한 언어로써

페이스북에서 2015년에 만들었다

요즘핫한 스택이기도하고 페이스북에서 만들었으니

리액트와도 조합이 잘 맞다는 평이 나있다.

간단하게 설명해보자면 기존의 restfull API 방식에서는 정보를받기위해

관련된 api와 일단은 필요없는 데이터까지 받아서 필요한 데이터만을 보여줬던 방식이었는데

그래프 ql에서는 하나의 api만 존재하며 필요한 정보만 요청하고 원하는형태로 정보를 가져오면서도
수정까지 할수있는 Query Language이다.

코드의 가독성,효율성을 높힌 기술스택이라 할수있겠다.

REST FULL API 에서 의 단점

OVER -Fetching = 필요하지않은 데이터까지 받게되는 경우

Under-Fetching = 필요한데이터를 만들기위해 여러 번의 호출이 필요

API마다 다른 URL이 존재

❗️ 이 2가지를 하고나서도 전달받은 정보를 다시 조합해야하는 작업이 발생한다

그렇다고 GraphQL만 써야하나?

그렇지않다,
한번에 많은데이터 요청을 할때는 REST 엔드포인트의
데이터를 가져오는 식의 작업방식을
Graph QL 의 좋은 사용방법으로 제시하고있다.

둘의 차이점을 보자면

아폴로 클라이언트를 많이 쓰는 이유를 여기서 알수있다.

모든 GraphQL 스키마와 작동한다는 장점이 있다.

릴레이가 페북에서 만든거지만, 만든곳보다 다른 회사에서 더 잘만들어버리다니 ..

놀랄법하지않는가??

실제로 쓰는 방법에 대해 알아보도록하자

플레이그라운드로 현재 스키마 선언부터 확인해보자

여기에서는 어떠한 타입이 올지 확인 할 수있는데

형식에 맞게 쿼리를 작성해주면된다 (필요한 데이터 요청만하기)

실제로 플레이그라운드 에서 쿼리를 날려보면

이렇게 나오는걸 알수있다.

실제 목데이터를 사용해서 쿼리를 적용해볼수 있는데

이렇게 DBeaver 프로그램을 통해서도 목데이터를 만들어서

실제 데이터를 추출해내는 시뮬레이션을 경험해볼수있다 .

간단한 쿼리 날리는 방법은

이렇게 되지만

조건이있는 쿼리가있다


이런녀석들 말이다 .

이런부분들은 말그대로 bestreviewId의 string 값이있어야만

데이터를 보내주겠다라는 의미이다.

백엔드 통신과는 이렇게 간단한 구조로 서로약속되어진 형식의 타입으로

필요한정보를 주고 받게 된다

다음 내용에서는

조금더 심도있게 다뤄보도록하겠다 실제로 데이터가 어떻게 들어오는지

어떻게 들어오게 되는 플로우인지,

자세하게 다뤄보겠다!

profile
정의 되지 않은 유연한사람이 되고싶다.

0개의 댓글