목록grpc (3)
디지안의 개발일지
들어가기 전에 이번 글의 목적은 프로토콜 버퍼와 JSON 그리고 gRPC와 HTTP를 비교하는 것이다. 프로토콜 버퍼가 메시지를 어떻게 경량화하는지는 프로토콜 버퍼 원리을 읽기 바란다. gRPC와 HTTP가 어떻게 다른지 알고 싶다면 gRPC vs HTTP를 확인하기 바란다. 테스트로 사용할 메시지 정의 사용자 목록을 조회하는 API로 비교를 해보자. 새로운 rpc와 message를 정의한다. syntax = "proto3"; package me.dgahn.account.v1; import "me/dgahn/account/v1/SignUpV1.proto"; import "me/dgahn/account/v1/GetProfileStreamV1.proto"; import "me/dgahn/account/v1/..
들어가기 전에 Kotlin + Armeria + gRPC 기본 예제에 대해서 궁금하다면 기본편을 확인하면 된다. 스트림은 왜 사용될까? 스트림이 정확하게 왜 필요한지는 잘 모른다. 다만, 경험적으로 다음과 같은 경우에 사용을 했다. 한순간에 많은 데이터를 전송하지 못하는 경우 인터넷에 동영상을 다운로드 한다고 생각해보자. 동영상의 경우 데이터가 너무 크기 때문에 파일을 한순간에 받을 수가 없다. 그렇기 때문에 일정 크기로 잘라서 여러번 다운로드 받으면 된다. 우리가 인터넷에서 다운로드를 할 때 이어 받기를 구현한다고 할 때 스트림을 이용해서 간단하게 구현할 수도 있을거라고 생각한다. 이미 만들어진 데이터를 전송하는 것이 아니라 만들어질 데이터에 대해서 전송하는 경우 예를 들어 채팅을 생각해보자. 이미 만..
들어가기 전에 Java를 주로 사용하다가 주언어를 Kotlin으로 변경한지 이제 2년이 다 되어 간다. 그 동안 공부했던 것에 대한 정리를 하고 싶다는 생각이 문득 들어 하나씩 글을 작성해보려고 한다. 오늘은 그 첫번째 글로 Kotlin + Armeria + gRPC 사용했던 것에 대해서 정리한다. 3가지는 무슨 조합인가? 별거 없다. 프로그래밍 언어로 Kotlin으로 쓰고 웹 프레임워크로 Armeria를 사용하고 프로토콜로 gRPC를 사용했다. Kotlin 구글이 안드로이드 공식 언어로 선정한 이후 나름 핫한 언어라고 생각한다. 실제로 써본 느낌으로는 Java 보다 문법이 간단하고 확장 함수, 연산자 오버라이딩, dsl등 기존 자바에서 사용할 수 없는 문법들을 사용할 수 있다는 매력적인 포인트들이 있다..