Language/GraphQL

REST API vs GraphQL

728x90

GraphQL이란?

위키백과에 정의된 내용은 아래와 가습니다.
"그래프QL은 페이스북이 2012년에 개발하여 2015년에 공개적으로 발표된 데이터 질의어이다. 그래프QL은 REST 및 부속 웹서비스 아키텍쳐를 대체할 수 있다. 클라이언트는 필요한 데이터의 구조를 지정할 수 있으며, 서버는 정확히 동일한 구조로 데이터를 반환한다."

 

GraphQL은 페이스북에서 만든 쿼리 언어입니다. 

리액트를 사용하면서도 느낀거지만 페이스북에서 만든 기술은 본인들이 갖고 있는 문제점을 더 효율적으로 풀어내기 위해 새로운 기술을 창조한다는 것을 우리는 알고 있습니다. 이 GraphQL은 기존에 쓰던 방식인 REST API과 비교하면 어떤 장점이 있는지 구체적으로 파악하기 쉽습니다.

 

REST API vs GraphQL

1. Over-fetching ?

1. 필요한 정보보다 더 많은 데이터를 전달 받는 것

2. 불필요한 리소스 낭비가 발생

3. 필요한 정보만 골라내는 추가 작업이 발생

graphQL => 필요한 데이터만 호출해 사용하므로 리소스 낭비가 없다.

 

2. Under-Fetching ? 

1. 필요한 데이터를 만들기 위해 여러 번의 호출이 필요

2. 추가적인 리소스 요청이 발생

3. 여러 요청을 통해 전달받은 정보를 조합하는 추가 작업이 발생

graphQL => 필요한 데이터만 호출해 사용하므로 여러 번의 호출이 필요없다.

 

3. API마다 다른 이름의 URL이 필요

REST API를 만든다면, 매번 이름을 지어야한다.

ex)

/photos/list

/photos/guest

/photos/id

/photos/category ...

graphQL => 단 한개의 URL만 존재

 

 

REST => 요청은 쉽지만 응답 받은 데이터는 비효율적

GraphQL => 요청은 복잡하지만 응답받은 데이터는 효율적

728x90