둘의 차이점을 알려면 우선 sever.api가 무엇인지 부터 알아야 합니다.
적절한 요청을 하였을 때 그에 맞는 응답을 되돌려 주는 창구를
웹을 통에 노출한 것 입니다.
이러한 server.api를 만드는 방법론 중 하나로 REST 라는
것이 있는 것 입니다.
모든 Resource (자료, User, …) 들을 하나의 Endpoint 에 연결해놓고,
각 Endpoint 는 그 Resource 와 관련된 내용만 관리하게 하자는 방법론 입니다.
표준이 존재하지 않습니다.
사용할 수 있는 메소드가 4가지 밖에 없습니다.
구형의 브라우저가 아직 지원하지 못하는 부분이 존재 합니다.
graphql은 요청할 때 사용한 query 문에 따라 응답의 구조가 달라지기에
필요한 것만 꺼내 쓸 수 있기 때문입니다.
하지만 이러한 graphql에도 단점이 있는데,
1) File 전송 등 Text 만으로 하기 힘든 내용들을 처리하기 복잡합니다.
2) 고정된 요청과 응답만 필요할 경우에는 Query 로 인해 요청의 크기가 RESTful API 의 경우보다 더 커집니다.
그렇다면 GraphQL 과 RESTful 중 어떤 것을 선택해서 사용해야하는가는
다음과 같은 기준으로 선택하면 될 것입니다.
GraphQL
1. 서로 다른 모양의 다양한 요청들에 대해 응답할 수 있어야 할 때
대부분의 요청이 CRUD(Create-Read-Update-Delete) 에 해당할 때
RESTful
1. HTTP 와 HTTPs 에 의한 Caching 을 잘 사용하고 싶을 때
2. File 전송 등 단순한 Text 로 처리되지 않는 요청들이 있을 때
요청의 구조가 정해져 있을 때