본문 바로가기

프로그래밍/gRPC3

gRPC 동작 원리 실질적으로 gRPC의 경우, proto에서 정의내려준 message의 종류와, service의 종류에 맞춰서 client와 server에서 들어온 데이터를 처리하는 것에만 신경쓰면 되기때문에, gRPC가 어떻게 구현되고, 인코딩되며, 네트워크에서 작동하는 세부방식에 대해서는 몰라도 무관하다. 하지만, 알고있는게 나쁜것은 아니고, 어디가서 아는척도 할 수 있다? 첫번째로 gRPC의 흐름에대해서 살펴보자. 1. client는 프로시저를 호출한다. service("input message") 2. client stub은 그에 맞춰서 HTTP POST 요청을 인코딩 메세지로 생성한다. 3. HTTP/2프로토콜을 이용해서 server에 전달된다. 4. server는 메세지 헤더를 통해서 알맞는 server stu.. 2022. 8. 22.
gRPC의 통신 패턴 https://www.youtube.com/watch?v=KGAernd-42M gRPC기반의 통신 패턴은 4가지가 있다. 1. 단일 RPC client는 단일 request를 서버로 보내고, 서버는 그에대한 세부정보를 response로 보내는 단순한 형태 package ecommerce; service OrderManagement { rpc addOrder(Order) returns (google.protobuf.StringValue); } message Order { string id = 1; repeated string items = 2; string description = 3; float price = 4; string destination = 5; } 와 같은식으로 기존과 동일하게 작성해주면 된.. 2022. 8. 20.
gRPC 소개 우리는 서비스와 통신할때, 많은 경우 REST API를 날려서 통신을 한다. 근데, 프로세스들끼로 통신을 하는데 있어서 굳이 REST API를 써야되는 이유가 있는가? REST API의 단점- 1.텍스트 기반 메세지 프로토콜/ 서비스간의 통신을 사람의 가독성을 보장하는 텍스트 기반으로 해야되는 이유는? 2. 엄격한 타입 점검 부족/ 비호환성 문제 발생 gRPC의 장점 - 탄생이유가 프로세스간에 통신기술로 설계됨 1. 프로세스간 통신 효율성/ 텍스트 형식 대신 프로토콜 버퍼 기반의 바이너리 프로토콜을 사용 2. contract-first접근 방식을 권장 -> 서비스 인터페이스가 명확해짐 3. 엄격한 타입 점검 형식/ 서비스를 정의할때 프로토콜 버퍼를 사용하기때문 4. 폴리글랏/ 특정 언어에 구애받지 않는다.. 2022. 8. 14.