GraphQL 은 페이스북에서 만든
Graph Query Language 로 어플리케이션 레이어 쿼리 언어입니다.
GraphQL 은 sql 과 마찬가지로 쿼리 언어이다
그럼 이둘의 차이는 무엇인가 ??
{
hero {
name
friends {
name
}
}
}
select name , friends from hero
GET /user/1/
response body
{
"id" : 1,
"name" : jakdu,
"age" : 3,
"address" : "korea~~~"
....
}
만약에 내가 name 과 address 만상요하고자 한다고 하면 두개만 가져오면 되겠지만 그러한 API 가 없을 시 나머지도 호출을 해야한다.
리소스의 낭비가 된다.
사용자에 대한 게시판과 profile , chart 를 들고올려면 어떻게 해야할까
/user/1/profile
/user/1/chart
/user/1/board
각 3개의 데이터를 보여주기 위해 여러 API 를 호출해야한다.
다양한 API 를 생성하게 됩니다.
/user
/user/1
/user/1/profile
/user/1/cart
.....
GraphQL 은 단하나의 Endpoint 가 존재합니다.
또한 , gql API 에서는 불러오는 데이터의 종류를 쿼리 조합을 통해서 결정 합니다.
Endpoint 는 1개만 생성하고 클라이언트에게 필요한 데이터는 클라이언트가 직접 쿼리작성 , 호출하여 반환받습니다.
한번의 네트워크 호출로 처리가 가능
참고자료
https://docs.graphene-python.org/en/latest/quickstart/
https://tech.kakao.com/2019/08/01/graphql-basic/
장점
단점