REST-API VS GraphQL-API
REST API 란?
REST 는 HTTP 프로토콜을 통해 API 를 설계 하기 위한 아키텍처 이다 그래서 개발자는 서버에서 직접 웹 어플리케이션이나 사이트의 사용자에게 데이터를 제공해야 하는 모든 곳에서 REST API 를 사용한다
REST API 의 주요 구성요소
고객-통신을 시작하는 사용자 측 (자신의 장치에서 ) 시작된 클라이언트 또는 프로그램
섬기는 사람 - API 를 기능 및 데이터에 대한 엑세스로 사용하는 서버
자원-서버가 클라이언트에 전송하는 모든 컨텐츠(비디오,텍스트,사진)
REST API 작동 방식
REST API 는 HTTP 요청읉 통해 통신하요 데이터 생성 ,읽기,업데이트 및 삭제 기능 사용
POST -리소스 생성
GET --- 리소스 가져오기
PUT ---리소스 업데이트
DELETE - 리소스 삭제
구조
일반적으로 API 는 앱 대 앱 형식을 따르는 반면 REST 는 다른 구조 (클라이언트-서버) 클라이언트와 서버는 독립적으로 발전
GraphQL-API
어플리케이션 레이어 쿼리 언어이다 GQL은 Structed Qurery Language 와 마찬가지로 쿼리 언어이다
+SQL은 데이터베이스 시스템에 저장된 데이터를 효율적으로 가져오는 목적
+GQL은 웹 클라이언트가 데이터를 서버로 부터 효율적으로 가져오는 목적
SQL은 문장은 주로 백엔드 시스템에서 작성하고 호출하는 반면, GQL은 문장은 주로 클라이언트 시스템에서 작성 -->> 호출
GQL즉, API를 위한 쿼리 언어 타입 시스텝 서버사이드 런타임 ,
GQL은 위에서 설명한 것처럼 REST API의 한계를 극복하고자 나왔다
장점
+클라이언트가 필요한 데이만 변환
+1번의 호출로 원하는 데이터를 한번에 가져온다
단점
+백엔드,클라이언트 개발자 양쪽 다 러닝커브가 있다
+단순한,서비스에서는 사용하기가 복잡
+대부분의 언어에서 라이브러리로 제공
+캐싱 기능의 구현이 복잡
정리
GQL은 REST API 한계점을 해결 API를 위한 쿼리 언어 이다
GQL은 클라이언트가 서버로 부터 데이터를 효율적으로 가져오는것 목적