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
クレジットカードの通信プロトコル ISO8583 と戦う
Search
Hiroaki Sano
August 31, 2019
Programming
31
13k
クレジットカードの通信プロトコル ISO8583 と戦う
builderscon2019
Hiroaki Sano
August 31, 2019
Tweet
Share
More Decks by Hiroaki Sano
See All by Hiroaki Sano
バンドルカードの クレジットカード決済システムの 泥臭い運用
hiroakis
10
8.3k
Go の Timezone と Go 1.15 の tzdata 埋め込み
hiroakis
5
2.7k
トレタのインフラ運用
hiroakis
8
5k
Other Decks in Programming
See All in Programming
SwiftUI Viewの責務分離
elmetal
PRO
2
270
Kotlinの開発でも AIをいい感じに使いたい / Making the Most of AI in Kotlin Development
kohii00
5
1.3k
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
150
kintone開発を効率化するためにチームで試した施策とその結果を大放出!
oguemon
0
150
楽しく向き合う例外対応
okutsu
0
670
Unity Android XR入門
sakutama_11
0
180
CloudNativePGを布教したい
nnaka2992
0
110
CDKを使ったPagerDuty連携インフラのテンプレート化
shibuya_shogo
0
110
pylint custom ruleで始めるレビュー自動化
shogoujiie
0
150
機能が複雑化しても 頼りになる FactoryBotの話
tamikof
0
150
Rubyと自由とAIと
yotii23
6
1.8k
仕様変更に耐えるための"今の"DRY原則を考える
mkmk884
9
3.2k
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
7
640
Six Lessons from altMBA
skipperchong
27
3.6k
Build The Right Thing And Hit Your Dates
maggiecrowley
34
2.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
Rails Girls Zürich Keynote
gr2m
94
13k
Navigating Team Friction
lara
183
15k
The World Runs on Bad Software
bkeepers
PRO
67
11k
Visualization
eitanlees
146
15k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Faster Mobile Websites
deanohume
306
31k
A designer walks into a library…
pauljervisheath
205
24k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.2k
Transcript
ؙٖآحزؕ٦سך鸐⥋فٗز؝ٕ *40ה䨌ֲ CVJMEFSTDPO "VH ,BONV *OD )JSPBLJ4BOP
!2 ⡟ꅿ酔畍 #BDLFOE&OHJOFFSBU,BONV *OD !IJSPBLJT 荈䊹稱➜ IJSPBLJT !MB@MVOB@B[VM
!3 غٝسٕؕ٦سאֻגתׅ
!4 ؙٖآحزؕ٦س噟歲ךؒ؝ءأذي *40ך➬圫 *40ך1BSTF 㣐㢌הֿ תה ،آؑٝت
ؙٖآحزؕ٦س噟歲ך ؒ؝ءأذي
ؙٖآحزؕ٦س噟歲ךؒ؝ءأذي "DRVJSFS ،ؙٙ؎،ٓ *TTVFS ؎ءُ، !6 #SBOE ـٓٝس ˖
#SBOE 7JTB .BTUFS$BSE +$# ꋒ耠 "NFY ˖ فٓحزؿؓ٦يך䲿⣘ծ《䒷ٕ٦ٕך鋉㹀 ˖ "DRVJSFS ˖ ؕ٦س⸇湅䏄ך䬪遤ֲ ˖ *TTVFS ˖ ؕ٦س⠓㆞ ِ٦ؠ ך䬪遤ֲ ؕ٦س⠓㆞㤍秈 ؕ٦س⠓㆞ 䏄莧 ⸇湅䏄㤍秈 ،ٓ؎،ٝأ ،ٓ؎،ٝأ ぐ涫㜥➂暟ךꟼ⤘ ؕ٦سךⵃ欽㉀ㅷך「ֽ床׃
ؙٖآحزؕ٦س噟歲ךؒ؝ءأذي "DRVJSFS ،ؙٙ؎،ٓ *TTVFS ؎ءُ، !7 #SBOE ـٓٝس
ⵃ欽 ؕ٦س涪遤 ؕ٦س⠓㆞ 䏄莧 ⟎㡰♳ ⟎㡰♳ ⟎㡰♳ 锜実 㹋㡰♳ 㹋㡰♳ 㹋㡰♳ ؙٖآحزؕ٦س寸幥כؿؑ٦ؤ ⟎㡰♳ؔ٦أئ٦ءّٝ ♷⥋٥ؔ٦أ 㹋㡰♳ؙٔ،ؚٔٝ 㡰♳然㹀 ر٦ةֶꆃך崧
*40 ؙٖآحزؕ٦س噟歲ךؒ؝ءأذي "DRVJSFS ،ؙٙ؎،ٓ *TTVFS ؎ءُ، !8 #SBOE ـٓٝس
˖ أؾ٦ؕ٦ך䨽㾩ׅؕٝيכ؎ءُ،ח㾩ׅ ˖ ؔ٦أئ٦ءָّٝ*40ك٦أח׃فٗز؝ٕ ˖ 䎃剢⟃כ寸幥➿遤؟٦ؽأⵃ欽׃גְָ✲噟 䭁㣐ח⠵ג⟎㡰♳ה㹋㡰♳ךءأذيⰻ醡⻉׃ ⵃ欽 ؕ٦س涪遤 ؕ٦س⠓㆞ 䏄莧 锜実 *40 *40 ⟎㡰♳ ⟎㡰♳ ⟎㡰♳ 㹋㡰♳ 㹋㡰♳ 㹋㡰♳
*40ך➬圫
*40ך➬圫 !10 ˖ *40ծ⚅歲垥彊 ˖ IUUQTXXXJTPPSHPCQVJJTPTUEJTPFEWFO ˖ 鸐⥋כ5$1ד遤 ˖
傀ח1BSTFSֲָָ֮ծזְ ˖ ぐ爡杝荈ך䭁䓸⸇ִגְ&ODPEJOHָ殯ז׃גְ ˖ 劤涪邌ךⰻ㺁稢鿇ָ殯ז〳腉䚍֮ ˖ 1BSTFSכNPSJZPTIJׁח䩛⠗גְְ *40
*40ך➬圫 !11 YGF CGGGG GGGGGGGGFDEEDDGGDDEDDD DDEFEEDDEFDEDEEDED DDFFEDED FF
FGGGGG *40ךر٦ةך⼧Ⱈ鹌邌鎸
*40ך➬圫 !12 YGF CGGGG GGGGGGGGFDEEDDGGDDEDDD DDEFEEDDEFDEDEEDED DDFFEDED FF
FGGGGG *40ךر٦ةך⼧Ⱈ鹌邌鎸
*40ך➬圫 !13 YGF CGGGG GGGGGGGGFDEEDDGGDDEDDD DDEFEEDDEFDEDEEDED DDFFEDED FF
FGGGGG *40ךر٦ةך⼧Ⱈ鹌邌鎸 1"/ 剣⸬劍ꣲ 䎃剢 ؔٝٓ؎ٝ寸幥 ꆃ겘 ˟1"/1SJNBSZ"DDPVOU/VNCFSծؕ٦س殢〾ךֿה
!14 㣐תַז圓鸡כ.FTTBHF5ZQF #JUNBQ %BUB&MFNFOUךא 㛇劤圓鸡 *40ך➬圫 ˖ .FTTBHF5ZQFY ˖
#JUNBQYGF ˖ %BUB&MFNFOUYGGG
!15 .5 #JUNBQ %BUB #JUNBQ %BUBխ -FOHUI %BUB %BUB %BUB
%BUB %BUB %BUB 㛇劤圓鸡 ˖ .FTTBHF5ZQFכ䗳׆א㶷㖈ׅ ˖ #JUNBQכ䖓竲ך%BUB&MFNFOUך⳿植ػة٦ٝ邌植׃גְ ˖ %BUB&MFNFOUכ⳿植ׅ㜥䨽ח״גر٦ةⰻ㺁 1"/ 剣⸬劍 ꣲ ֶ״ן圓鸡 〳㢌ꞿծ㔿㹀ꞿծⰅ㶨 ָ✮寸תגְ %BUB -FOHUI %BUBխ *40ך➬圫
!16 .FTTBHF5ZQF ˖ )551ך⚅歲דְֲأذ٦ةأ؝٦سך״ֲזך ˖ Y⽃秪ח鹌侧ח㢌䳔ׅה ˖ ֿֿדכ#JUػحؙ鹌侧 1BDLFE#$% ה׃ג鍑ꅸ
˖ את ˖ ぐ呞ח䠐ָ֮ *40ך➬圫 *40ךغ٦آّٝ 湡涸կכؔ٦أծכؔ٦أך《嶊FUD 堣腉կכؙٔؒأزծכٖأهٝأFUD 涪⥋⯋կכ،ؙٙ؎،ٓծכ؎ءُ،FUD
!17 ؔ٦أ *TTVFS ؔ٦أח㼎ׅٖأهٝأ "DRVJSFS #SBOE ؔ٦أ *TTVFS ؔ٦أח㼎ׅٖأهٝأ "DRVJSFS
#SBOE 《嶊 《嶊ח㼎ׅٖأهٝأ 飑Ⰵ 飑Ⰵ 《嶊 飑Ⰵ 《嶊 *40ך➬圫 剣⸬劍ꣲثؑح ؙFUD 剣⸬劍ꣲثؑح ؙFUD 㼎䘔ׅؔ٦أ ךثؑحؙFUD .FTTBHF5ZQF
!18 GF #JUNBQ ⳿植ׅ%BUB&MFNFOU邌植ׅ#JU։ך#JUNBQ G ˟ 殢湡ך%BUB&MFNFOUָ㶷㖈
殢湡ך%BUB&MFNFOUָ㶷㖈 殢湡ך%BUB&MFNFOUָ㶷㖈 䠐ׅ ˟.4#JUכ如ח竲ֻ#JUNBQ ך㶷㖈䠐ׅ #JU #JU *40ך➬圫
!19 %BUB&MFNFOU ˖ 1"/ ꆃ겘 ؕ٦س剣⸬劍ꣲFUD寸幥ד䗳銲זر٦ةך劤⡤ ˖ 鶢ך#JUNBQד#JUָ甧ךָך갫殢דⰅגְ ˖ #JUך㜥䨽ח״גוזر٦ةָⰅַכ寸תגְ
˖ #JU1"/ ˖ #JU1SPDFTTJOH$PEF ˖ #JU"NPVOU 5SBOTBDUJPO ˖ #JU"NPVOU 4FUUMFNFOU ˖ #JU"NPVOU $BSEIPMEFS#JMMJOH ˖ #JU5SBOTNJTTJPO%BUFBOE5JNF ˖ #JU ָ甧גְ㜥さכ如ך״ֲזر٦ةחז *40ך➬圫 .5 #JUNBQ 1"/ 1$խ "./5 %BUF5JNF
!20 %BUB&MFNFOUךؿؓ٦وحز ˖ ر٦ةךⰻ㺁ח״גؿؓ٦وحزָ寸תגְ ˖ ꞿׁ〳㢌ꞿPS㔿㹀ꞿ ˖ 俑㶵珏ⴽ侧㶵ծ薉㶵ծ暴婊俑㶵ծתכֿך穈さׇ ˖ 邌植倯岀#$%
&#$%*$זו #JU ر٦ة ꞿׁ 俑㶵珏ⴽ 邌植 1"/ 〳㢌ꞿ 侧㶵 #$% ؕ٦س剣⸬ 劍ꣲ 㔿㹀ꞿ 侧㶵 #$% ⵃ欽䏄莧 ⡝䨽㕂 㔿㹀ꞿ 薉侧㶵暴婊俑㶵 &#$%*$ *40ך➬圫
*40ך1BSTF
*40ך1BSTF !22 NTH<>CZUF\ .FTTBHF5ZQF Y Y #JUNBQ YG
Y Y Y Y YF Y Y Y Y Y Y Y Y Y Y %BUB&MFNFOU Y Y Y Y Y Y Y Y Y Y Y Y^ غ؎ز⯓鶢ך➬圫ח䖞ג⯓걧ַⳢ椚ׅ ˟⟃꣬؟ٝفٕ؝٦س (P鎉铂 ָ竲ֹתָׅأل٦أךꟼ⤘♳ծ ؒٓ٦عٝسؚٔٝזוכ満ֹתׅ
*40ך1BSTF !23 .FTTBHF5ZQFכ#ZUF NFTTBHF5ZQFNTH<> Y Y NUSFBE"T#$% NFTTBHF5ZQF .FTTBHF5ZQF
.FTTBHF5ZQFכ#ZUF⽃秪ח铣ל״ְ
*40ך1BSTF !24 WBSCJUNBQ<>VJOU CJUNBQ<> NTHCJOBSZ#JH&OEJBO6JOU NTH<> NTH<> 锷椚琎ד.4#JUך㶷㖈然钠遤ֲ JG
YCJUNBQ<> \ CJUNBQ<> NTHCJOBSZ#JH&OEJBO6JOU NTH<> NTH<> ^ JG YCJUNBQ<> \ CJUNBQ<> NTHCJOBSZ#JH&OEJBO6JOU NTH<> NTH<> ^ #JUNBQ ˖ #JU #ZUF ׆א铣 ˖ .4# Y ָ㶷㖈ׅ㜥さכ ׁח#ZUFךCJUNBQָ竲ֻהזׅ
*40ך1BSTF !25 #JU1BSTF1"/JGCJUQSFTFOU 〳㢌ꞿծ#$%ծ⯓걧ח؟؎ؤ 呞侧 ָⰅגְػة٦ٝ JG YCJUNBQ<> \
MFOHUIJOU NTH<> 䗳銲זꞿֽׁ铣ד1"/《䖤 婍SFTU0G.THד《䖤 QBO SFTU0G.THSFBE"T#$% MFOHUI NTH<> ^ %BUB&MFNFOU ˖ ֿֿד锷椚琎崞欽 ˖ #JUNBQה#JUך⡘縧ך"/%怴皾ד㶷㖈ثؑحؙ׃ג1BSTF ˖ ♴鎸ך⢽כ#JU湡 Y ָ㶷㖈ַׅ锃ץגְ
*40ך1BSTF !26 #JU1BSTF1SPDFTTJOH$PEFJGCJUQSFTFOU 㔿㹀ꞿծ#$%ծ呞ךػة٦ٝ JG YCJUNBQ<> \ QD SFTU0G.THSFBE"T#$%
NTH ^ %BUB&MFNFOU ずׄ銲걄דמׅ㶷㖈ثؑحؙה1BSTF鹌גְֻ
*40ך1BSTF !27 #JU剣⸬劍ꣲ 㔿㹀ꞿծ#$%ծ呞 ::..ַUJNFTUBNQפך㢌䳔ָ䗳銲זػة٦ٝ JG YCJUNBQ<> \ ZZNN
SFTU0G.THSFBE"T#$% NTH FYQJSFT"UZZNN5P5JNFTUBNQ ZZNN ^ %BUB&MFNFOU 㛇劤כ㔿㹀ꞿPS〳㢌ꞿծ侧㶵 薉侧㶵PS薉侧㶵鎸〾דָ֮ծ 1BSTF鹌גְֻ麓玎ד圫ղזػة٦ٝח湫ׅ
*40ך1BSTF !28 #JU⸇湅䏄せ⡝䨽㕂 㔿㹀ꞿծ薉侧㶵鎸〾ծչغ؎زպךػة٦ٝ JG YCJUNBQ<> \ NFSDIBOU SFTU0G.THSFBE"MQIB/VNFSJD4ZNCPM/
NTH ^ %BUB&MFNFOU 㛇劤כ㔿㹀ꞿPS〳㢌ꞿծ侧㶵 薉侧㶵PS薉侧㶵鎸〾דָ֮ծ 1BSTF鹌גְֻ麓玎ד圫ղזػة٦ٝח湫ׅ
*40ך1BSTF !29 〳㢌ꞿծ薉侧㶵鎸〾ծ⯓걧חغ؎ز侧 ׁחꞿׁח״ג䠐ָ㢌ػة٦ٝ JG YCJUNBQ<> \ MNTH<> WBMVF
SFTU0G.THSFBE"MQIB/VNFSJD4ZNCPM/ M NTH<> TXJUDIMFO WBMVF \ DBTF DBTF ^ %BUB&MFNFOU
*40ך1BSTF !30 %BUB&MFNFOUך⚥חׁח#JUNBQָⰅגְػة٦ٝ JG YCJUNBQ<> \ TVCCJUNBQ TVCNTHNTH<> NTH<>
JG YTVCCJUNBQ \ ^ YYYYזػة٦ٝ JG YCJUNBQ<> \ ^ ZZZZZזػة٦ٝ JG YCJUNBQ<> \ %BUB&MFNFOU
㣐㢌הֿ
㣐㢌הֿ !32 䔲ⴱծוךر٦ةָꅾ銲ַ״ַֻזַ ˖ #JU1SPDFTTJOH$PEF ˖ #JU4ZTUFNT5SBDF"VEJU/VNCFS ˖ ꆃ겘ָⰅגְ%BUB&MFNFOUָֻׁ֮
˖ سًُؗٝزמׅ铣 ˖ ְ䨽דؕ٦س⢪ֲⰻ醡⻉⟃ךءأذيךؚٗ鋅ג וזر٦ةָ굲דַֻ岞荍ֻ锃叨 ˖ &$؟؎زծ؝ٝؽصծمذٕծ㕂ⰻ嵲㢩 ˖ 䏄莧ך噟䡾װ寸幥䩛媮ח״ג굲דֻر٦ةָ殯ז
㣐㢌הֿ !33 JG YCJUNBQ<> \ WBMVF SFTU0G.THSFBE#ZUFT/ 5IF-FOHUI0G5IJT%BUB NTH
EPOPUIJOH ^ %BUB&MFNFOUָהחַֻ㢳ְ ˖ ل٦آ鸐ծ噟ٗآحؙד䗳銲זך锃叨 ˖ 穠卓ծ噟ٗآحؙד♶銲זךכ铣굲לׅ倯ꆙה׃ ˖ %BUB&MFNFOUך؟؎ؤכ傀濼ד֮ ˖ ؟؎ؤⴓ铣ָ⡦׃זְ
!34 ꅾ銲ׄׯזְה䙼ג㹋כꅾ銲 ˖ 㕂ⰻⵃ欽儗ך⳿植ׅ〳腉䚍ָ֮%BUB&MFNFOUָ֮ ˖ ⼱錬ؕةؕشזו傈劤㔿剣ךر٦ةָⰅגְ ˖ ♶銲ךד铣굲ל׃גְ ˖
׃ַ׃㹋כٔن䩪ְ䠐ׅ'MBHⰅגְ ˖ ♧鿇ךֶ㹏圫ךٔن䩪ְ鏩〳׃ג׃תגְ ˖ ˟植儗挿דך䒦爡ך醡ㅷٓ؎ٝشحفדכٔن䩪ְכ♶鏩〳 ˖ سًُؗٝزך鋅衅ה׃荈ⴓָٔن䩪ְ׃זְַ㶷㖈 䘌גְ 㣐㢌הֿ
!35 噟歲ך鸐⢽ ˖ #JU"QQSPWBM$PEFכ呞ך薉侧㶵 ˖ 㼎ぢ鑐꿀ךꥷחչ薉㶵ָ幉ׄגְתׅ״պה䭷䶯ְֻ ˖ ؿؓ٦وحزדכ鏩〳ׁגְָ侧㶵ך⢪ֲךָ䢪统 ˖
鸐⢽ח䖞ג侧㶵ךה׃ 㣐㢌הֿ
!36 ֶתֽ #JU "QQSPWBM$PEF
תה
תה !38 תה ˖ فٗز؝ٕ余殛ׅךכ嚂׃ְ ˖ 噟濼陎㣐✲կ⹈䓼㹋꿀ׅל䨌ִկ ˖ 噟歲ך䢪统װ农럀濼ָ֮