💡 개요
오늘은 API 아키텍처 기술인 GraphQL, gRPC에 대해 정리해 보자.
REST는 어제 정리했으니까 생략..!
🛠️ GraphQL
GraphQL은 페이스북에서 개발한 API를 위해 쿼리 언어를 사용하는 기술이다.
REST의 단점을 극복하고자 2015년에 처음으로 공개되었다.
GraphQL의 특징은 다음과 같다.
- 모든 요청은 /graphql 이라는 하나의 엔드포인트에서 처리한다. REST의 경우엔 기능에 따라 URL을 다르게 분리하지만, GraphQL은 그럴 필요 없다.
- 클라이언트가 원하는 데이터를 정의하면, 서버는 정확하게 그 데이터만 전달하는 API 방식이다. 불필요한 데이터는 조회하지 않을 수 있다.
query {
user(id: "1") {
name
email
}
}
위 쿼리문을 서버에게 전달하면 name와 email만 조회할 수 있다.
🛠️ gRPC
gRPC은 구글이 개발한 API 프레임워크로 HTTP/2를 사용해 빠르고 가볍게 양방향 통신이 가능하다.
메시지 형식으로는 Protocol Buffers(protobuf)를 사용한다.
gRPC의 특징은 다음과 같다.
- Protocol Buffers을 통해 JSON보다 효율적인 이진 직렬화를 사용한다.
syntax = "proto3";
service UserService {
rpc GetUser (UserRequest) returns (UserResponse);
}
message UserRequest {
int32 id = 1;
}
message UserResponse {
string name = 1;
string email = 2;
}
- HTTP/2를 기반으로 하기 때문에 동시 요청이나 스트리밍과 같은 실시간 통신 및 데이터 처리가 가능하다.
'개발 일기' 카테고리의 다른 글
[개발 일기] 2025.05.04 - JWT 페이로드 종류 (0) | 2025.05.04 |
---|---|
[개발 일기] 2025.05.03 - JWT 말고 인증에 사용할 만한 기술 (0) | 2025.05.03 |
[개발 일기] 2025.05.01 - ws vs wss (Feat: Nginx) (0) | 2025.05.01 |
[개발 일기] 2025.04.30 - REST (0) | 2025.04.30 |
[개발 일기] 2025.04.29 - apt-get update 하는 이유 (0) | 2025.04.29 |