REST API vs GraphQL

정민준·2022년 5월 16일
0

API

 API는 적절한 요청을 하였을 때 그에 맞는 응답을 되돌려 주는 창구 (Endpoint)를 Web를 통해 노출한 것을 말한다.
 이 APIfmf 만드는 방법 중 하나가 REST라는 것이 있고, 예전부터 현재까지 많이 사용된다.

REST

REpresentational State Transfer 의 줄임말이며, 
자원(resource)의 표현(representation)에 의한 상태 전달이다.
HTTP를 통해 CRUD(Create, Read, Update, Delete)를 실행하는 API를 뜻한다.

REST 장,단점

  * 장점

  - REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 
    최대한 활용할 수 있는 아키텍쳐 스타일이다.
  - HTTP 프로토콜을 사용하므로 REST API 사용을 위한 인프라를 구축할 필요가 없다.
  - HTTP 표준프로토콜을 따르는 모든 플랫폼에서 호환된다. (범용성)
  - REST API 메시지가 의도하는 바를 명확하게 나타내므로 의도하는 바를 쉽게 파악할 수 있다.
  서버와 클라이언트의 역할을 명확하게 분리한다.
  
  * 단점
  
  - 표준이 존재하지 않는다.
  - 사용할수 있는 메소드가 4가지 밖에 없다.
  - 구형의 브라우저가 아직 지원하지 못하는 부분이 존재한다.
  

GraphQL

GraphQL 은 Graph Query Language 의 줄임말이다.
Query Language 는 정보를 얻기 위해 보내는 질의문(Query)을 만들기 위해 
사용되는 Computer 언어의 일종이다.

GraphQL 장,단점

 * 장점
 - HTTP 요청 횟수를 줄일 수 있다.
   RESTful 은 각 Resource 종류 별로 요청을 해야하고, 
   따라서 요청 횟수가 필요한 Resource 의 종류에 비례한다.
   반면 GraphQL 은 원하는 정보를 하나의 Query 에 모두 담아 요청하는 것이 가능하다.
   
 * 단점
 -  File 전송 등 Text 만으로 하기 힘든 내용들을 처리하기 복잡하다.

 - 고정된 요청과 응답만 필요할 경우에는 Query 로 인해 요청의 크기가 
   RESTful API 의 경우보다 더 커진다.

 - 재귀적인 Query 가 불가능하다.
   (결과에 따라 응답의 깊이가 얼마든지 깊어질 수 있는 API 를 만들 수 없다.)

RESTful? GraphQL?

선택 기준
 * GraphQL
 - 서로 다른 모양의 다양한 요청들에 대해 응답할 수 있어야 할 때
 - 대부분의 요청이 CRUD(Create-Read-Update-Delete) 에 해당할 때
 * RESTful
 - HTTP 와 HTTPs 에 의한 Caching 을 잘 사용하고 싶을 때
 - File 전송 등 단순한 Text 로 처리되지 않는 요청들이 있을 때
 - 요청의 구조가 정해져 있을 때
profile
머리 박고 개발공부중,,,

0개의 댓글