당니의 개발자 스토리
gRPC란? REST와 gRPC의 차이 본문
REST와 gRPC의 차이와 실제 코드 흐름
gRPC는 다른 서버의 메서드를 내 코드에서 호출하듯이 사용한다
REST는 이렇게 생겼다.
GET /users/1
gRPC는 이렇게 생겼다.
stub.getUser(request);
겉으로 보면 그냥 메서드 호출이지만,
실제로는 네트워크를 타고 서버에 갔다 온다.
stub 호출
→ request 직렬화
→ 네트워크 전송
→ 서버 메서드 실행
→ response 반환
Spring에서 구조는
- proto 파일 작성
- 코드 자동 생성
- 서버에서 구현
- 클라이언트에서 stub 호출
예를 들어
GetUserResponse res = stub.getUser(request);
이 한 줄이 실제로는 서버 호출이다.
gRPC에서 해시키를 담을 수 있다
이 표현은 상황에 따라 다르게 쓰인다.
보통은 두 가지 중 하나다.
첫 번째, 요청 데이터에 넣는 경우
request.setHashKey("abc123");
이건 그냥 일반 데이터다.
두 번째, metadata에 넣는 경우
metadata.put("hash-key", "abc123");
이건 HTTP Header 같은 개념이다.
정리하면
request = 실제 데이터
metadata = 부가 정보
비유로 보면
request는 택배 안 물건이고
metadata는 택배 상자 겉에 붙은 송장이다.
'Java, Spring' 카테고리의 다른 글
| Spring이 JDBC와 트랜잭션 작업을 줄여주는 방식 (1) | 2026.05.06 |
|---|---|
| 프레임워크와 라이브러리의 차이, IoC 제어의 역전 (0) | 2026.05.04 |
| Filter Mapping과 Dispatcher (0) | 2026.04.21 |
| Filter (0) | 2026.04.21 |
| Servlet 구조와 Front Controller 패턴 (0) | 2026.04.20 |
