GraphQL Attributes


GraphQL과 REST API는 서버가 귀찮냐 클라이언트가 귀찮냐의 차이
리소스별로 요청하지 않아도 되므로 전체 응답 크기를 줄일 수 있지만 
File 전송 등 텍스트만으로 하기 힘든 내용들을 처리하기 복잡

대부분의 요청이 crud에 해당할 때 graphql을 활용하면 좋을 수 있다
http와 https에 의한 캐싱을 잘 사용하고 다양한 [MIME-Type](https://texonom.com/mime-type-a6150fd0fbea4d9992c585fcd7f6ccb9) 이 있다면 [RESTful](https://texonom.com/restful-cddc821aa86e42ccab831ecfc22c007d) api 추천


1. GraphQL API 는 주로 하나의 Endpoint 를 사용한다.
2. GraphQL API 는 요청할 때 사용한 Query 문에 따라 응답의 구조가 달라진다.


위에서 말했듯 RESTful API 는 Resource 마다 하나의 Endpoint 를 가지고,그 Endpoint 에서 그 Resource 에 대한 (거의) 모든 것을 담당한다.반면, GraphQL 은 전체 API 를 위해서 단 하나의 Endpoint 만을 사용한다.


3. GraphQL
> - 서로 다른 모양의 다양한 요청들에 대해 응답할 수 있어야 할 때
> - 대부분의 요청이 CRUD(Create-Read-Update-Delete) 에 해당할 때
4. RESTful
> - HTTP 와 HTTPs 에 의한 Caching 을 잘 사용하고 싶을 때
> - File 전송 등 단순한 Text 로 처리되지 않는 요청들이 있을 때
> - 요청의 구조가 정해져 있을 때
### **둘 중 하나를 선택할 필요는 없다**는 것