[gRPC] IDL & protoBuffer & gRPC에 대해 빠르게 이해하기
전체적인 그림을 파악하는게 우선이라고 생각했다! 여러 곳에서 빠르게 훑고 나만의 언어로 다시 정의해본다! 왁!
일단, 우리는 Client <-> Server
간의 정보를 주고받는 규칙을 프로토콜이라고 부른다. IDL(Interface Definition Language)은 정보를 저장하는 규칙이다.
그래서 IDL는 정확하게 어떤 것을 의미하는 게 아니고 정보를 저장하는 규칙자체를 의미하는 단어이다. 그래서 IDL에는 다음의 것들이 있다.
- XML
- json
- protocol buffers
XML, json의 경우, 우리가 잘 알고 있는 파일 표현 방식이다. 간단하게 집고 넘어가자면 XML의 경우에는 태그를 표현하기 때문에 파일의 크기가 크고, 가독성도 떨어진다. json의 경우, XML의 가독성과 성능을 개선한 방식이다.
그렇다면, 생소한 protocol buffers은 무엇일까? protocol buffers는 구조화된 데이터를 직렬화하는 방법이다. 통신할 프로그램을 개발할 때 용이하다. 사람이 읽을 수는 없지만, XML보다 성능, 가독성이 좋다. 또한, 파일의 크기는 훨씬 작다. 통신할 데이터와 메소드까지도 정의할 수 있다.
protoBuffer는 grpc에서 사용한다. grpc는 google에서 사용하는 rpc의 일종이다. ssl/tls를 사용하여 서버를 인증하고, client ↔ server
를 통신할 때 모든 통신에서 암호화한다. HTTP/2를 이용하여 양방향 통신 및 성능이 좋다. MSA 구현에 용이하다.
grpc는 바이너리 파일이여서 다른 xml, json과 다르게 변환작업없이 빠르게 처리가 가능하다. 비즈니스 로직에만 집중할 수 있게 도와주고, 쉽게 사용이 가능하다.
댓글남기기