REST API란?
REST는 Representational State Transfer라는 용어의 약자로서 2000년도에 로이 필딩 (Roy Fielding)의 박사학위 논문에서 최초로 소개되었습니다. 로이 필딩은 HTTP의 주요 저자 중 한 사람으로 그 당시 웹(HTTP) 설계의 우수성에 비해 제대로 사용되어지지 못하는 모습에 안타까워하며 웹의 장점을 최대한 활용할 수 있는 아키텍처로써 REST를 발표했다고 합니다.
자원(resource):해당 소프트웨어가 관리하는 모든 것.
GraphQL이란?
GraphQL은 페이스북에서 발생하는 수많은 데이터를 처리하기 위해 페이스북 개발팀에서 만들었으며, facebook, airbnb, github 등 유명한 사이트에서 사용중인 통신 방법입니다.GraphQL에서는 API서버에서 엄격하게 정의된 endpoint 들에 요청하는 대신, 한번의 요청으로 정확히 가져오고 싶은 데이터를 가져올 수 있게 도와주는 쿼리를 보낼수 있습니다. 예를 들어, user에 대한 몇 가지의 간단한 데이터가 필요할 때, 필요한 만큼의 user 정보를 최적화하여 가져올 수 있습니다.
🐧함수 이름의 차이🐧
Rest-API는 API 이름이 마치 홈페이지 주소처럼 생겼습니다.
GraphQL-API는 API 이름이 일반적인 함수와 같습니다.
🐧응답 결과물의 차이🐧
Rest-API는 응답 결과로 back-end 개발자가 만든 함수에서 보내주는 모든 데이터를 받아야만 합니다.
반면에,GraphQL-API는 back-end 개발자가 만든 함수에서 필요한 데이터만 골라 받을 수 있습니다.
이러한 이유로, 각 API에 전송을 요청하는 담당자도 다릅니다.
Rest-API 에 요청하는 요청담당자는 axios 입니다.
GraphQL-API 에 요청하는 요청담당자는 apollo-client 입니다.
요청담당자는 Front-end에서 설치하는 라이브러리를 뜻합니다.

출처:https://www.notion.so/dingco/3-Node-8eb5eeddac11480491036c4c8a347d1a#9bc6a59fdc4d4a9392d787c38810dc2c
🐧GraphQL 장점🐧
1. HTTP 요청 횟수를 줄일 수 있다.
2. HTTP 응답 사이즈를 줄일 수 있다.
3. 프론트엔드와 백엔드 개발자의 부담을 덜 수 있다.
API는 크게 4가지 방식으로 구분할 수 있습니다.
- 새로운 것을
생성하는API⇒ CREATE- 기존의 것을
조회하는API⇒ READ- 기존의 것을
수정하는API⇒ UPDATE- 기존의 것을
삭제하는API⇒ DELETE
REST-API 과 Graph-API는 서로 다른 함수에 의해 적용된다.


출처:https://www.notion.so/codecamp-B-Day3-a83790859428411ca2a74f87c3d3413c
마지막으로
어찌보면 Graph-API의 장점이 돋보이기는 하나 고정된 Request과 Response이 있을 겨우 메모리 크기가 커질수 있으며 직접 구현해야 한다는 불편함을 가지고 있다.그리고 아직은 각각 회사마다 REST-API와 Graph-API 서비스를 쓰는 곳이 다르기 떄문에 둘의 개념과 장단점을 파악하고 공부해 보는 것이 좋을거 같다.
참고
https://hwasurr.io/api/rest-graphql-differences/
https://velog.io/@djaxornwkd12/REST-API-vs-GraphQL-%EC%B0%A8%EC%9D%B4%EC%A0%90-%EC%95%8C%EC%95%84%EB%B3%B4%EA%B8%B0