Day04(REST.API VS GRAPHQL.API)

선종현·2022년 3월 17일
0

backend

목록 보기
4/12

둘의 차이점을 알려면 우선 sever.api가 무엇인지 부터 알아야 합니다.

server.api란,

적절한 요청을 하였을 때 그에 맞는 응답을 되돌려 주는 창구를
웹을 통에 노출한 것 입니다.

이러한 server.api를 만드는 방법론 중 하나로 REST 라는
것이 있는 것 입니다.

rest.api란,

모든 Resource (자료, User, …) 들을 하나의 Endpoint 에 연결해놓고,
각 Endpoint 는 그 Resource 와 관련된 내용만 관리하게 하자는 방법론 입니다.

장점

  1. 기본적으로 웹의 기존 기술과 HTTP 프로토콜을
    그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있습니다.
  2. rest.api 메세지가 의도하는 바를 명확하게 나타내므로 의도하는 바를
    쉽게 파악할 수 있습니다.

단점

  1. 표준이 존재하지 않습니다.

  2. 사용할 수 있는 메소드가 4가지 밖에 없습니다.

  3. 구형의 브라우저가 아직 지원하지 못하는 부분이 존재 합니다.

이러한 rest.api를 두고 새로운 graphql.api 가 등장하게 된 이유는,

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 로 처리되지 않는 요청들이 있을 때
요청의 구조가 정해져 있을 때

profile
주니어 개발자가 되어보자

0개의 댓글

관련 채용 정보