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
250
モダンなアーキテクチャでゼロから作る証券基盤
Takuya Oki
July 21, 2020
Tweet
Share
Other Decks in Technology
See All in Technology
ネットワークだけ隔離されたコンテナ作成デモ / Kichijoji.pm36
tenforward
3
550
CDK Pipelinesをざっくり理解する
smt7174
0
160
JTCや セキュリティチェックリストが夢の跡
nikinusu
2
990
脆弱性を管理して、ビジネスリスクに備えよう 〜駆け出しエンジニアがCVEとSBOMを可視化してみた〜
ktgrryt
0
140
Next.js のページ遷移を全力で止める
ypresto
12
4.2k
GraphQLでの型渡しとデータフェッチの最適化
hayashikengo
1
110
AIが変革するシステム開発
autifyhq
0
110
負債あるモノリスのオブザーバビリティに組織で向き合う
recruitengineers
PRO
7
240
テスト”ケース”駆動開発 で手戻りをなくそう
ryohma0510
0
390
生成AIのためのデータ収集とデータエンジニアリング
shibuiwilliam
2
210
LINE WORKSとシステムを繋ぐ LINE WORKSのDevelopers機能紹介
mmclsntr
0
130
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
0
150
Featured
See All Featured
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
GitHub's CSS Performance
jonrohan
1030
450k
Designing for humans not robots
tammielis
248
25k
Building Better People: How to give real-time feedback that sticks.
wjessup
359
19k
4 Signs Your Business is Dying
shpigford
180
21k
WebSockets: Embracing the real-time Web
robhawkes
59
7.3k
What’s in a name? Adding method to the madness
productmarketing
PRO
21
3k
The World Runs on Bad Software
bkeepers
PRO
64
11k
Writing Fast Ruby
sferik
623
60k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.2k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
230
17k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
225
22k
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