"REST API" vs "GraphQL API"

설하나·2022년 11월 22일
0

TIL

목록 보기
6/11
post-thumbnail

오늘은 기술면접당시 제대로 대답을 하지 못했던 개념을 다시 정리해보려고한다.

REST API

REST

REpresentational State Transfer의 약자로 전반적인 웹 어플리케이션에서 상호작용하는데 사용되는 웹 아키텍쳐 모델이다. 즉, 자원을 주고받는 웹 상에서의 통신 체계에 있어서 범용적인 스타일을 규정한 아키텍쳐 라고 할 수 있다.

API란 무엇인가?

Application Programming Interface의 약자로 구글 맵 API, 카카오 비전 API 등 기존에 있는 응용 프로그램을 통해서 데이터를 제공받거나 기능을 사용하고자 할 때 사용하는 인터페이스 및 규격 을 말한다. API는 프로그래밍 언어, 운영체제 등에서도 사용되는 범용적인 용어이다.

따라서, REST API라는 것은 REST 원칙을 적용하여 서비스 API를 설계한 것을 말하며 대부분의 서비스가 REST API를 제공한다


Graphql API

GraphQL이란?

GraphQL은 Graph Query Language 의 줄임말로 정보를 얻기 위해 보내는 질의문(Query)을 만들기 위해 사용되는 Computer 언어의 일종이다.
GraphQL 은 이런 Query Language 중에서도 Server API 를 통해 정보를 주고받기 위해 사용하는 Query Language 이다.

GraphQL 탄생 배경

Facebook 의 GraphQL blog 에서는 다음과 같이 이유를 밝히고 있다.
RESTful API 로는 다양한 기종에서 필요한 정보들을 일일히 구현하는 것이 힘들었다. 다시말해 서버를 제공하면서 제공해야할 기능이 늘어나면서 관리해야 할 EndPoint의 증가로 인하여 문제점들이 발생하였다.

  1. 특정 기능을 위해 여러번 API가 호출 됨
  2. 특정 요청에 fit한 응답을 돌려주기 위해서는 API를 새로 만들어야함
  3. API 유지보수의 어려움

이 때문에 정보를 사용하는 측에서 원하는 대로 정보를 가져올 수 있고,
보다 편하게 정보를 수정할 수 있도록 하는 표준화된 Query language 를 만들게 되었는데 이것이 GraphQL 이다

profile
Backend

0개의 댓글