본문 바로가기

프로그래밍

GraphQL

REST vs GraphQL

REST

1. 하나의 resource당 하나의 endpoint를 가짐

2. GET, POST, PUT, DELETE 사용

3. 응답의 형태가 정해져 있어서 필요한 정보만 요청하기 힘듦


GraphQL

1. 단일 endpoint를 권장 (요청 query문에 따라 응답이 바뀜)

2. GET -> Query, POST, PUT, DELETE -> Mutation 사용

3. 클라이언트에서 필요한 정보만 선택하여 요청


GraphQL의 장점

1. REST API는 각 resource 종류별로 요청을 해야하므로 요청 횟수가 필요한 resource에 비례하지만 GraphQL은 원하는 정보를 한번의 Query에서 요청할 수 있음

2. 필요한 정보만 선택하여 요청할 수 있어서 HTTP 응답의 사이즈를 줄일 수 있음


GraphQL의 단점

1. File 전송 등 Text 만으로 하기 힘든 내용을 처리하기 복잡함

2. 고정된 요청과 응답만 필요한 경우에는 Query로 인해 요청의 크기가 REST API 보다 커짐

3. 재귀적인 Query가 불가능함


REST vs GraphQL 선택 기준

REST

1. HTTP(S)에 의한 캐싱을 잘 사용하고 싶을 때

2. File 전송 등 Text 만으로 하기 힘든 내용을 처리해야 할 때

3. 요청의 구조가 정해져 있을 때


GraphQL

1. 서로 다른 다양한 요청들에 대해 응답할 수 있어야 할 때

2. 대부분의 요청이 CRUD에 해당 할 때



[참조]

https://dkant.net/2019/07/01/01-graphql/

https://www.holaxprogramming.com/2018/01/20/graphql-vs-restful-api/

'프로그래밍' 카테고리의 다른 글

GRASP 패턴  (0) 2020.04.22
TDD, BDD, DDD, RDD  (0) 2020.04.21
함수객체와 모나드  (0) 2019.08.19
Reactive Programming  (0) 2019.03.20
객체 지향 프로그래밍 vs 함수형 프로그래밍  (0) 2019.03.18