Graphql을 왜 해야할까요??

2018. 11. 20. 04:32javascript/node.js - Graphql

Graphql을 왜해야 할까요?

필자는 과거에 Rest Api를 사용하여 웹서버를 개발했었는데 공부를 하다보니 Graphql이라는 API를 알게되었고 사용하면서 알게된 RestApi보다 좋은 점을 적어보려고한다. 

        1. UnderFetching


RestApi는 일반적으로 url을 통해서 요청을 하고 결과값을 반환한다. 하지만 만약에 웹이 처음에 켜지고 너무 많은 요청들이 들어오면 서버가 과부화 될 수 있다. 

하지만 GraphQL에서는 단 한번의 요청만으로 페이지에 필요한 모든 데이터를 가져올 수 있습니다. 




2. OverFetching 

RestApi에서는 예를 들어 유저의 정보를 가져오는데 get /users를 쓸겁니다. 근데 클라이언트는 이름만 필요하는데 /getNames를 하나 새롭게 만드는 것도 불편하고 /users를 통해서 유저 정보 중 이름만 반환하는 것은 디비에 유저의 정보에 접근 하는데 결국 사용하는 것은 이름밖에 없기 때문에 비효율 적입니다. 하지만 GraphQL에서는 자기가 필요한 데이터만 추출해서 받아올 수 있습니다. 


그래서 RestAPI와는 다르게 url이아닌 Query문을 통해서 요청을 하게 됩니다. 


하지만 이러한 장점 말고 단점도 있습니다. 


1. 고정된 크기의 요청이 많을 때는 RestAPI 보다 요청량이 많을 수 있습니다. 


2. 파일요청 등을 다룰 때에는 복잡합니다. 


3. 재귀적인   Query 문을 사용하지 못합니다. 


그래서 텍스트 데이터나 다양한 정보가 필요한 경우에는 GraphQL이 더 좋을 수 도 있습니다. 하지만 파일 형태의 데이터를 주고 받거나 형식적인 요청이 정해져있을 때 Rest를 쓰는 것이 더 좋습니다. 

 

'javascript > node.js - Graphql' 카테고리의 다른 글

Mutation 사용하기  (0) 2018.11.20
Schema와 Resolver 등록해서 사용해보기  (0) 2018.11.20
Graphql 시작하기  (0) 2018.11.19