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
PWAでお絵描きアプリを作った話
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
kurokky
February 15, 2023
Technology
0
260
PWAでお絵描きアプリを作った話
for PWA night vol.48
kurokky
February 15, 2023
Tweet
Share
Other Decks in Technology
See All in Technology
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
2
180
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
220
AWS Network Firewall Proxyを触ってみた
nagisa53
1
210
クレジットカード決済基盤を支えるSRE - 厳格な監査とSRE運用の両立 (SRE Kaigi 2026)
capytan
6
2.7k
今日から始めるAmazon Bedrock AgentCore
har1101
4
400
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
10k
データ民主化のための LLM 活用状況と課題紹介(IVRy の場合)
wxyzzz
2
700
【Oracle Cloud ウェビナー】[Oracle AI Database + AWS] Oracle Database@AWSで広がるクラウドの新たな選択肢とAI時代のデータ戦略
oracle4engineer
PRO
1
120
We Built for Predictability; The Workloads Didn’t Care
stahnma
0
140
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
180
Introduction to Sansan for Engineers / エンジニア向け会社紹介
sansan33
PRO
6
68k
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
Featured
See All Featured
First, design no harm
axbom
PRO
2
1.1k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1k
How to Get Subject Matter Experts Bought In and Actively Contributing to SEO & PR Initiatives.
livdayseo
0
64
How to make the Groovebox
asonas
2
1.9k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
49k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
0
110
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2k
Embracing the Ebb and Flow
colly
88
5k
Skip the Path - Find Your Career Trail
mkilby
0
54
Practical Orchestrator
shlominoach
191
11k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
2
930
Transcript
!"#$ %&'()*+, -./0 1 2 3 4 5 6 7
8 9 : ; < = > ? @ A BC D E FG B HIJ
!"#$%&'()*+,-./0 1234 5678559:;< =>?@AB ଉࢠ ࡀ ɺΠϠΠϠظਅͬΓͷ່ ࡀ ͷࣇͷɻ γϯάϧϘʔυίϯϐϡʔλʔͰαʔόʔߏஙͨ͠ΓGSFFGPOU࡞ɺ࡞ۂɺ
FTQͳͲͰ*P5ɺ%ϓϦϯλʴిࢠ࡞Ͱ͜ͲͷΦϞνϟΛ࡞ͬͨΓ ৭ʑͯ͠·͢ɻ ༮ஓԂͷΠϕϯτͷ߹Ͱ͑ͯ·͕͢ɺීஈࢵ৭ͷϞώΧϯͰ׆ ಈͯ͠·͢ɻ ݄̎ʹͰ͖ͨגࣜձࣾ#SFXVTͰ$50తͳԿ͔Λ͍ͬͯ·͢ɻ !CMBDL@USFF LVSPLLZ !LVSPLLZ
!"#$%&'()*+,-./0 (.12 ࡢͷՆٳΈͷ͜ͱʜ ͷॳຍɺࡀ ࣌ ͷ່͕ੜޙҰभͷ࣮Ոʹؼͬͯͳ͍͜ͱ ͳͲΛ౿·͑߅ݪݕࠪΛ͠ؼল͍ͯ͠ΔඈߦػͷதͰࣄ͓͖݅·ͨ͠ɻ ࡀ ࣌ ͷଉࢠ͕
%&1(3/45678(/4 ͱݴ͍͡Ί·ͨ͠ɻʢଉࢠࣈΛॻ͘ͷʹϋϚͬͯ·ͨ͠ɻʣ ଉࢠ ࣗը૾
ΩλΩλʂଉࢠΑ*5ͪΌΜΛͳΊΔͳʂ !"#$%&'()*+,-./0 123456789%:;;<=>7=?@6<ABCD2E $FG,HIJKLFCMNO$PDQR S-32TUV 7W:XHIYKLFCMZ[3\ ]^_`a
!"#$% ΩλΩλʂଉࢠΑ*5ͪΌΜΛͳΊΔͳʂ &'()*+,-./012345 6789:;<=>*?@@ABC<BDE;AFGHI7J )KL1MNOPQKHRST)UIVW X287YZ[ しかし <\?]MN^PQKHR_`8a
!"#$%&' ()*+,-./0$123456
!"#$%&' ʢࡀࣇʹ༗ྉͷΞϓϦϨΠϠʔͱ͔͋ͬͯ6*తʹߴػೳ͗͢ΔͷͰ͢ʣ ϑϦʔͷΞϓϦʹଟ͍ ΦϑϥΠϯͰਅͬനʹͳΔ ࠂදࣔྖҬʂ ()*+,-./0$123456
!"#$ %&'()*+,-./01234
!"#$ %%&'()*+ ,-"./0 123456789:;<=>?@
!"#$ %%&'()*+ ,-"./0 123/456".78/9 :;<=5>?@ABCDEFGH
!"#$ %%&'()*+ ,-"./0 123/456".78/9 :;<,-"./0 =>?@5AB;CDEFGHIJ
!"#$ %%&'()*+ ,-"./0 123/456".78/9 :;<,-"./0 123/456".78/9 =>?@5AB;CDEFGHIJ
!"#$ %%&'()*+ ,-"./0 123/456".78/9 :;<,-"./0 123/456".78/9 :;<,-=>../0 ?@AB5CD;EFGHIJKL
!"#$%&'()*+,-./012% 3456 77 89:;<= >)4?@A BCD@E(F4?GH@I JKL>)4?@A BCD@E(F4?GH@I JKL>)*M??@A BCD@I
N7,OPQRS?TUDV
!"#$%&'( )*+)*,-./&01234 56789:;<=>?@AB2C ່
!"#$%&'( )*+)*,-./&01234 -.+56$788$-9:;<=>?@AB C01DE3 =FGCHIJKLMNOP92Q ່
!"#$%&'( )*+)*,-./&01234 -.+56$788$-9:;<=>?@AB C01DE3 -9:FGHI$JK+CLD3MJN ;OPQR.SD3B =TUCGVWLOPQXY92Z ່
!"#$%&'( )*+)*,-./&01234 -.+56$788$-9:;<=>?@AB C01DE3 -9:FGHI$JK+CLD3MJN ;OPQR.SD3B TUM =VWCGXYLOPQZ[92\ ່
!"#$%&'( )*+)*,-./&01234 -.+56$788$-9:;<=>?@AB C01DE3 -9:FGHI$JK+CLD3MJN ;OPQR.SD3B TUM )*+)*N =VWCGXYLOPQZ[92\ ່
່
!"#$%&'()*+,-./012% 345,6789 :;<:;=>?@7A%BCD >?<EF,GHH,>IJKLMNOPQR SA%TUC >IJV(WX,YZ<S[TC\Y] K^_`a?bTCR cd\ :;<:;] eYGfUTCG
່ ່
!"#$ %&'()*+,-./012/3 45 67-89:;<=>?@A&BC
!"#$ %&'()*+,-./012/3 45 %&'678&9:;<=>?@A BC-DEFGHIJKLM&NO
!"#$ %&'()*+,-./012/3 45 %&'678&9:;<=>?@A B&CDEFGH CI;BJ=CKD LLGMNJ? OP-QRSTUVWXYM&Z[
!"#$%&'()*+,-./012345678 239: ;</=>?@ABCDEFGDH IJ ;</KLM<NOP1Q7RST U<VWXYZ[ V\PU]QV^W __Z`a]R U]QRTXbcOPAR[
!"#$!% &'()*+,-./01 23456/' 789:;$!<=> ?@A%2345B)C7DEFG
!"#$%&'()*+,-./01 234/56789$:,;<=>
!"#$%&'()*+,-./01 18"ք۾ʹ͍ͳ͍ͱࢥ͍·͕͢ɺϚϧνϓϥοτϑΥʔϜͱฉ͍ͯ 'MVUUFSͩͷ3FBDU/BUJWFͩͷ6OJUZɺ3VTUͳͲ͕಄ʹු͔Μͩํʜ 234/56789$:,;<=>
!"#$%&'()*+,-./01 18"ք۾ʹ͍ͳ͍ͱࢥ͍·͕͢ɺϚϧνϓϥοτϑΥʔϜͱฉ͍ͯ 'MVUUFSͩͷ3FBDU/BUJWFͩͷ6OJUZɺ3VTUͳͲ͕಄ʹු͔Μͩํʜ 23/456789:; <=>?@A/:; BCD/2EFGH$I,JKLM
!"#$%&'()*+,-./ ͜Ͳɺ(PPHMF"QQMFͷ৹ࠪ࣌ؒ·ͯ͠CVJME࣌ؒͳΜͯؔͳ͍Μ Ͱ͢ɺͬͯ͘Ε·ͤΜɻ ʰ΄͍͠ʱͬͯݴͬͨΒεάͳ͍ͱμϝͳΜͰ͢ɻ ͷઢͰ͚͢ͲɺωΠςΟϒͱ͔ඇωΠςΟϒͱ͔ίʔυ͕Ԛ͍ͱ͔ ؔͳ͍ΜͰ͢ɻ 01234567(89:;<=>
!"#$%&'()*+,-./ ͜Ͳɺ(PPHMF"QQMFͷ৹ࠪ࣌ؒ·ͯ͠CVJME࣌ؒͳΜͯؔͳ͍Μ Ͱ͢ɺͬͯ͘Ε·ͤΜɻ ʰ΄͍͠ʱͬͯݴͬͨΒεάͳ͍ͱμϝͳΜͰ͢ɻ ͷઢͰ͚͢ͲɺωΠςΟϒͱ͔ඇωΠςΟϒͱ͔ίʔυ͕Ԛ͍ͱ͔ ؔͳ͍ΜͰ͢ɻ ɾࠂ͕ͳͯ͘ɺ͋Δఔͷ͜ͱ͕Ͱ͖Δɻ ɾ͍͖ͭΔ͔͔Βͳ͍ͷͨΊʹԁग़͢ͷ੯͍͠ʂ ɾλϒϨοτͰεϚϗͰʰϙΠͬʂʱͱεάʹॻ͚Δ͜ͱʂ ɾͰͰɺ੩Իͳۭ͕ؒੜ·ΕΔ͜ͱɻ
超⼤事 01234567(89:;<=>
!"#$%&'()*+,-./0 ฐࣾ #SFXVT શϦϞʔτϫʔΫͷձࣾͰ͢ɻΦϯϥΠϯͷϛʔςΟ ϯάπʔϧͱͯ͠(PPHMF.FFUΛ༻͍ͯ͠·͢ɻ ·ͨखܰʹϥΠϒ৴͕Ͱ͖Δ"MJWFͱ͍͏πʔϧΛ։ൃ͍ͯ͠·͢ɻ ͦͷΦϯϥΠϯϛʔςΟϯάதʰը໘γΣΞதʹϝϞॻ͖͍ͨ͠ͳ͊ʱ ͱࢥ݄ͬͯʹʰΕͥΜͯΜ͠ΐΜʱͱ͍͏(PPHMF$ISPNF ͷ֦ுػೳΛϦϦʔεͨ͠ͷͰ͕͢ɺϩʔΧϧʹͦͷ+BWB4DSJQUͷίʔυ ͕͋ͬͨͷͰͦΕΛྲྀ༻͠·ͨ͠ɻ
123.456789:&;<=>
!"#$%&'()!"*+, લड़͠·͕ͨ͠ɺ͜ͱͷൃඈߦػͷதͳͷͰશΦϑϥΠϯڥͰ͢ɻ 1$Λ৽ௐͨ͠ͷ͋ΓOQN ZBSO UZQFTDSJQU TBTT ͑·ͤΜʜ -./*012+3456789:
!"#$%&'()!"*+, લड़͠·͕ͨ͠ɺ͜ͱͷൃඈߦػͷதͳͷͰશΦϑϥΠϯڥͰ͢ɻ 1$Λ৽ௐͨ͠ͷ͋ΓOQN ZBSO UZQFTDSJQU TBTT ͑·ͤΜʜ ͦΕͰ։ൃͰ͖Δͷ͕ -./*012+3456789:
!"#$%&'()!"*+, લड़͠·͕ͨ͠ɺ͜ͱͷൃඈߦػͷதͳͷͰશΦϑϥΠϯڥͰ͢ɻ 1$Λ৽ௐͨ͠ͷ͋ΓOQN ZBSO UZQFTDSJQU TBTT ͑·ͤΜʜ ͦΕͰ։ൃͰ͖Δͷ͕ -./ 01
*2 -./*345+6789:;<=
!"#$%&'"()* ͰͰ͖ͨͱݴ͑ϓϩτλΠϓɺΫΦϦςΟΛ͋Δఔ·Ͱ্͛Δ ͷʹͦΕͳΓʹۤ࿑͠·͢ɻ ඈߦػͰͷ࡞ޙɺ࣮Ոʹؼলͯ͠վྑ͠·ͨ͠ɻ ݸਓ։ൃͷΑ͍ͣͬͱ։ൃ͠ଓ͚ΒΕΔ͜ͱͰ͕͢ଥڠඞཁͰ͢ɻ ࣍ทΑΓ)5.-ͩͱͳ͔͕ͬͨ18"ʹ͚ͨ࣌ͩ͠ʹى͜Γۤ࿑ͨ͠ ͱଥڠͨ͠Λͭͣͭհ͠·͢ɻ ʢଞʹ5JQT͕͋ΔͷͰ͕࣌ؒ͢ͷ߹͋ΔͷͰৄࡉ2JJUBʹهࡌ͍ͯ͠·͢ɻʣ ༨ஊͰ່͕͕͢Ұ൪ؾʹೖͬͨػೳϝχϡʔදࣔɾඇද͕ࣔΓସΘΔ 6*ͷ෦Ͱͨ͠ɻ
+,-./0123456789:
!"#$%& 18"ʹͳΔͱIUNMDBOWBT͕ಈ͔ͳ͍ ը૾อଘػೳͱͯ͠IUNMDBOWBTΛ͍ͬͯͨΜͰ͕͢ɺ͜Ε͕18"ʹ ͳΔͱਖ਼ৗʹಈ࡞͠·ͤΜͰͨ͠ɻ ௨৴पΓͰ৭ʑ͕͋ΔΜͩΖ͏ͳ͊ͱਪଌ͍ͯ͠·͢ɻ ৄ͘͠ϩδ οΫݟͯ·ͤΜ͕ɺଟҰ୴+4Ͱ֘ͷ63-ͷDTTΒؚΉͷΛ%-͠ ͯͦΕΛݟ͑ͳ͍EPNʹల։ͯ͠DBOWBT͔Βը૾Խͯ͠Δͦͷ௨৴෦ ͕͏·͍͔͘ͳ͍ͷͰʁ Ͱɺ݁ہDBOWBTΛෳ༻ҙͯͦ͠ΕΛNFSHFͱ͍͏͔KPJO
͢ΔΑ͏ͳ ϩδοΫʹ͠·ͨ͠ɻ '()*+,-./01234$5
!"#$%& "OESPJEͷΈ18"Ͱը໘αΠζ͕औಘͰ͖ͳ͍ ͓ֆඳ͖ػೳDBOWBTͱ͍͏ػೳΛ࣮͍ͬͯͯ͠·͕͢ɺDBOWBTͷ ੑ্࣭ɺը໘ҰഋͷඳըྖҬΛ࣋ͭҝʹ)5.-ཁૉͷXJEUIͱIFJHIUͰ ࢦఆ͠ͳ͚ΕͳΓ·ͤΜɻ DTTͰ͓͔͘͠ͳΔ ͜ΕΛ௨ৗͷϒϥβͷΈ༻͢Δ)5.-൛Ͱ+4ͰCPEZͷPOMPBE࣌ʹ มߋ͢ΔΑ͏ʹ͍ͯͨ͠ͷͰ͕͢ɺ"OESPJEͷ18"Ͱىಈ͢Δͱɺඳը ྖҬ͕ ͙Β͍ͳͬͯ͠·͍ͬͯʹͳΓ·ͤΜͰͨ͠ɻ
৭ʑࢼͯ͠ΈͨΜͰ͕͢ɺ໘ͩͬͨͷͰ"OESPJEͷ߹Nඵܦͬ ͔ͯΒऔಘ͢ΔϩδοΫʹมߋ͠·ͨ͠ɻ '()*+,-./01234$5
!"#$%&'()*+,-./0 123/45 3FUJOBରԠ J1IPOFͳͲʹݟΒΕΔ3FUJOBσΟεϓϨΠΛ͡Ί࠷ۙͷλϒϨοτ εϚʔτϑΥϯཧతͳղ૾ͱཧతͳղ૾͕ഒҎ্ҧ͍·͢ɻ ຊདྷͰ͋Εɺ֤ͷEQJʹԠͯ͡DBOWBTͷXJEUIɺIFJHIUΛഒͳͲʹ ͯ͠DTTͰʹ͢Δͷ͕ৗ۟Ͱ͢ɻ ͨͩɺ࣮ࡍʹ։ൃ͍ͯ͠Δ࣌શ͘಄ʹͳ͘ɺ͔ͳΓऴ൫ʹͳͬͯʮ͋ɺ δϟΪͬͯΔΘʜʯͱͳͬͨͷͰ͕͢ɺ͜ͷ࣌Ͱݴ͍ग़ͬ͠ͷଉࢠ͕ ຬ͍ͯͬͯͨ͠ඇྗͳ"OESPJEͩͱΧΫͭ͘༧ײ͕ͨ͠ͷͰݟ
ૹΓ·ͨ͠ɻ
!"#$%& 6OEP3FEP༻ʹσʔλΛQBUIԽ͢Δ ࠓճ6OEP3FEPػೳͷͨΊʹDBOWBTͷόΠφϦใΛUP%BUB63-Խ ͨ͠ͷΛMPDBM4UPSBHFʹྻͰಥͬࠐΉͱ͍͏ແཧཧͳ࣮ʹ͠·͠ ͨɻ ཤྺใ͕ංେԽ͢Δͱॏ͘ͳͬͨΓ͢Δͷ͋ΔͷͰɺ͜Ͳ͕ࣗ༝ؾ ··ʹ͏ͷͱͯ͠ඍົͳ࣮Ͱ͢ɻ ຊདྷͰ͋Ε'BCSJDKTͳͲΛͬͯQBUIԽͨ͠࠲ඪσʔλΛ࣋ͭͷ͕Α ͍ͱࢥ͍·͕͢ɺ։ൃ࣌ඈߦػͷதͰ͑ͳ͔ͬͨͷͰɺͦͷ··ʹ͠ ͪΌ͍·ͨ͠ʜ
'()*+,-./01234$5
!"# 8"4.ͱ͔5ZQF4DSJQUͱ͔5VSCPQBDLͱ͔·͙Δ͍͠8FCGSPOUք۾ Ͱ͕͢ɺࣗͷΞΠσΟΞΛ؆୯ʹɺTBTTNJOJGZؚΊͨCVJMEͳ͠ʹ ࠷ͰϚϧνϓϥοτϑΥʔϜͰܗʹͰ͖Δ18"ϓϩτλΠϓʹݶΒ ͣχʔζ͋Δͱࢥ͍·͢ɻ ͪΖΜۀɾϏδωεͰ༻͢Δ߹ʹ৭ʑͳ͜ͱΛߟྀ͠ͳ͚Ε ͳΒͳ͍ͱࢥ͍·͢͠ϋϚΓॴ͋Γ·͕͢ϋϚΓॴͲΜͳݴޠͰϑ ϨʔϜϫʔΫͰ։ൃʹ͖Ͱ͢ɻ ݸਓతʹ࡞Δָ͠͞ΛΕͣʹ͜Ε͔Β18"Λͭͷબࢶͱͯ͠ ༻͍͖͍ͯͨ͠ͱࢥ͍·͢ɻ
ʢ#SFXVTͰͦΜͳͷͮ͘Γ͕͖ͳํΛืू͍ͯ͠·͢ˡએʣ ࣮ࡍͷ੍࡞େਓ൛ɺ͜Ͳ൛Λ࡞͍ͬͯ·͢ɻ ؾʹͳͬͨํΞΫηεͯ͠Έ͍ͯͩ͘͞ɻ $%&'()*+,-./0123
!"#$%&'() ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ *+),-./012345678