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.1k
Go の Timezone と Go 1.15 の tzdata 埋め込み
hiroakis
5
2.6k
トレタのインフラ運用
hiroakis
8
4.9k
Other Decks in Programming
See All in Programming
◯◯エンジニアになった理由
gessy0129
PRO
0
580
Applied NLP in the Age of Generative AI
inesmontani
PRO
3
1.1k
全方位強化 Python 服務可觀測性:以 FastAPI 和 Grafana Stack 為例
blueswen
1
360
CSC509 Lecture 03
javiergs
PRO
0
130
PHPを書く理由、PHPを書いていて良い理由 / Reasons to write PHP and why it is good to write PHP
seike460
PRO
5
270
Assembling the Future: crafting the missing pieces of the Ruby on Wasm puzzle
skryukov
0
120
型付きで行うVSCode拡張機能開発 / VSCode Meetup #31
mazrean
0
220
"noncopyable types" の使いどころについて考えてみた
andpad
0
130
Frontend Magic mit CSS Houdini
joergneumann
0
420
グローバルなソフトウェアテスト組織における課題と戦略 / Challenges and Strategies in a Global Software Testing Organization #mf_techday
imtnd
0
220
コードレビューと私の過去と未来
jxmtst
0
160
"Swarming" をコンセプトに掲げるアジャイルチームのベストプラクティス
boykush
1
160
Featured
See All Featured
How to Ace a Technical Interview
jacobian
275
23k
Fontdeck: Realign not Redesign
paulrobertlloyd
81
5.2k
Writing Fast Ruby
sferik
625
60k
Build The Right Thing And Hit Your Dates
maggiecrowley
31
2.3k
Happy Clients
brianwarren
97
6.6k
Thoughts on Productivity
jonyablonski
67
4.2k
Fantastic passwords and where to find them - at NoRuKo
philnash
50
2.8k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.1k
GitHub's CSS Performance
jonrohan
1030
450k
The Cult of Friendly URLs
andyhume
76
6k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
42
6.5k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
92
16k
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 תה ˖ فٗز؝ٕ余殛ׅךכ嚂׃ְ ˖ 噟濼陎㣐✲կ⹈䓼㹋꿀ׅל䨌ִկ ˖ 噟歲ך䢪统װ农럀濼ָ֮