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
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
そして物語は更に何度目かのアプリ内通知再実装を迎える / Reimplement in app...
Search
moznion
August 19, 2017
Technology
4.1k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
そして物語は更に何度目かのアプリ内通知再実装を迎える / Reimplement in app notification again
Kyoto.なんか #3の資料です
moznion
August 19, 2017
More Decks by moznion
See All by moznion
ブラウザアプリの継続的パフォーマンスモニタリング (序) / Continuous Browser Application Performance Monitoring; Act 1
moznion
0
120
reFACToring
moznion
1
1.3k
cccccc
moznion
1
2.6k
履歴テーブル、今回はこう作りました 〜 Delegated Types編 〜 / How We Built Our History Table This Time — With Delegated Types
moznion
16
15k
「データ無い! 腹立つ! 推論する!」から 「データ無い! 腹立つ! データを作る」へ チームでデータを作り、育てられるようにするまで / How can we create, use, and maintain data ourselves?
moznion
11
7.6k
避けられないI/O待ちに対処する: Rails アプリにおけるSSEとasync gemの活用 / Tackling Inevitable I/O Latency in Rails Apps with SSE and the async gem
moznion
4
9.3k
RubyKaigi Hack Space in Tokyo & 函館最速 "予習" 会 / RubyKaigi Hack Space in Tokyo & The Fastest Briefing of RubyKaigi 2026 in Hakodate
moznion
1
470
地に足の付いた現実的な技術選定から魔力のある体験を得る『AIレシート読み取り機能』のケーススタディ / From Grounded Tech Choices to Magical UX: A Case Study of AI Receipt Scanning
moznion
7
5.2k
Chrome Extension Techniques from Hell
moznion
1
330
Other Decks in Technology
See All in Technology
Jetpack Compose で挑む新聞紙面UI ─ 複合ジェスチャー・ポリゴン記事領域・適応的ページ構成という3つの壁/droidkaigi2026
nikkei_engineer_recruiting
0
240
DEFCON34-Write-up_HYCu-MYCu
daikiokazaki
0
110
Where Is JetBrains AI Heading- — Central CLI, Air Alpha, and the Agentic Development Stack
x5gtrn
PRO
0
150
Bet AI Day 2026丨AIを「使う」から、AIが「働く」へ ― LayerXが進める「組織AI」の社会実装
layerx
PRO
3
2.8k
Nav2、Nav3 ... はたまた自作?〜 作って理解する Nav3 の設計意図 〜 / Nav2, Nav3 ... or Build Your Own? — Understanding Nav3's design intent by building it from scratch
yanzm
0
260
TinyGo 開発サイクルを高速化する:Go で作るエミュレータ入門
zozotech
PRO
1
130
スクラムで身についていた動き方を、XPで捉え直してみた
codmoninc
PRO
1
320
作り直せるコードは迅速に 作り直せないDBは慎重に - AI時代のプロダクトエンジニアが「判断の不可逆性」で開発速度を変える話
kinosuke01
0
280
AIとペアプロを始める。人とのペアプロをやめる。ペアプロの良さを改めて知る。もっと好きになった。 / Rediscovering Pair Programming
honyanya
1
300
Bet AI Day 2026丨AIによって本質に戻るシステムリスク管理
layerx
PRO
0
1.3k
アリアドネの糸と、20年ごとの建て替え ── 長尾真『電子図書館』を、伊勢で読み直す / Rereading Makoto Nagao’s "Electronic Library" in Ise
ykiyota
0
120
現場に行くだけでは足りない——プロダクトエンジニアが業務の流れを捉える観点と、その鍛え方
takumiengineering
0
340
Featured
See All Featured
Marketing to machines
jonoalderson
1
5.8k
How to Build an AI Search Optimization Roadmap - Criteria and Steps to Take #SEOIRL
aleyda
1
2.2k
Site-Speed That Sticks
csswizardry
13
1.5k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
2
1.8k
The Art of Programming - Codeland 2020
erikaheidi
57
14k
4 Signs Your Business is Dying
shpigford
187
23k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
510
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Rails Girls Zürich Keynote
gr2m
96
14k
[RailsConf 2023] Rails as a piece of cake
palkan
59
7k
ラッコキーワード サービス紹介資料
rakko
1
4.8M
Transcript
ͦͯ͠ޠߋʹԿ͔ͷ ΞϓϦ௨࠶࣮Λܴ͑Δ @moznion
@moznion Server Sideଠ
લճͷ͋Β͢͡
લճͷ͋Β͢͡
લճͷ͋Β͢͡ ͿΓͷग़Ͱ͢
ΞϓϦ௨ͱ
ΞϓϦ௨ͱ
None
ΞϓϦ௨ͷ๊͑Δ
༗ޮͳσʔλߏΛߟ͑Δͷ͕͍͠ w 8SJUF)BSEͳΞʔΩςΫνϟʹ͢Δ͔ w 3FBE)BSEͳΞʔΩςΫνϟʹ͢Δ͔ w ϋΠϒϦου
8SJUF)BSEͳΞʔΩςΫνϟ Storage Mailbox Write
Read
8SJUF)BSEͳΞʔΩςΫνϟ Storage Mailbox 4VCTDSJCFSͱ.BJMCPY͕ରԠ
Write Read
8SJUF)BSEͳΞʔΩςΫνϟ w 1SPT w 3FBE͕؆୯ 4VCTDSJCFSʹඥͮ͘ .BJMCPYΛ୯ʹಡΊऔͬͯ͜ΕΔ w $POT
w 8SJUFσʔλྔ͕૿͑Δ εύΠΫ͢Δ w 4UPSBHFͷσʔλ༰ྔ͕૿͑Δ ޙड़
3FBE)BSEͳΞʔΩςΫνϟ Write Read
3FBE)BSEͳΞʔΩςΫνϟ Write Read ͭͷσʔλιʔε͔Β 4VCTDSJCFSຖʹҟͳΔ௨Λ औಘͯ͘͠Δ
3FBE)BSEͳΞʔΩςΫνϟ w 1SPT w 8SJUF͢Δσʔλྔ͕গͳͯ͘ࡁΉ NBTUFSͱͳΔσʔλ͚ͩͰྑ͍ w $POT w
ͭͷσʔλιʔεΛͱʹͯ͠ɼ ֤4VCTDSJCFSʹԠͨ͡௨ΛΈཱͯΔ ඞཁ͕͋ΔͷͰSFBE͕ෳࡶʹͳΓ͕ͪ ॏ͍ΫΤϦ
લճͷ͋Β͢͡
8SJUF)BSEͳ ΞʔΩςΫνϟΛ࠾༻
8SJUF)BSEͳ ΞʔΩςΫνϟΛ࠾༻
8SJUF)BSEͳ ΞʔΩςΫνϟΛ࠾༻
ৄࡉલճͷεϥΠυ IUUQTTQFBLFSEFDLDPNNP[OJPO SFJNQMFNFOUJOBQQOPUJpDBUJPO
ͦͷޙฏͳʑΛ ա͍͕ͯͨ͝͠ʜʜ
Redisյ յͱݴ͏ఔͰͳ͍
w σʔλྔ͕େ͖͘ͳΓ͗ͨ͢ w ඦ(#ͷΦʔμʔ w ͦΓΌͦ͏ͩ VTFSͿΜNBJMCPY͕͋Δ w 3FEJTΛཧ͍ͯ͠ΔΤϯδχΞ͔Β ʮͦΖͦΖצหͯ͘͠ΕʯͱݴΘΕΔ
3FEJTͷݶք
3FEJTͷݶք w ௨σʔλॖୀ͠ʹ͍͘ w ٳϢʔβͰ͋ͬͯɼͦͷϢʔβͷ ௨σʔλফͤͳ͍ ॖখ͋Γ͔ w ͭ·Γσʔλ૿͑ΔҰํ
3FEJTͷݶք w 3FEJT͕ѱ͍Θ͚Ͱͳ͍ʂʂʂʂ w Ϣʔεέʔε͕߹Θͳ͔ͬͨ w େྔͷӬଓσʔλ࣋ͨͤΔͷΉ͍ͣ
ݱࡏ
w ͩ·ͩ͠·͠3FEJTΛ͍ͬͯΔʜʜ ͣ
Ͳ͏͢Εྑ͍ͷ͔
Ͳ͏͢Εྑ͍ͷ͔
ͭΒ͍ʂʂ
͜͜ͰৼΓฦͬͯΈ·͠ΐ͏
ৼΓฦΓ w ͳͥ4UPSBHF͕ؤுΔඞཁ͕͋Δͷ͔ʁ w ݱ࣮తͳͰσʔλΛฦ͢4UPSBHF͕ ແਚଂʹ͋Εղܾ͢Δ w ಡΉํॻ͘ํɼʮ௨ʯΛද͢ ϑΟʔυతͳੜσʔλΛѻ͏ํָ͕Ͱ͋Δ
ৼΓฦΓ w ͳͥ4UPSBHF͕ؤுΔඞཁ͕͋Δͷ͔ʁ w ݱ࣮తͳͰσʔλΛฦ͢4UPSBHF͕ ແਚଂʹ͋Εղܾ͢Δ w ಡΉํॻ͘ํɼʮ௨ʯΛද͢ ϑΟʔυతͳੜσʔλΛѻ͏ํָ͕Ͱ͋Δ
ແਚଂͳετϨʔδʜʜ
Amazon S3
"NB[PO4 w આ໌ෆཁ w "84ͷ0CKFDU4UPSBHF w ແਚଂ ແਚଂͰͳ͍
ৼΓฦΓ w ͳͥ4UPSBHF͕ؤுΔඞཁ͕͋Δͷ͔ʁ w ݱ࣮తͳͰσʔλΛฦ͢4UPSBHF͕ ແਚଂʹ͋Εղܾ͢Δ w ಡΉํॻ͘ํɼʮ௨ʯΛද͢ ϑΟʔυతͳੜσʔλΛѻ͏ํָ͕Ͱ͋Δ
ৼΓฦΓ w ͳͥ4UPSBHF͕ؤுΔඞཁ͕͋Δͷ͔ʁ w ݱ࣮తͳͰσʔλΛฦ͢4UPSBHF͕ ແਚଂʹ͋Εղܾ͢Δ w ಡΉํॻ͘ํɼʮ௨ʯΛද͢ ϑΟʔυతͳੜσʔλΛѻ͏ํָ͕Ͱ͋Δ
ϑΟʔυʜʜ
RSS
344 w આ໌ෆཁ w 9.-Ͱهड़Մೳ w αʔόଆɾΫϥΠΞϯτଆΘͣॆ࣮ͨ͠ αϙʔτ w ࠷ۙ344ͬͯΑΓ"UPNͰ͔͢Ͷ
Write Feed 1 Feed 2 Feed 3
S3 Read ུ֓
ུ֓ w αʔό344 "UPN 'FFEͷϑΝΠϧΛ 4ʹ165 PS1"5$) w ΫϥΠΞϯτ4͔Β'FFEΛ(&5͖ͯ͠
ͯɼ344Ϧʔμʔ࣮ͳΓͳΜͳΓͰ௨ ΛಡΈऔΔ w γϯϓϧʂʂʂʂʂ
1SPT w 8SJUF)BSEʹͳͬͯ૬ख4͔ͩΒ ·͋େৎͰ͠ΐ͏ͱ͍͏҆৺ײ w 3FBE͕݅ଟ͘ͳͬͯ૬ख4͔ͩΒ ·͋େৎͰ͠ΐ͏ͱ͍͏҆৺ײ ୯ͳΔ'FFEpMFͷTFSWFͩ͠ʜʜ w
344ͱ͍͏ރΕٕͨज़ͷస༻ʹΑΔ҆৺ײ
$POT w 0CKFDU4UPSBHFͷ165ͱ͍͏ॲཧͷ ಛੑ্ɼߴͳଈ࣌ੑΛ࣋ͨͤΔͷ͕ ͍͠ w ೝূɾೝՄ w طಡཧ
ଈ࣌ੑʹ͍ͭͯͷ w ྫ͑ɼʮ164)௨͕ૹΒΕ͖ͯͨͷʹ ௨ը໘ʹ৽͍͠௨͕ແ͍ʯͱ͍͏ έʔε w ϑΟʔυͷߋ৽͕Ԇ͍ͯ͠ΔͷݪҼ
ଈ࣌ੑʹ͍ͭͯͷ w ʮϑΟʔυͷߋ৽͕ऴΘͬͨΒ164)௨ΛൃՐ ͢ΔʯΈ͍ͨͳΠϕϯτۦಈʹ͢Δख͋Δ υ ϝΠϯΠϕϯτతͳ w ͔͠͠߹ʹΑͬͯॲཧͷߴԽͷͨΊʹ164) ௨ૹ৴ͱϑΟʔυߋ৽ผͷϫʔΧϓϩηε͕
ඇಉظతʹͬͯΔɼΈ͍ͨͳͷ͋Γ·͢ΑͶ w ͍͠ɼ߹ʹΑΔͱ͔͠ݴ͑ͳ͍ʜʜ
ೝূɾೝՄ w ུ֓ਤͷΑ͏ͳૉͳߏͩͱɼ 4ͷύʔϚϦϯΫ͑͞Θ͔Ε୭Ͱ ௨ͷ༰͕ಡΈऔΕͯ͠·͏ w ଟ͘ͷ߹ͦΕϚζ͍Ͱ͠ΐ͏ Ϛζ͘ͳ͍߹͋Δ͔͠Εͳ͍
Write S3 Read ೝূɾೝՄ
º 6TFS͔ΒͷSFBE ڐՄ͠ͳ͍ Write S3 Read ೝূɾೝՄ
Write S3 Read ೝূɾೝՄ αʔό4ؒͷ SFBEͷΈڐՄ͢Δ
αʔόͰϓϩΩγ͢Δͱ /FUXPSLӽ͠ͷ*0͕ͪ ੜ͡ΔͷͰϘτϧωοΫ ʹͳΓ͏Δʜʜ Write S3 Read
ೝূɾೝՄ
ೝূɾೝՄ w 4Λ୯ͳΔόοΫΤϯυ4UPSBHFͱͯ͠ Έͳͯ͠ɼαʔόܦ༝ͰίϯςϯπΛฦ͢ Α͏ʹ͢Δ w γϯϓϧ͕ͩϓϩΩγ͍ͯ͠Δαʔό͕ ϘτϧωοΫʹͳΔՄೳੑ͕͋Δ
ೝূɾೝՄ Write S3 (?) Read Onetime Token Onetime Token Serve
Onetime token Onetime Token
ೝূɾೝՄ w αʔόPOFUJNFUPLFOΛΫϥΠΞϯτʹฦ ٫͠ɼΫϥΠΞϯτͦͷPOFUJNFUPLFOͱ ڞʹTUPSBHFʹΞΫηεͯ͠(&5 w TUPSBHFଆ͕POFUJNFUPLFOͰೝূͯ͠ίϯ ςϯπΛฦ͔͢Ͳ͏͔Λஅ w ͜Ε4ͩͱग़དྷͳ͍ؾ͕͢Δʜʜ
ग़དྷΔ0CKFDU4UPSBHF͋Δͷ͔ʁ
طಡཧ w ୯७ʹϑΟʔυͷϑΝΠϧΛ৴͍ͯ͠Δ ͚ͩͳͷͰαʔόαΠυͰͷطಡཧ͕ ͍͠ w ΫϥΠΞϯτଆʹؤுͬͯΒ͏͔͠ʜʜ
·ͱΊ
·ͱΊ w ΞϓϦ௨࣮ʹ༷ʑͳ͕͋Δ w 8SJUFʹدͤΔ͔3FBEʹدͤΔ͔ w 8SJUFʹدͤͭͭɼ4UPSBHFΛ4ʹ͢Δͱ͍͏ ΞʔΩςΫνϟͷఏҊ ڊਓͷݞʹΔͧ
w ͔͠͠·ͩݕ౼͖͋͢Δ
·ͱΊ w ΞϓϦ௨࣮ͻͱͭऔͬͯํ๏͕ ͨ͘͞Μ͋ͬͯԞ͕ਂ͍ w ༻్ʹ߹Θͤͯదͳํ๏Λબ͢Δ ඞཁ͕͋Δ w ଞʹͬͱྑ͍ػߏ͕͋ͬͨΒٞ͠·͠ΐ ͏
͍ͬͦ54%#ʹಥͬࠐΜ͡Ό͏ͱ͔
Q?