Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
gRPC Server with golang
Search
abemotion
May 20, 2019
Technology
3
1.5k
gRPC Server with golang
golang.tokyo # 24 の資料です。
https://golangtokyo.connpass.com/event/129067/
abemotion
May 20, 2019
Tweet
Share
More Decks by abemotion
See All by abemotion
『Go言語による並行処理』 を読んで
abemotion
1
1.2k
Go Modules
abemotion
2
830
Other Decks in Technology
See All in Technology
VCpp Link and Library - C++ breaktime 2025 Summer
harukasao
0
220
Oracle Cloud Infrastructure:2025年6月度サービス・アップデート
oracle4engineer
PRO
1
140
ObsidianをMCP連携させてみる
ttnyt8701
2
140
Amazon S3標準/ S3 Tables/S3 Express One Zoneを使ったログ分析
shigeruoda
2
380
本当に使える?AutoUpgrade の新機能を実践検証してみた
oracle4engineer
PRO
1
120
Amazon Bedrockで実現する 新たな学習体験
kzkmaeda
1
370
ローカルLLMでファインチューニング
knishioka
0
120
Кто отправит outbox? Валентин Удальцов, автор канала Пых
lamodatech
0
260
20250625 Snowflake Summit 2025活用事例 レポート / Nowcast Snowflake Summit 2025 Case Study Report
kkuv
1
160
_第3回__AIxIoTビジネス共創ラボ紹介資料_20250617.pdf
iotcomjpadmin
0
140
SFTPコンテナからファイルをダウンロードする
dip_tech
PRO
0
580
Navigation3でViewModelにデータを渡す方法
mikanichinose
0
200
Featured
See All Featured
Practical Orchestrator
shlominoach
188
11k
The Cost Of JavaScript in 2023
addyosmani
51
8.4k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
357
30k
[RailsConf 2023] Rails as a piece of cake
palkan
55
5.6k
Speed Design
sergeychernyshev
31
1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
34k
Adopting Sorbet at Scale
ufuk
77
9.4k
Stop Working from a Prison Cell
hatefulcrawdad
270
20k
Why Our Code Smells
bkeepers
PRO
337
57k
Making Projects Easy
brettharned
116
6.2k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
3.9k
Transcript
HPMBOHUPLZP H31$4FSWFSXJUIHPMBOH HPMBOHUPLZP !BCFNPUJPO
HPMBOHUPLZP ࣗݾհ !BCFNPUJPO DPDPOBMB 4FSWFS4JEF&OHJOFFS ։ൃج൫νʔϜ (P3BJMT$BLF1)1 5XJUUFSBCFNPUJPO ςχεొࢁ
HPMBOHUPLZP εΩϧͷϑϦʔϚʔέοτ ݸਓͷࣝɾεΩϧɾܦݧΛؾܰʹചങ ొձһສਓ ίίφϥ๏૬ஊ ίίφϥϋϯυϝΠυ
HPMBOHUPLZP ৽ϓϩϑΟʔϧϖʔδ ˠɹϚΠΫϩαʔϏεߏͰ։ൃ ɹɹHPMBOHΞοϓσʔτ ɹɹɹɹɹʢEFQˠ(P.PEVMFTʣ
HPMBOHUPLZP ηογϣϯ༰ ϚΠΫϩαʔϏεߏͷ"1*(BUFXBZΛ H31$4FSWFS$MJFOUͱͯ͠ߏஙͨ͠ܦݧΛݩʹ͠·͢ H31$ͷ֓ཁʙߟྀͨ͠τϐοΫΛղઆ
HPMBOHUPLZP γεςϜߏ "1*(BUFXBZ HPMBOH ɾ1SPpMF4FSWJDF 3BJMT ͷ ઃܭʙ։ൃ·Ͱ୲ /VYU&YQSFTT HPMBOH
3BJMT H31$ H31$ "1*(BUFXBZ 1SPpMF4FSWJDF 1SPpMF8FC
HPMBOHUPLZP ΞδΣϯμ H31$֓ཁ H31$4FSWFS$MJFOU H31$Τϥʔॲཧ HPHSQDNJEEMFXBSF
HPMBOHUPLZP H31$֓ཁ
HPMBOHUPLZP H31$֓ཁ (PPHMF͕։ൃͨ͠31$'SBNFXPSL )551Ͱ௨৴ 1SPUPDPM#VGGFSTͰΠϯλʔϑΣʔεఆٛ ༷ʑͳݴޠʹରԠ $ ɺ+BWBɺ1ZUIPOɺ(Pɺ3VCZɺ$ ๛ͳࣄྫ (PPHMFɺ/&5'-*9ɺ$*4$0
ࠃاۀͷ࠾༻૿͖͍͑ͯͯΔ
HPMBOHUPLZP H31$ϝϦοτ QSPUPϑΝΠϧͰΠϯλʔϑΣΠε༷ΛҰݩཧ QSPUPϑΝΠϧ͕"1*༷ॻΘΓʹ αʔόଆͱҟͳΔ։ൃݴޠ༻ͷΫϥΠΞϯτίʔυࣗಈੜ ෳݴޠʹରԠ͓ͯ͠ΓɺϚΠΫϩαʔϏε͖ ίʔυͷࣗಈੜͰɺຊདྷ࣌ؒΛ͔͚Δ͖ػೳ࣮ʹूத ύϑΥʔϚϯεߴ
HPMBOHUPLZP H31$։ൃͷྲྀΕ QSPUPϑΝΠϧఆٛ ιʔείʔυͷࣗಈੜ αʔόͷ࣮ ΫϥΠΞϯτͷ࣮
HPMBOHUPLZP QSPUPDίϚϯυ QSPUPϑΝΠϧ͔Βɺ֤ݴޠ༻ͷΫϥεɾؔมͨ͠ ϑΝΠϧΛࣗಈੜͯ͘͠ΕΔ$PNQJMFS IUUQTHJUIVCDPNQSPUPDPMCVGGFSTQSPUPCVG QSPUPDQSPUP@QBUI*.1035@1"5)HP@PVU%45@%*3 QBUIUPpMFQSPUP .BLFpMFʹఆٛ͠ɺίϚϯυԽ QSPUPϑΝΠϧϦϙδτϦཧ͠HJUTVCNPEVMF
HPMBOHUPLZP H31$4FSWFS$MJFOU
HPMBOHUPLZP γεςϜߏ /VYU&YQSFTT HPMBOH 3BJMT H31$ H31$ "1*(BUFXBZ 1SPpMF4FSWJDF 1SPpMF8FC
H31$$MJFOU H31$4FSWFS
HPMBOHUPLZP QSPUPఆٛ TZOUBY 1SPUPDPM#VGGFSTόʔδϣϯࢦఆ QBDLBHF ໊લিಥΛආ͚ΔͨΊʹ༻ ֤αʔϏεͰϦϙδτϦ͝ͱʹ͍ͬͯ·͢ PQUJPO ֤ݴޠͰQBDLBHF͕ͲͷΑ͏ʹղऍ͞ΕΔ͔
HPMBOHUPLZP γεςϜߏ /VYU&YQSFTT HPMBOH 3BJMT H31$ H31$ "1*(BUFXBZ 1SPpMF4FSWJDF 1SPpMF8FC
H31$4FSWFS H31$$MJFOU
HPMBOHUPLZP QSPUPఆٛ TFSWJDF 31$Λఆٛɻ Ϧιʔε୯ҐͰϑΝΠϧ໊ͱରԠؔ NFTTBHF ϦΫΤετϨεϙϯεͷσʔλߏఆٛ ֤ϑΟʔϧυ໊લɾܕɾλάΛ࣋ͭ JOUJOUɺTUSJOHɺCPPMɺSFQFBUFE JNQPSU
ଞύοέʔδϑΝΠϧͷσʔλߏΛ༻
HPMBOHUPLZP "1*(BUFXBZ ϑϨʔϜϫʔΫΛ༻͍ͣʹ։ൃ ·ͩσϑΝΫτελϯμʔυͳ͘ɺෛ࠴Խճආ ඪ४ύοέʔδ֎෦ϥΠϒϥϦ ύοέʔδߏ ϨΠϠΞʔΩςΫνϟ-JHIUXFJHIU%%% JOUFSGBDFɿϦΫΤετϋϯυϥ BQQMJDBUJPO͍ΘΏΔϏδωεϩδοΫ EPNBJO͍ΘΏΔϞσϧɻߏମఆٛͳͲ
JOGSBTUSVDUVSFσʔλΞΫηεͷ࣮ ͦͦ૬ޓࢀর͢ΔͱΤϥʔ
HPMBOHUPLZP H31$4FSWFSىಈ
HPMBOHUPLZP JOUFSGBDFT
HPMBOHUPLZP BQQMJDBUJPO
HPMBOHUPLZP H31$Τϥʔॲཧ
HPMBOHUPLZP H31$Τϥʔॲཧ ಠࣗͷΤϥʔίʔυ͕༻ҙ͞Ε͍ͯΔ )551εςʔλείʔυͱͷϚοϐϯά IUUQTHJUIVCDPNHPPHMFBQJT HPPHMFBQJTCMPCNBTUFSHPPHMFSQD DPEFQSPUP
HPMBOHUPLZP 1SPpMF4FSWJDF H31$Τϥʔੜ "1*(BUFXBZ BQQMJDBUJPO ΤϥʔใՃ JOUFSGBDFT H31$Τϥʔʹม ΤϥʔॲཧͷྲྀΕ 3BJMT
H31$ HPMBOH "1*(BUFXBZ 1SPpMF4FSWJDF
HPMBOHUPLZP BQQMJDBUJPOΤϥʔใՃ
HPMBOHUPLZP JOUFSGBDFTΤϥʔม
HPMBOHUPLZP HPHSQDNJEEMFXBSF
HPMBOHUPLZP *OUFSDFQUPS 31$ͷલޙͰॲཧΛΠϯλʔηϓτͰ͖Δ )UUUQ)BOEMFS൛ IUUQTNFEJVNDPN!NBUSZFSXSJUJOHNJEEMFXBSFJOHPMBOHBOEIPXHPNBLFTJUTP NVDIGVODF H31$4FSWFS*OUFSDFQUPS αʔόʔੜ࣌ H31$$MJFOU*OUFSDFQUPS ίωΫγϣϯੜ࣌
H31$͕*OUFSDFQUPS༻ͷύοέʔδΛ༻ҙ͠ɺ༷ʑͳػೳʹରԠ IUUQTHPEPDPSHHJUIVCDPNHSQDFDPTZTUFNHPHSQDNJEEMFXBSF "VUIɺ-PHHJOHɺ.POJUPSJOHɺ3FUSZɺ7BMJEBUPSɺ3FDPWFSZ
HPMBOHUPLZP H31$4FSWFS$MJFOU*OUFSDFQUPS
HPMBOHUPLZP -PHHJOH
HPMBOHUPLZP HJUIVCDPNHSQDFDPTZTUFNHPHSQDNJEEMFXBSFMPHHJOH[BQ IUUQTHJUIVCDPNVCFSHP[BQΛ༻͍ͯ͠·͢ ඪ४MPHύοέʔδශऑ ΤϥʔϨϕϧ͕ͳ͍ ϩάϑΥʔϚοτ͕ͳ͍ɻ·͔͞ͷࣗͰܗʜ Ұํ[BQ 6CFS ߴɻͪΐͬͺɻ
ΤϥʔϨϕϧ͋Γ ग़ྗܗࣜͷબՄ ͍ํɾه๏͕ಛघ
HPMBOHUPLZP H31$4FSWFS$MJFOU-PHHJOH
HPMBOHUPLZP H31$4FSWFS$MJFOU-PHHJOH ্هϝιου͋Δ͕ɺ 1BZMPBE͕ͦͷ··ϩάʹग़ྗ͞ΕΔͷΑΖ͘͠ͳ͍ɻ ϦΫΤετͷϩΪϯά֤ϝιουͰݸผग़ྗ
HPMBOHUPLZP 3FUSZ
HPMBOHUPLZP HJUIVCDPNHSQDFDPTZTUFNHPHSQDNJEEMFXBSFSFUSZ
HPMBOHUPLZP HJUIVCDPNHSQDFDPTZTUFNHPHSQDNJEEMFXBSFSFUSZ $BMM0QUJPOʹ༷ʑͳΦϓγϣϯͷઃఆ͕Մೳ 8JUI#BDLPGG 3FUSZͷִؒ࣌ؒ 8JUI$PEFT 3FUSZ͢ΔΤϥʔίʔυ σϑΥϧτɺ%FBEMJOF&YDFFEFE$BODFMFE 8JUI.BY ࠷େ3FUSZճ
HPMBOHUPLZP H31$Ͱࠔͬͨ͜ͱ /6--ڐ༰Ͱͳ͍ H31$ࣗମ͕/6--Λఆ͍ͯ͠ͳ͍ /6--ͷଘࡏ͠ͳ͍ੈքʂ /6--͍ΘΏΔσϑΥϧτѻ͍ ɺۭจࣈɺGBMTF ˠ্࣮ͦ͜·ͰࠔΒͳ͔͕ͬͨɺࣾͷཧղΛಘΔ·Ͱʹ͕͔͔࣌ؒͬͨ ࣌ࠁܕ
H31$ʹ࣌ࠁܕ͕༻ҙ͞Ε͍ͯΔ DPNHPPHMFQSPUPCVG5JNFTUBNQ ੜม͕େม ϝιουͭͭ࿈݁ͯ͠ɺɺʣ ͪΌΜͱௐͯΈͨΒɺதJOUͩͱ͍͏͜ͱ͕໌ ଞࣾ͞Μͷࣄྫฉ͍ͯ݁ہJOUʹ Τϥʔίʔυʹ׳Ε͕ඞཁ ʮ͕ฦ͖ͬͯͨʂʯʮͩͬͯʂʯˡͳΜͱͳ͘Θ͔Δ ʮΤϥʔ൪ͳΜ͚ͩͲʁʯˡΘ͔Βͳ͍
HPMBOHUPLZP ·ͱΊ ੩తܕ͚HPMBOHʷεΧϥʔܕH31$ ࣄલʹίϯύΠϧՄͩ͠ݎ࿚ʂ૬ੑ࠷ߴʂ 8FC্ͷهࣄͰݟͨ ʮϦϦʔε͔ͯ͠Β΄ͱΜͲόάͳ͍ʯ ˠϗϯτͩͬͨ ࣮ʹΑΔͱࢥ͍·͕͢ (P%PDͷϝιουઆ໌ɺӳจߦͷΈͱ͔βϥ
݁ہιʔεΛಡΉ͜ͱʹͳΔ ͜Ε͕͔ͳΓֶͼʹͳͬͨ HPMBOH͖ʂָ͍͠ʂ͡Όͳ͖Ό͍͠ த·ͰݟͯڍಈΛͬͯΔͱ҆৺ײ͕ҧ͏