---
# System prepended metadata

title: '今週何知った？ week:29'

---

# 今週何知った？ week:29

## 各自発表

> [name=makicamel]

## gRPC って何？
RPC (Remote Procedure Call) を実現するための Google が開発したプロトコルの 1 つ。Protocol Buffers を使ってデータをシリアライズし、高速な通信を実現できるのが特徴

IDL（インターフェース定義言語）を使ってあらかじめAPI仕様を `.proto` ファイルとして定義し、そこからサーバー側＆クライアント側に必要なソースコードのひな形を生成します。言語に依存しないIDLで先にインタフェースを定義することで、様々なプログラミング言語の実装を生成できるというメリットがある

### RPC って何？
> 遠隔手続き呼出し（英: remote procedure call、リモートプロシージャコール、略してRPC）とは、プログラムから別のアドレス空間（通常、共有ネットワーク上の別のコンピュータ上）にあるサブルーチンや手続きを実行することを可能にする技術
[遠隔手続き呼出し - Wikipedia](https://ja.wikipedia.org/wiki/遠隔手続き呼出し)

<img width="700" src="https://img.esa.io/uploads/production/attachments/19215/2022/11/27/49657/10869948-7fa6-47e6-8144-c02fdb3033ca.png">

画像：[RPCの具現化であるgRPC｜作ってわかる！ はじめてのgRPC](https://zenn.dev/hsaki/books/golang-grpc-starting/viewer/rpc)

gRPC は RPC API を実装するためのテクノロジー

#### RPC と REST って何が違うの？
- REST
クライアントが他の情報から URL を構築せず、サーバーから渡された URL をそのまま使用する
- RPC

### Protocol Buffers って何？
> インタフェース定義言語 (IDL) で構造を定義する通信や永続化での利用を目的としたシリアライズフォーマット
[Protocol Buffers - Wikipedia](https://ja.wikipedia.org/wiki/Protocol_Buffers)

## Quic start
[Quick start | Ruby | gRPC](https://grpc.io/docs/languages/ruby/quickstart/)

> [name=ken3ypa]

## Javaとは？最新版は？どんな環境があるの？調べてみました！

### 動機
- 放送大学の講座でJava入門の授業をとってみた
- Javaを取り巻く環境についてざっくり概観してみたい

![](https://i.imgur.com/IjdS3WK.png)
