Rest vs GraphQL

Dalaran·2022년 1월 12일
0

React & JavaScript

목록 보기
10/15
post-thumbnail

⚙︎ API

   Api는 컴퓨터나 프로그램 사이에 통신을 하기위해 있는 일종의 소프트웨어이다. 손님이 레스토랑에가면 웨이터가 주문을 받고 셰프에게 주문을 전달한다. 이때 손님과 셰프를 컴퓨터 그 사이에서 연결고리의 역할을하는 웨이터를 api라 볼 수 있다. 이러한 api의 종류에는 rest-api와 graphql-api가 있다.

⚙︎ Rest-API

   먼저 rest-api에 대해 알아보자. rest-api의 특징으로는 url형식을 사용한다는 점과 HTTP Method가 있다. url끝에 Endpoint 주소가 있는데 이가 실질적인 API의 주소라 할수 있다. HTTP Method의 특징으로는 요청 형식에 따라 Method가 계속 변화한다는 점에 있다. Method종류로는 GET, POST. PUT. PATCH, DELETE가 있으며 Axios를 사용하여 통신한다.

   rest-api의 장점은 범용성에 있다. HTTP 표준 프로토콜을 따르는 모든 플랫폼에서 호환되며 외부에서 배포하는 api는 대부분 rest-api로 되어있다. 따라서 rest-api를 사용하기 위한 인프라를 구축할 필요가 없다.

   하지만 HTTP method의 형태가 제한적이고 뚜렷한 한계점을 갖고 있다. 먼저 rest-api는 내가 원하지 않는 정보까지 다 받게 된다. 또한 요청한 여러계층의 정보를 가져오기 위해선 요청을 여러번 해야하는 번거로움이 있다.

⚙︎ GraphQL-API

   위에서 언급한것 처럼 Rest-API는 내가원하지 않은 정보 까지 통체로 오기때문에 데이터의 낭비가 심했다. 때문에 이를 보안하고자 페이스북에서 만든것이 GraphQL이다. graphQl은 Apollo cilent를 사용하는 함수형이기 때문에 내가 원하는 데이터만 골라서 받을 수 있다. 또한 여러 계층의 정보를 한번에 받을 수 있기때문에 요청 횟수를 최소화 할 수 있다. 즉 rest-api의 단점을 보완한 api라 볼 수 있다.

   하지만 graphQL이 좋다하더라도 아직 Rest를 사용하는 곳도 있으며 대부분의 외부 배포 api는 rest를 사용한다. 따라서 우리는 Rest와 GraphQl 모두 알아야할 필요성이 있다.

0개의 댓글