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
モダンなアーキテクチャでゼロから作る証券基盤
Search
Takuya Oki
July 21, 2020
Technology
1
260
モダンなアーキテクチャでゼロから作る証券基盤
Takuya Oki
July 21, 2020
Tweet
Share
Other Decks in Technology
See All in Technology
会社を支える Pythonという言語戦略 ~なぜPythonを主要言語にしているのか?~
curekoshimizu
4
890
GPUをつかってベクトル検索を扱う手法のお話し~NVIDIA cuVSとCAGRA~
fshuhe
0
180
AIプロダクトのプロンプト実践テクニック / Practical Techniques for AI Product Prompts
saka2jp
0
120
[re:Inent2025事前勉強会(有志で開催)] re:Inventで見つけた人生をちょっと変えるコツ
sh_fk2
1
880
ざっくり学ぶ 『エンジニアリングリーダー 技術組織を育てるリーダーシップと セルフマネジメント』 / 50 minute Engineering Leader
iwashi86
4
2.8k
生成AI時代のPythonセキュリティとガバナンス
abenben
0
150
パフォーマンスチューニングのために普段からできること/Performance Tuning: Daily Practices
fujiwara3
2
140
SOTA競争から人間を超える画像認識へ
shinya7y
0
610
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
110
Behind Postgres 18: The People, the Code, & the Invisible Work | Claire Giordano | PGConfEU 2025
clairegiordano
0
150
ViteとTypeScriptのProject Referencesで 大規模モノレポのUIカタログのリリースサイクルを高速化する
shuta13
3
220
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
140
Featured
See All Featured
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
2
110
Fireside Chat
paigeccino
41
3.7k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
RailsConf 2023
tenderlove
30
1.3k
Designing for Performance
lara
610
69k
Product Roadmaps are Hard
iamctodd
PRO
55
11k
Facilitating Awesome Meetings
lara
57
6.6k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
1.7k
Building Applications with DynamoDB
mza
96
6.7k
Writing Fast Ruby
sferik
630
62k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
Transcript
ϞμϯͳΞʔΩςΫνϟͰ θϩ͔Β࡞Δূ݊ج൫ גࣜձࣾFinatext ੴڮ३ࢤɾେ࠸ #devsumi Session C-7
ࣗݾհ ʔ ੴڮ३ࢤ • FinatextͰαʔόαΠυͱΠϯϑϥ • ূ݊ϓϥοτϑΥʔϜͷ։ൃʹܞΘΔ • ηκϯϙέοτͷ։ൃʹܞΘΔ •
झຯαφ • twitterɿ@bashi0501
ࣗݾհ ʔ େ࠸ • ͱͱۜߦͰӦۀͬͯ·ͨ͠ • ݱࡏFinatextͰαʔόαΠυΤϯδχΞ • BaaSηκϯϙέοτͷ։ൃӡ༻ʹܞΘΔ •
࠷ۙͷझຯɿےτϨ • twitterɿ@okidoki78
Finatextάϧʔϓʹ͍ͭͯ
ࣄۀ༰ “BtoBforCϞσϧ”Λ࣠ʹɺଟ༷ͳχʔζʹରԠ͢Δۚ༥αʔϏεΛ։ൃɾఏڙ X[EH X[EH 4&)?.3 X[EH .;#3:A. • RZ",C-B1$C*
• >6%BJI • ;#+1$C* • ,<@51$LP"VU • KO(B/41$92#/ S` • YTW\M]Q^ ! D_F D DJF GN-#7.JI (B/42#/S` W\:A038'#=
ۚ༥͕ͬͱΒ͠ʹدΓఴ͏ੈͷதʹ͢Δ VISION MISSION ۚ༥Λ”αʔϏε”ͱͯ͠࠶ൃ໌͢Δ
Finatextάϧʔϓ͕ࢦۚ͢༥αʔϏε૾ ' 34$ ' ) #!." $ $
-% 1( , 34 ' & +/ $ 02*
ূ݊ϓϥοτϑΥʔϜʢBrokerage as a Serviceʣ ূ݊αʔϏεͷڞ௨ػೳΛΫϥυԽ͠ɺଞγεςϜͱͷଓ෦ΛAPIԽ
ैདྷܕखྉθϩͷίϛϡχςΟܕגऔҾΞϓϦ STREAMʢετϦʔϜʣͷհ •ैདྷܕͷגࣜҕୗखྉ͕͍ͭͰԿͰ ແྉ •࠷̑ͰεϐʔσΟʔʹޱ࠲։ઃਃ͠ࠐΈ͕ Մೳ •ΦϯϥΠϯʗΦϑϥΠϯͷίϛϡχςΟΛ ௨ͯ͠ϕςϥϯॳ৺ऀג༑ʹ
ηκϯϙέοτͷհ ηκϯΧʔυ/UCΧʔυձһΛରͱͨ͠ࢿӡ༻αʔϏε •খ࢝͘͞Ί͍ͨॳ৺ऀ͚ͷαʔϏε •ΫϨδοτΧʔυܾࡁͰגࣜͷੵΈཱ͕ͯՄೳ •Ӭٱෆ໓ϙΠϯτͰࢿ৴ୗגࣜͷੵΈཱͯɺ ࢿ৴ୗͷߪೖ͕Մೳ ύʔτφʔɿגࣜձࣾΫϨσΟηκϯ༷
ܦӦ্ͷظ • ࣄۀͷଟ֯Խ • ίΞࣄۀͱͷγφδʔ • Ϋϩεηϧ • ΫϩευϝΠϯͰͷσʔλੳ •
UXͷ্ • ӦརاۀͰ͋ΔҎ্ɺϢʔβʔͱ͓ۚͷΓऔΓଘࡏ
ۚ༥ࣄۀ্ཱͪ͛ͷ՝ • ໔ڐ੍ɾొ੍ͷͷ͕΄ͱΜͲ • ձࣾ৫ • ਓһମ੍ • ཧΦϑΟεͷߏ •
γεςϜίετेԯن ͓࣌ؒۚॳظίετ͕͔͔Δ
BaaSͷղܾ͢Δ՝ • ۚ༥հۀͱ͍͏ϥΠηϯεͰϥΠτʹ • 2021ʹʮۚ༥αʔϏεհۀʯ • ओͳূ݊ۀʢޱ࠲։ઃܾࡁͳͲʣҾ͖ ड͚Δ͜ͱͰମ੍ΦϑΟεͷճආ • WebAPIͰޱ࠲։ઃจൃͳͲΛड͚Δ͜
ͱͰॳظͷγεςϜίετΛճආ
BaaSߏਤ
BaaSͷಛ • ෳͷECSΫϥελʹΑΔϚΠΫϩαʔϏε • ػೳ͝ͱʹେ͖͘ҟͳΔηΩϡϦςΟɾՄ༻ੑɾύϑΥʔϚϯεཁ݅ • ࢢͷ։͍ͯΔ࣌ؒݶΒΕ͓ͯΓɺͦΕʹΑΔίετ࠷దԽ • ϝϯςφϯεೖΕΔ͜ͱͷϋʔυϧͷࠩʢྫɿޱ࠲։ઃ24h։͚͍͍͕ͯͨɺ จΛਂʹด͡Δ͜ͱ༰қʣ
• ͨͩτϥϯβΫγϣϯڥք͍͠… • ଟ͘ͷ֎෦ଓڥɻൃܥɺՁ֨ܥɺόοΫΦϑΟεetc • ͦΕʹ͏ଟ͘ͷόονॲཧ • FIXʢTCP্ͷۚ༥༻ϓϩτίϧʣʹઐ༻ઢଓʢDirect ConnectʣΛར༻ɻ
ηκϯϙέοτߏਤ ۙكʹݟΔ γϯϓϧͳϞϊϦε
ΫϨσΟηκϯ༷ͷհ
ηκϯϙέοτͷੜ
• ࢿ৴ୗɺגࣜͷੵཱࢿ͕ग़དྷΔ • גࣜ1ג୯ҐͰੵཱՄೳʢ௨ৗɺࢢͰചങ͢Δ߹ 100ג୯Ґʣ • ੵཱͷݪࢿʹɺηκϯΧʔυɺӬٱෆ໓ϙΠϯτΛ ར༻͢Δ͜ͱ͕ग़དྷΔ • ͪΖΜΧʔυͰੵཱ͢ΔͱӬٱෆ໓ϙΠϯτஷ·
Δ ηκϯϙέοτͷಛ
• ͪͳΈʹɾɾɾ • ΫϨδοτΧʔυΛ༻͍ͨגࣜੵཱຊॳ • ΫϨδοτΧʔυΛ༻͍ͨࢿ৴ୗͷੵཱຊʹ ͑Δ΄Ͳ ηκϯϙέοτͷಛ
• Ϣʔβͱͯ͠ੵཱʹΫϨδοτΧʔυΛ͍͍ͨ • ͳ͓௨ৗΫϨδοτΧʔυͷखྉ͕ߴͯ͑͘ͳ͍ • גࣜͷചങखྉɿยಓ1%ະຬ • ࢿ৴ୗͷ৴ୗใुɿ0.5~1.5%ఔ • ΫϨδοτΧʔυͷܾࡁखྉɿ3%
• ΫϨδοτΧʔυൃߦձࣾͷΫϨσΟηκϯ༷͔ͩΒͦ͜ग़དྷͨαʔϏε ηκϯϙέοτͷಛ
• ੵཱࢿͷΈ • όονॲཧͷઃܭ ੵཱͷཪଆͷ
• ੵཱࢿͷΈ • όονॲཧͷઃܭ ੵཱͷཪଆͷ
ੵཱࢿͷΈ • ຖ݄8ʹੵཱΛ࣮ࢪ • 1. ηκϯϙέοτͷαʔό͔ΒɺBaaSʹରͯ͠ੵཱϦΫΤετΛ͛Δ • 2. BaaSͰҎԼΛߦ͏ •
ސ٬ͷΫϨδοτΧʔυɾϙΠϯτͷܾࡁ • ܾࡁֹͨۚ͠Λɺސ٬ͷূ݊ޱ࠲ೖۚ • ސ٬ͷޱ࠲ߴΛར༻͠ɺגࣜɾࢿ৴ୗͷࢢͷൃ • 3. ηκϯϙέοτͷαʔόͰɺੵཱ݁ՌΛऔΓࠐΈ
ੵཱࢿͷΈ • ຖ݄8ʹੵཱΛ࣮ࢪ • 1. ηκϯϙέοτͷαʔό͔ΒɺBaaSʹରͯ͠ੵཱϦΫΤετΛ͛Δ • 2. BaaSͰҎԼΛߦ͏ •
ސ٬ͷΫϨδοτΧʔυɾϙΠϯτͷܾࡁ • ܾࡁֹͨۚ͠Λɺސ٬ͷূ݊ޱ࠲ೖۚ • ސ٬ͷޱ࠲ߴΛར༻͠ɺגࣜɾࢿ৴ୗͷࢢͷൃ • 3. ηκϯϙέοτͷαʔόͰɺੵཱ݁ՌΛऔΓࠐΈ
ੵཱࢿͷΈ • ࢿ৴ୗͷ߹ • ϙΠϯτͷܾࡁɾΫϨΧͷܾࡁ → ސ٬צఆೖۚ → ސ٬צఆͰࢢങൃ •
גࣜͷ߹ • ϙΠϯτͷܾࡁ → ސ٬צఆೖۚ → εϚʔτϓϥεͷࣗݾצఆͰࢢങൃ  → ΫϨΧͷܾࡁ → ސ٬צఆೖۚ → εϚʔτϓϥεͷอ༗ʢࡏݿʣΛސ ٬͕ങ͢Δ • גࣜͷ߹ɺސ٬͕ΫϨΧܾࡁʹࣦഊͨ͠߹ɺεϚʔτϓϥε͕ࡏݿΛ๊ ͑Δ͜ͱͱͳͬͯ͠·͏
ੵཱࢿͷΈ • ຊདྷגࣜɺࢿ৴ୗͱಉ͘͡ɺΫϨδοτΧʔυܾࡁΛ֬ೝͰ͖͔ͯΒɺࢢ ൃ͍ͨ͠ • ࢿ৴ୗʹֹؔͯۚ͠୯ҐͰങͰ͖ΔͷͰՄೳ • →10,000ԁͷߪೖϦΫΤετʹରͯ͠ɺͪΐ͏Ͳ10,000ԁͰങͭ͢͜ͱ͕Մೳ • ͔͠͠גࣜʹؔͯ͠1ג୯ҐͰ͔͠ങͰ͖ͳ͍
• → 1ג3,000ԁͷ߹ɺ10,000ԁͷߪೖϦΫΤετʹରͯ͠9,000ԁ͔͠ങ͍ ͚Ͱ͖ͳ͍ • ֹۚɺࢢʹൃ͢Δ͜ͱͰॳΊͯ֬ఆ͢Δ • ΑͬͯɺൃޙʹΫϨδοτΧʔυΛܾࡁ͢Δඞཁ͕͋Δ
ੵཱࢿͷΈ • ങൃͷલʹɺΫϨδοτΧʔυʹ10,000ԁܾࡁɾೖۚ͠ɺ༨ͬͨͦ ͷ··ޱ࠲ߴʹ͢ͷͲ͏͔ʁ • ͜ΕΫϨδοτΧʔυͷʮγϣοϐϯάͷݱۚԽʯʹ֘ͯ͠͠·͏ͷͰ ग़དྷͳ͍ • ങൃͷલʹɺܾࡁձࣾʹ10,000ԁͷΧʔυͷ༩৴ͷ֬อΛߦ͍ɺޙʹ 9,000ԁͷΧʔυܾࡁΛߦ͑Α͍ͷͰʁ
• Έ্ɺ10,000ԁͷ༩৴औΓফͤͳ͍ͨΊɺ19,000ԁͷ༩৴͕ඞ ཁͱͳͬͯ͠·͏
• ੵཱࢿͷΈ • όονॲཧͷઃܭ ੵཱͷཪଆͷ
όονͷछྨ • BaaS 㱻 ηκϯϙέοτ • ηκϯϙέοτ͔ΒBaaSੵཱਃΛ࿈ܞ͢Δόον • BaaS͔Βηκϯϙέοτੵཱ݁ՌΛ࿈ܞ͢Δόον •
BaaS୯ମ • BaaSͷதͰ֤ϚΠΫϩαʔϏεʹੵཱਃΛ࿈ܞ͢Δόον • ΫϨδοτΧʔυӬٱෆ໓ϙΠϯτΛܾࡁ͠ɺೖۚ͢Δόον • ࢢגࣜΛൃ͢Δόον • ࢢ৴Λൃ͢Δόον • ηκϯϙέοτ୯ମ • ηκϯϙέοτͰϢʔβʹੵཱ݁ՌΛ௨͢Δόον
όονॲཧͷઃܭͰҙ͍ࣝͯ͠Δ͜ͱ • ႈੑ • τϥϯβΫγϣϯ੍ޚ
ႈੑͱʁ • ͋Δૢ࡞Λෳճߦͬͯɺinput͕ಉ͡Ͱ͋Ε݁Ռಉ͡ʹͳΔɺͱ͍͏֓೦ • ex) ҎԼႈͰແ͍ • όονΛෳճୟ͘ͱɺ݁Ռ͕ͦͷʹ૿͍͑ͯ͘ • όονΛෳճୟ͘ͱɺ݁Ռ͕ͦͷʹߋ৽͞Ε͍ͯ͘
• όονΛႈʹ࡞Δ͖ཧ༝ • ͲΜͳόονʹඞࣦͣഊ͢ΔՄೳੑ͋Δ • ωοτϫʔΫΤϥʔɺoomɺϋʔυΣΞͷނোɾɾɾ • ΛऔΓআ͍ͨޙɺ࠶όονΛΒͤΔࣄ͕ग़དྷΔ
ႈੑͷ࣮ํ๏ • 1. શͯͷॲཧΛΓ͢ • ͓ͦΒ͘ݫີͳҙຯͰͷႈੑ • ߹ʹΑͬͯطʹग़དྷ͍ͯΔσʔλΛ࠷ॳʹআ͢Δ͜ͱ͕ඞཁͱͳΔ • ࠶࣮ߦ࣌ʹ͔͔࣌ؒΔ͕ɺ݅ذগͳͯ͘ࡁΉ
• 2. ະॲཧͷͷͷΈ࣮ߦ͢Δ • ͦΕͧΕͷॲཧʹରͯ͠ॲཧࡁεςʔλεΛ͚ͭΔɻ࠶࣮ߦ࣌ʹεςʔλε ͕͍͍ͭͯͳ͍ͷͷΈॲཧ͢Δ • ࠶࣮ߦ࣌ʹΓͷ݅Λ࣮ߦ͢Δ͚ͩͳͷͰɺ͔͔࣌ؒΒͳ͍ • εςʔλεͰϋϯυϦϯά͢Δɺ݅ذ૿͑ͯ͠·͏
ηκϯϙέοτͰͷྫ • 1. શͯͷॲཧΛΓ͢ྫ • ηκϯϙέοτ͔ΒBaaSʹରͯ͠ੵཱϦΫΤετΛૹΔόον • ηκϯϙέοτͰBaaS͔Βੵཱ݁ՌΛऔΓࠐΉόον • 2.
ະॲཧͷͷͷΈ࣮ߦ͢Δྫ • ΫϨδοτΧʔυϙΠϯτΛࢧ͏όον • ੵཱ݁ՌΛɺϝʔϧͰϢʔβʹ௨͢Δόον • ֎෦ʹ࡞༻Λ࣋ͬͯ͠·͏ͷ2Ͱ࣮ͤ͟ΔΛಘͳ͍ • 2ͷ߹ʹؾΛ͚ͭΔ͖͜ͱ —> τϥϯβΫγϣϯ੍ޚ
τϥϯβΫγϣϯ੍ޚͱʁ • τϥϯβΫγϣϯ = ͋ΔҙຯΛ࣋ͬͨҰ࿈ͷॲཧͷմ • τϥϯβΫγϣϯ੍ޚ = τϥϯβΫγϣϯͰσʔλͷ߹ੑ͕อͨΕΔ͜ͱ •
͜Ε͕݁ߏ͍͠
ex) ࢿ৴ୗͷܾࡁόον • ಛʹαʔϏεΛ·্͙ͨͰɺ༷ʑͳΤϥʔ͕ى͖͏Δ • ωοτϫʔΫΤϥʔ૬खํͷϋʔυΣΞͷނোΛߟ͑ΔͱҎԼఆͰ͖Δ • Ӭٱෆ໓ϙΠϯτͷೖۚ࣌ʹΤϥʔ • ΫϨΧར༻࣌ʹΤϥʔ
• ΫϨΧͷೖۚ࣌ʹΤϥʔ • Statusߋ৽࣌ʹΤϥʔ
͍͔ʹରԠ͍ͯ͠Δ͔ • ো͕ى͖Δ͜ͱΛલఏʹઃܭ͢Δ • ॲཧ୯Ґ͝ͱʹɺࡉ͔͘σʔλϕʔεΛߋ৽͢Δ͜ͱͰɺΤϥʔൃੜ࣌ͷӨڹΛہॴԽ • ֎෦ଓͷΓͱΓશͯϩάʹు͖ग़͢ɻͦͷଞॲཧͷϙΠϯτʹͳΔͱ͜Ζϩά Λు͘ɻ → ো͕ى͖ͯ͠·ͬͨ߹ɺԿ͕ى͍͔ͬͯͨ͑͜ΔΑ͏ʹ͢Δ
• ࣮ࡍো͕ى͖ͨ߹ʹͲ͏ͳΔ͔ • ΦϯίʔϧͷΤϯδχΞ͕͍Δ • γεςϜΤϥʔ͕ى͖ͨ߹ɺҰ୴ͦͷ࣌ͰόονΛࢭΊͯΦϯίʔϧͷΤϯδχ Ξʹ࿈བྷ͕͍͘
·ͱΊ • ূ݊ϓϥοτϑΥʔϜʮBaaSʢBrokerage as a ServiceʣʯΛ͑ɺ ଟେͳॳظίετΛ͔͚ͳͯۚ͘༥ࣄۀΛ࢝ΊΒΕΔɻ • BaaSϚΠΫϩαʔϏεԽ͠ɺηΩϡϦςΟɺՄ༻ੑɺύϑΥʔϚϯεɺ ίετʹର͠ɺͦΕͧΕͷ୯ҐͰٻΊΒΕΔͷʹద༻͍ͯ͠Δ
• ֤αʔϏεECSʹΑͬͯίϯςφӡ༻͠ɺdisposableʹ͢Δ͜ͱͰ ࠷৽ੑΛอͯΔΑ͏ʹ͍ͯ͠Δ • όονॲཧΫϥυαʔϏεൃՐͷΠϕϯτͰ࣮͢Δ͜ͱͰҰཡੑΛ อ͍ͬͯΔ • όονॲཧͷઃܭͰႈੑͱτϥϯβΫγϣϯ੍ޚ͕؊ʹͳΔ
We Are Hiring! • ࢲͨͪͱҰॹʹɺ࣍ੈͷۚ༥γεςϜΛϞμϯͳٕज़Ͱ։ൃͯ͠Έ·ͤΜ͔ʁ • ϚωʔδυαʔϏεSaaSΛੵۃతʹ׆༻͢Δ͜ͱͰɺॊೈͰՄ༻ੑͷߴ͍ γεςϜΛ࣮ݱ͍ͯ͠·͢ɻʢৄ͘͠ςοΫϒϩάʹͯʂ https://medium.com/finatext ʣ
• αʔϏε৫ٸதͰɺٕज़తʹνϟϨϯδͰ͖Δ͜ͱ͕ͨ͘͞Μ ͋Γ·͢ʂ • ৄ͘͠ https://finatext.com/ja/career
None