REST API, GraphQL, gRPC의 개념 및 차이점

Jinseung·2024년 7월 8일

개발지식

목록 보기
2/3

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

REST API

웹 서비스 개발 방식 중 하나로, HTTP 프로토콜을 통해 서버 제공 기능을 사용할 수 있는 어플리케이션 프로그래밍 인터페이스(API)를 의미한다. 이 방식은 웹의 장점을 최대한 활용할 수 있는 아키텍처로, 각 URL은 자원을 정의하고, HTTP 메소드(GET, POST, PUT, DELETE 등)는 자원에 대한 CRUD 연산을 정의한다.

REST API의 장점

  • 성능 - 빠른 반복 및 HTTP 표준 표현이 필요한 시스템에 가장 적합하다.
  • 확장성 - 많은 수의 구성 요소와 구성 요소 간의 상호 작용을 지원한다.
  • 단순성 - REST에는 아키텍처를 단순화하고 분리하는 균일한 인터페이스가 존재한다.

GraphQL

페이스북에서 개발한 데이터 질의 및 조작 언어이다. 클라이언트에서 필요한 데이터의 구조를 지정하면 서버는 정확히 동일한 구조로 데이터를 반환하는 방식이다. 이를 통해 과도한 데이터 전송을 방지할 수 있다.

GraphQL의 장점

  • 적응성 - 클라이언트가 원하는 데이터, 원하는 방식 및 형식을 결정한다.
  • 효율성 - 과도하게 가져오지 않고 클라이언트가 요청한 것을 정확하게 전달한다.
  • 유연성 - GraphQL은 크로스 플랫폼이며 12개 이상의 언어(Java, Perl, Python)을 지원한다.

gRPC

구글에서 개발한 고성능, 범용 RPC(Remote Procedure Call) 프레임워크이다. 언어 중립적이며 플랫폼에 독립적이다. gRPC는 Protocol Buffers라는 고성능 이진 프로토콜을 사용하여 데이터를 직렬화한다. 이는 네트워크 사용량을 줄이고 통신 속도를 높여 준다.

gRPC의 장점

  • 가벼우며 클라이언트측의 리소스가 거의 필요 X 따라서 전력이 매우 부족한 상황에서 편리하게 이용할 수 있다.
  • 효율적이다. gRPC는 통신을 직렬화하는데 중점을 둔 구조화된 데이터 직렬화 방법인 protobufs를 사용한다.
  • 오픈소스 이며 자유롭게 사용, 수정 또는 분기할 수 있다.

차이점 분석

데이터 포맷

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의 개념 및 차이점 블로그를 마치겠다.

profile
blog 이전했습니다. https://blog.wlstmd.com

0개의 댓글