Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
20200427 Kotlin愛好会発表 『2週間前にリリースされたばかりのgRPC Koli...
Search
doyaaaaaken
April 28, 2020
Technology
440
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
20200427 Kotlin愛好会発表 『2週間前にリリースされたばかりのgRPC Kolinライブラリについて調べてみた』
20200427 Kotlin愛好会発表 『2週間前にリリースされたばかりのgRPC Kolinライブラリについて調べてみた』
doyaaaaaken
April 28, 2020
More Decks by doyaaaaaken
See All by doyaaaaaken
コンパウンドスタートアップの“疎結合すぎない”チーム設計
doyaaaaaken
5
1.7k
スマートラウンドで試してみた ChatGPT活用成功/失敗事例8選!
doyaaaaaken
3
4.6k
Kotlin製自作OSSの普及戦略 ~kotlin-csvの実例を元に~ @Kotlin Fest 2022
doyaaaaaken
3
1k
20220721 小規模フルリモート組織における入社者オンボーディング設計
doyaaaaaken
0
480
エンジニアによる事業指標計測のススメ
doyaaaaaken
1
500
プラットフォーム型SaaSにおけるマルチテナント設計
doyaaaaaken
5
3k
考えることを仕組み化する
doyaaaaaken
1
780
プルリクへのセルフコメントという小技
doyaaaaaken
0
690
先取りKtor2.0
doyaaaaaken
1
730
Other Decks in Technology
See All in Technology
分析AIエージェントを育てる、動く環境を育てる
codatum
1
1k
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
600
FactoryBotアンチパターン / factory_bot anti-patterns
toshimaru
0
160
分析の民主化を支えるメタデータ整備の実践
kakehashi
PRO
4
1.3k
おそらく日本で唯一のDevRelインターン生として
husengs7
0
180
AIに攻撃される前に、AIに攻撃させる
tsuchikazu
0
170
契約書画像からの情報抽出に特化した視覚接地モデルを育てる話
sansantech
PRO
1
170
Essential architectural thinking (revised edition)
ufried
0
120
⾮構造化データを価値に変える AI エージェント基盤とその組織
ivry_presentationmaterials
0
150
Benchmarking Disaggregated Serving on vLLM + Dynamo with a Real Coding-Agent Workload
nttcom
0
120
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
3
750
不可逆な意思決定を避けながら10億超の顧客データを AI Ready にするデータ基盤設計
baseballyama
1
310
Featured
See All Featured
Crafting Experiences
bethany
1
380
RailsConf 2023
tenderlove
30
1.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
880
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
430
brightonSEO & MeasureFest 2025 - Winning Strategies for Black Friday CRO & PPC - Christian Goodrich
cargoodrich
3
870
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
50
10k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Building Adaptive Systems
keathley
44
3.2k
The browser strikes back
jonoalderson
0
1.8k
Become a Pro
speakerdeck
PRO
31
6.3k
SEO for Brand Visibility & Recognition
aleyda
0
4.8k
Transcript
2िؒલʹϦϦʔε͞Ε͔ͨΓͷ gRPCͷެࣜKotlinϥΠϒϥϦʹ͍ͭͯௐͯΈͨ KotlinѪձvol.21 (2020/04/27) @doyaaaaaken (Twitter/Github/Qiita) খࢁ ݈ଠ
ࣗݾհ • ۀͰͬͯΔ͜ͱ • smartroundͱ͍͏SaaSελʔτΞοϓͰϦʔυΤϯδχΞͯ͠·͢ • αʔόαΠυʢKotlin JVMʣͷଞɺϑϩϯτʢVueʣɾΠϯϑϥʢAWSʣ৮ͬͯ·͢ • ࠷ۙFigmaGoogleAnalyticsΨγΨγ৮ͬͯ·͢
• OSSपΓͷ׆ಈ • KotlinOSSͷίϯτϦϏϡʔτ(ktor, Exposed, kotlintest, kohttp) • ktorͷυΩϡϝϯτຊޠ༁ϓϩδΣΫτͷ্ཱ͛ਓͰ͢ʢࢀՃऀৗ࣌ืूதʂʣ • kotlin-csvͱ͍͏ࣗ࡞OSS࡞ͬͯ·͢ʢStar80ͪΐ͍ɻPR͓ͪͯ͠·͢ʂʣ
smartroundʹ͍ͭͯ • ελʔτΞοϓͷࢿۚௐୡલޙͷۀΛ ޮԽ͢ΔαʔϏε܈Λఏڙ͍ͯ͠·͢ • LPɿhttps://jp.smartround.com/ • ࢿۚௐୡϚχϡΞϧແྉެ։தͰ͢ • KotlinJVMΛ͡Ίͱͨ͠Ϟμϯͳ
ٕज़ελοΫͰ͢ • ٕज़հࢿྉɿ https://gitpitch.com/smartround/ smartround-tech-presentation • ktorόʔδϣϯ1.0.0-betaͷ͔࣌Βಋೖ • KotlinJVMɺVueJsॻ͖͍ͨΤϯδχΞɺ ઈࢍେืूதͰ͢ʂʂ
ࠓճͷൃදͷ͓ • gRPC͕ެࣜʹKotlinΛαϙʔτͨ݅͠ • 2िؒલͷ4/10ʹϦϦʔε͞ΕͨgRPCެࣜͷϥΠϒϥϦʢv0.1.1ʣʹ͍ͭͯ • GithubͷStar͕Θ͔ͣ2िͰ240͑ • ʰKotlin, meet
gRPC: a new open-source project for modern appsʱ
gRPCެࣜυΩϡϝϯτવରԠ • 4/16͔ΒKotlinʹؔ͢ΔQuickStart͕Ճ͞Ε·ͨ͠ • https://grpc.io/docs/quickstart/kotlin/
ͦͦgRPCͱʁʢwikiతઆ໌ʣ • Google͕։ൃͨ͠OSSͷϦϞʔτϓϩγʔδϟίʔϧγεςϜ • RPCɿ͋ΔϓϩάϥϜ͔ΒผωοτϫʔΫʹ͋ΔϓϩάϥϜͷॲཧΛݺͼग़ͤΔ • Protocol Buffersͱ͍͏ݴޠͰΠϯλʔϑΣʔεΛఆٛ • ௨৴ʹHTTP/2Λ༻͍Δ
• ϝϦοτ • ݴޠඇґଘʢҟͳΔݴޠͷϚΠΫϩαʔϏεؒͷݺͼग़͠ɺϒϥβ㱺αʔόͷݺͼग़͠ʹར༻Մೳʣ • ߴʢσʔλΛγϦΞϥΠζܰ͠ྔʹ͢Δ͜ͱͰ࣮ݱʣ • ΠϯλʔϑΣʔεͷมߋ͕༰қʹʢProtocol BuffersʹଇΔ͜ͱͰ࣮ݱʣ • ※ Mericari, AbemaTV, dowangoͰ࠾༻͞Ε͍ͯΔ
Kotlinʹ͓͚Δࠓ·ͰͷgPRCϥΠϒϥϦͷঢ়گ • awsome-grpcͳΔυΩϡϝϯτʹ4ͭհ͞Ε͍ͯ·ͨ͠ • https://github.com/grpc-ecosystem/awesome-grpc#lang-kotlin • ※ grpc-kotlinͱ͍͏ಉ໊ͷผϥΠϒϥϦ͋ΔͷͰҙʂʂʢࠓճͷൃදgrpc/grpc-kotlinʣ • ※
Kotlin(JVM)͔ΒJavaͷϥΠϒϥϦ͕͑Δ͜ͱߟ͑Δͱɺ ࠓ·ͰgRPCΛ͑Δ͜ͱ͑ͨΑ͏Ͱ͢
ࠓճग़ͨϥΠϒϥϦΛ͏ϝϦοτ • μϯτπͰͰ͔͍ϝϦοτ ʰgRPC͕ެࣜϥΠϒϥϦͱͯ͠αϙʔτ͍ͯ͠Δ͜ͱʱ • ͦΕҎ֎ͩͱGoogle CloudͷϒϩάҎԼͷΑ͏ͳϝϦοτΛհ • KotlinϥΠϒϥϦͳͷͰcoroutineFlow APIΛ͍ඇಉظϓϩάϥϜ͕͖Ε͍ʹॻ͚Δ
• GCPͷCloud RunͰར༻Ͱ͖Δ
͔͜͜ΒαϯϓϧίʔυΛ งғؾϨϕϧͰݟͯΈ·͢
ࢀߟʹͨ͠υΩϡϝϯτ • gRPCެࣜυΩϡϝϯτͷҎԼ2ͭͷϖʔδ͕Θ͔Γ͍͢Ͱ͢ • QuickStart (https://grpc.io/docs/quickstart/kotlin/) • gRPC Basics -
Kotlin/JVM (https://grpc.io/docs/tutorials/basic/kotlin/)
ࠓճऔΓ্͛Δαϯϓϧίʔυͷશମਤ ΫϥΠΞϯταΠυ ϓϩάϥϜ (Kotlin) αʔόαΠυ ϓϩάϥϜ (Kotlin) gPPCଓ༻ ϓϩάϥϜ gPPCଓ༻
ϓϩάϥϜ gRPCݺͼग़͠ ΫϥΠΞϯταΠυ αʔόαΠυ ΠϯλʔϑΣʔεఆٛ .protoϑΝΠϧ ʢProtocol Buffersʣ .protoϑΝΠϧ͔Βੜ .protoϑΝΠϧ͔Βੜ
1. ΠϯλʔϑΣʔεఆٛʢ.protoʣϑΝΠϧʹ͍ͭͯ • ϝιουఆٛɺϦΫΤετɾϨεϙϯεܕఆٛͳͲ͕ Protocol BuffersʹΑΓهࡌ͞Ε͍ͯΔ
2. Protocol Buffers͔ΒϓϩάϥϜࣗಈੜʹ͍ͭͯ • Protocol BuffersίϯύΠϥprotocΛ༻͍.protoϑΝΠϧ͔ΒKotlinϓϩάϥϜ Λࣗಈੜ͢Δ ࣗಈੜ͞ΕͨίʔυͰ͢
3. αʔό͔ΒgRPCϓϩάϥϜΛར༻ • ࣗಈੜ͞ΕͨgPRCϓϩάϥϜΛ༻͍ͯ αʔόଆʹ͓͍ͯListen͢ΔgPRCΤϯυϙΠϯτΛఆ͓ٛͯ͘͠
4. ΫϥΠΞϯτ͔ΒgRPCϓϩάϥϜΛར༻ • ࣗಈੜ͞ΕͨgPRCϓϩάϥϜʹsuspend funϝιου͕͋ΔͷͰɺ ͦΕΛ࣮ߦ͢Δ͜ͱͰαʔόRPCͰ͖Δ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ by @doyaaaaaken