이번엔 REST API, GraphQL, gRPC의 개념 및 차이점을 정리한 블로그를 작성 하려 한다.
각각의 개념과 장점에 대해 설명하고 마지막으로 차이점을 설명하겠다.

웹 서비스 개발 방식 중 하나로, HTTP 프로토콜을 통해 서버 제공 기능을 사용할 수 있는 어플리케이션 프로그래밍 인터페이스(API)를 의미한다. 이 방식은 웹의 장점을 최대한 활용할 수 있는 아키텍처로, 각 URL은 자원을 정의하고, HTTP 메소드(GET, POST, PUT, DELETE 등)는 자원에 대한 CRUD 연산을 정의한다.
페이스북에서 개발한 데이터 질의 및 조작 언어이다. 클라이언트에서 필요한 데이터의 구조를 지정하면 서버는 정확히 동일한 구조로 데이터를 반환하는 방식이다. 이를 통해 과도한 데이터 전송을 방지할 수 있다.
구글에서 개발한 고성능, 범용 RPC(Remote Procedure Call) 프레임워크이다. 언어 중립적이며 플랫폼에 독립적이다. gRPC는 Protocol Buffers라는 고성능 이진 프로토콜을 사용하여 데이터를 직렬화한다. 이는 네트워크 사용량을 줄이고 통신 속도를 높여 준다.
REST는 주로 JSON 형식을 사용하지만, gRPC는 Protocol Buffers를 사용 한다. GraphQL은 클라이언트에게 데이터의 구조를 지정할 수 있어, 필요한 데이터만 수신할 수 있다.
gRPC는 Protocol Buffers를 사용하고 HTTP/2를 기반으로 하기 때문에, 대량의 데이터를 빠르게 전송할 수 있다. 반면, REST와 GraphQL은 HTTP/1.1을 사용 한다.
GraphQL은 클라이언트가 필요한 데이터의 구조를 지정할 수 있어 유연성이 높다. 반면, REST는 서버가 데이터 구조를 결정한다. gRPC는 서버와 클라이언트가 상호 작용하는 방식을 프로토콜로 정의한다.
REST는 HTTP를 기반으로 하므로, 거의 모든 플랫폼과 언어에서 사용할 수 있다. 반면, gRPC와 GraphQL은 특정 라이브러리와 도구가 필요하다.
이것으로 REST API, GraphQL, gRPC의 개념 및 차이점 블로그를 마치겠다.