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.2k
Go の Timezone と Go 1.15 の tzdata 埋め込み
hiroakis
5
2.6k
トレタのインフラ運用
hiroakis
8
4.9k
Other Decks in Programming
See All in Programming
タクシーアプリ『GO』のリアルタイムデータ分析基盤における機械学習サービスの活用
mot_techtalk
4
1.5k
Nurturing OpenJDK distribution: Eclipse Temurin Success History and plan
ivargrimstad
0
960
最新TCAキャッチアップ
0si43
0
190
TypeScript Graph でコードレビューの心理的障壁を乗り越える
ysk8hori
2
1.1k
初めてDefinitelyTypedにPRを出した話
syumai
0
420
카카오페이는 어떻게 수천만 결제를 처리할까? 우아한 결제 분산락 노하우
kakao
PRO
0
110
Arm移行タイムアタック
qnighy
0
330
どうして僕の作ったクラスが手続き型と言われなきゃいけないんですか
akikogoto
1
120
Jakarta EE meets AI
ivargrimstad
0
600
CSC509 Lecture 13
javiergs
PRO
0
110
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
130
watsonx.ai Dojo #4 生成AIを使ったアプリ開発、応用編
oniak3ibm
PRO
1
140
Featured
See All Featured
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
6
420
Bash Introduction
62gerente
608
210k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
28
8.2k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Faster Mobile Websites
deanohume
305
30k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
What's in a price? How to price your products and services
michaelherold
243
12k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Into the Great Unknown - MozCon
thekraken
32
1.5k
Building Your Own Lightsaber
phodgson
103
6.1k
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 תה ˖ فٗز؝ٕ余殛ׅךכ嚂׃ְ ˖ 噟濼陎㣐✲կ⹈䓼㹋꿀ׅל䨌ִկ ˖ 噟歲ך䢪统װ农럀濼ָ֮