당니의 개발자 스토리

gRPC란? REST와 gRPC의 차이 본문

Java, Spring

gRPC란? REST와 gRPC의 차이

clainy 2026. 4. 21. 11:51

REST와 gRPC의 차이와 실제 코드 흐름

gRPC는 다른 서버의 메서드를 내 코드에서 호출하듯이 사용한다

 

REST는 이렇게 생겼다.

GET /users/1

 

gRPC는 이렇게 생겼다.

stub.getUser(request);
 

겉으로 보면 그냥 메서드 호출이지만,
실제로는 네트워크를 타고 서버에 갔다 온다.

 
stub 호출
→ request 직렬화
→ 네트워크 전송
→ 서버 메서드 실행
→ response 반환

 

Spring에서 구조는

  1. proto 파일 작성
  2. 코드 자동 생성
  3. 서버에서 구현
  4. 클라이언트에서 stub 호출

 

예를 들어

GetUserResponse res = stub.getUser(request);
 

이 한 줄이 실제로는 서버 호출이다.

 

gRPC에서 해시키를 담을 수 있다

이 표현은 상황에 따라 다르게 쓰인다.

보통은 두 가지 중 하나다.

 

첫 번째, 요청 데이터에 넣는 경우

request.setHashKey("abc123");

 

이건 그냥 일반 데이터다.

 

두 번째, metadata에 넣는 경우

metadata.put("hash-key", "abc123");
 

이건 HTTP Header 같은 개념이다.

 

정리하면

request = 실제 데이터
metadata = 부가 정보

 

비유로 보면

request는 택배 안 물건이고
metadata는 택배 상자 겉에 붙은 송장이다.