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
カート刷新プロジェクトにおけるOpenAPIを活用したコード自動生成の今と明日 / AStud...
Search
ASKUL Engineer
April 19, 2019
Technology
0
130
カート刷新プロジェクトにおけるOpenAPIを活用したコード自動生成の今と明日 / AStudy20190419
アスクル社内勉強会で発表した資料です!
ASKUL Engineer
April 19, 2019
Tweet
Share
More Decks by ASKUL Engineer
See All by ASKUL Engineer
EditorConfigで導くコードの「美しさ」
askul
0
560
いまさら聞けないAWS
askul
0
5.2k
CTOが語る、テックカンパニーに向けた未来の話。by アスクル
askul
0
150
チームでリーダブルコードを実現するには?
askul
0
2.8k
ラズパイを使ってスマートリモコンを作ってみた
askul
0
720
Discord Bot はじめの一歩
askul
0
590
10分で「エラスティックリーダーシップ」をアウトプット
askul
0
3.1k
1on1をする上で大切なこと
askul
1
710
JBUG東京#20 〜そこが知りたい!Backlog活用術〜
askul
1
3k
Other Decks in Technology
See All in Technology
Developers Summit 2025 浅野卓也(13-B-7 LegalOn Technologies)
legalontechnologies
PRO
1
1.3k
Amazon S3 Tablesと外部分析基盤連携について / Amazon S3 Tables and External Data Analytics Platform
nttcom
0
150
Oracle Cloud Infrastructure:2025年2月度サービス・アップデート
oracle4engineer
PRO
1
340
オブザーバビリティの観点でみるAWS / AWS from observability perspective
ymotongpoo
9
1.6k
表現を育てる
kiyou77
1
220
(機械学習システムでも) SLO から始める信頼性構築 - ゆる SRE#9 2025/02/21
daigo0927
0
200
分解して理解する Aspire
nenonaninu
2
490
EDRの検知の仕組みと検知回避について
chayakonanaika
2
550
偏光画像処理ライブラリを作った話
elerac
1
120
The Future of SEO: The Impact of AI on Search
badams
0
240
コンテナサプライチェーンセキュリティ
kyohmizu
1
110
わたしのOSS活動
kazupon
2
300
Featured
See All Featured
How to Ace a Technical Interview
jacobian
276
23k
Designing for Performance
lara
604
68k
Rails Girls Zürich Keynote
gr2m
94
13k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
KATA
mclloyd
29
14k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.3k
Embracing the Ebb and Flow
colly
84
4.6k
Transcript
தڿਓΞεΫϧגࣜձࣾ "4UVEZ ΞεΫϧࣾษڧձ Χʔτ৽ϓϩδΣΫτʹ͓͚Δ 0QFO"1*Λ׆༻ͨ͠ίʔυࣗಈੜͷ ࠓͱ໌ ͋͢
8FCΞϓϦέʔγϣϯΤϯδχΞ தڿਓ!/","/0@"LJIJUP IUUQTBDLJOUPTIHJUIVCJPBCPVU
044׆ಈ w0QFO"1*(FOFSBUPS wIUUQTHJUIVCDPN0QFO"1*5PPMTPQFOBQJHFOFSBUPS w(BOFTIB Ψωʔγϟ wIUUQTHJUIVCDPNBDLJOUPTIHBOFTIB w4OJEFM εφΠσϧ
wIUUQTHJUIVCDPNBDLJOUPTITOJEFM
8&# %#13&447PM ಛू <ޮٸ্ঢ>εΩʔϚۦಈ8FC"1*։ൃ ষޙʙষΛࣥච͍͖ͤͯͨͩ͞·͠ ͨ!ײँ IUUQTHJIZPKQNBHB[JOFXEQSFTTBSDIJWFWPM
None
ΞεΫϧࣾษڧձ ฏ࠷ޙͷAStudy
࣍ wͳͥίʔυΛࣗಈੜ͢Δͷ͔ʁ w0QFO"1* w υΩϡϝϯτϑΥʔϚοτपลπʔϧͷ֓ཁ w εΩʔϚۦಈ։ൃ wΧʔτ৽ϓϩδΣΫτ w 0QFO"1*Λ׆༻ͨ͠ίʔυࣗಈੜ
w 0QFO"1*υΩϡϝϯτΛॻ͚ͩ͘Ͱ࠷ݶͷςετ͕ࣗಈతʹΔੈք ίʔυࣗಈੜͷ׆༻ঢ়گΛཧ ͨ͠͏͑Ͱɺ0QFO"1*Λ׆༻ͯ͠ ͬͱੜ࢈ੑΛߴΊΔͨΊʹɺ ۙͰΓ͍ͨ͜ͱΛ͓͠·͢ʂ
ͳͥਓྨ ίʔυΛࣗಈੜ͢ΔͷͩΖ͏͔
࢈ۀֵ໋ʹΈΔਐԽͷྺ࢙ ୈҰ࣍࢈ۀֵ໋ ୈೋ࣍࢈ۀֵ໋ ୈࡾ࣍࢈ۀֵ໋ ୈ࢛࣍࢈ۀֵ໋
࢈ۀֵ໋ʹΈΔਐԽͷྺ࢙ ୈҰ࣍࢈ۀֵ໋ ୈೋ࣍࢈ۀֵ໋ ୈࡾ࣍࢈ۀֵ໋ ୈ࢛࣍࢈ۀֵ໋ ػցιϑτΣΞͰஔ͖͑ͯ ޮԽ͍ͯ͘͠ਐԽͷྺ࢙
ίʔυΛॻ͘ͱ͍͏ӦΈʹ͓͚ΔਐԽ wίʔυͷࣗಈੜʹΑͬͯ։ൃΛࢧԉ͢Δπʔϧͨͪ wఆܕతͳίʔυπʔϧʹͤΔ͜ͱͰ։ൃऀੜ࢈ੑΛߴΊɺۀϩδοΫ ʹूதͰ͖Δ ϘΠϥʔϓϨʔτίʔυͷੜ पลπʔϧʹΑΔίʔυੜͷαϙʔτ ίʔυੜΛแͨ͠ύϥμΠϜ IUUQTQSPKFDUMPNCPLPSH IUUQTXXXKFUCSBJOTDPNJEFB IUUQTPQFOBQJHFOFSBUPSUFDI
IUUQTXXXKIJQTUFSUFDI IUUQTHSBQIRMDPEFHFOFSBUPSDPN IUUQTHSQDJP
ͭ·ΓɺਐԽͷͨΊ
None
࣍ wͳͥίʔυΛࣗಈੜ͢Δͷ͔ʁ w0QFO"1* w υΩϡϝϯτϑΥʔϚοτपลπʔϧͷ֓ཁ w εΩʔϚۦಈ։ൃ wΧʔτ৽ϓϩδΣΫτ w 0QFO"1*Λ׆༻ͨ͠ίʔυࣗಈੜ
w 0QFO"1*υΩϡϝϯτΛॻ͚ͩ͘Ͱ࠷ݶͷςετ͕ࣗಈతʹΔੈք ίʔυࣗಈੜͷ׆༻ঢ়گΛཧ ͨ͠͏͑Ͱɺ0QFO"1*Λ׆༻ͯ͠ ͬͱੜ࢈ੑΛߴΊΔͨΊʹɺ ۙͰΓ͍ͨ͜ͱΛ͓͠·͢ʂ
OpenAPI
0QFO"1*֓ཁ IUUQTHJUIVCDPN0"*0QFO"1*4QFDJpDBUJPO The OpenAPI Specification w0QFO"1* 0QFO"1*TQFDJpDBUJPO wچ4XBHHFSTQFDJpDBUJPO w3&45"1*ͷ༷Λهड़͢ΔϑΥʔϚοτ
w0QFO"1**OJUJBUJWF w0QFO"1*ͷϑΥʔϚοτΛਪਐ͢Δஂମ w.JDSPTPGUɺ(PPHMFɺ*#.ɺ4NBSU#FBSͳͲ͕ ࢀՃ
w݄0QFO"1**OJUJBUJWF݁ w݄4XBHHFSTQFDJpDBUJPO͕0QFO"1**OJUJBUJWFʹدଃ͞ΕΔ w4XBHHFSTQFDJpDBUJPO͕0QFO"1*TQFDJpDBUJPOʹϦωʔϜ͞ ΕΔ w݄0QFO"1*TQFDJpDBUJPOϦϦʔε w݄ݱࡏͷόʔδϣϯ0QFO"1*TQFDJpDBUJPO 0QFO"1*ྺ࢙ 4XBHHFSϓϩδΣΫτ 0QFO"1**OJUJBUJWF 0QFO"1*TQFD
4XBHHFSTQFD 4XBHHFSUPPMT
0QFO"1*ϑΥʔϚοτ IUUQTCMPHSFBENFJPBOFYBNQMFpMMFEHVJEFUPTXBHHFS
0QFO"1*ϑΥʔϚοτ ϝλใ IUUQTCMPHSFBENFJPBOFYBNQMFpMMFEHVJEFUPTXBHHFS
0QFO"1*ϑΥʔϚοτ ΤϯυϙΠϯτ IUUQTCMPHSFBENFJPBOFYBNQMFpMMFEHVJEFUPTXBHHFS
0QFO"1*ϑΥʔϚοτ ίϯϙʔωϯτ IUUQTCMPHSFBENFJPBOFYBNQMFpMMFEHVJEFUPTXBHHFS
पลπʔϧ
0QFO"1*पลπʔϧ w 4XBHHFS&EJUPS w 0QFO"1*υΩϡϝϯτ εΩʔϚ ͷهड़Λࢧԉ w IUUQTFEJUPSTXBHHFSJP w
4XBHHFS6* w "1*༷Λࢹ֮ԽɺΠϯλϥΫςΟϒͳ"1*ૢ࡞ w IUUQTQFUTUPSFTXBHHFSJP w 0QFO"1*(FOFSBUPS w 0QFO"1*υΩϡϝϯτ͔ΒιʔείʔυΛࣗಈੜ w IUUQTPQFOBQJHFOFSBUPSUFDI IUUQTPQFOBQJUPPMT
εΩʔϚۦಈ։ൃ
εΩʔϚۦಈ։ൃ IUUQTHJIZPKQNBHB[JOFXEQSFTTBSDIJWFWPM ͡ΊʹΈΜͳͰ8FC"1*ͷ༷Λ૬ஊܾͯ͠Ίͯ 0QFO"1*υΩϡϝϯτΛهड़ͯ͠ पลπʔϧΛ׆༻ͯ͠։ൃΛޮԽ͢Δ ։ൃνʔϜશମͷϫʔΫϑϩʔ εΩʔϚͰ։ൃΛۦಈ͢Δ͜ͱ
εΩʔϚۦಈ։ൃͱपลπʔϧ IUUQTCMPHPOLOJOKBTDIFNB@pSTU@EFWFMPQNFOU API هड़ݴޠҎޙͷੈք 0QFO"1*υΩϡϝϯτͷهड़ ༷ͷڞ༗ɾ֬ೝ ελϒੜػೳΛར༻ͨ͠εΩϟϑΥʔϧσΟϯά ੜͨ͠ελϒΛར༻ͨ͠ฏߦ։ൃ ੜͨ͠ΫϥΠΞϯτΛར༻ͨ͠ݮ ςετίʔυͷࣗಈੜ
Swagger Editor Swagger UI OpenAPI Generator
0QFO"1*υΩϡϝϯτͷهड़ ༷ͷڞ༗ɾ֬ೝ Swagger Editor Swagger UI ίʔυࣗಈੜͷԸܙେ͖͍ IUUQTCMPHPOLOJOKBTDIFNB@pSTU@EFWFMPQNFOU API هड़ݴޠҎޙͷੈք
ελϒੜػೳΛར༻ͨ͠εΩϟϑΥʔϧσΟϯά ςετίʔυͷࣗಈੜ OpenAPI Generator ੜͨ͠ελϒΛར༻ͨ͠ฏߦ։ൃ ੜͨ͠ΫϥΠΞϯτΛར༻ͨ͠ݮ
࣍ wͳͥίʔυΛࣗಈੜ͢Δͷ͔ʁ w0QFO"1* w υΩϡϝϯτϑΥʔϚοτपลπʔϧͷ֓ཁ w εΩʔϚۦಈ։ൃ wΧʔτ৽ϓϩδΣΫτ w 0QFO"1*Λ׆༻ͨ͠ίʔυࣗಈੜ
w 0QFO"1*υΩϡϝϯτΛॻ͚ͩ͘Ͱ࠷ݶͷςετ͕ࣗಈతʹΔੈք ίʔυࣗಈੜͷ׆༻ঢ়گΛཧ ͨ͠͏͑Ͱɺ0QFO"1*Λ׆༻ͯ͠ ͬͱੜ࢈ੑΛߴΊΔͨΊʹɺ ۙͰΓ͍ͨ͜ͱΛ͓͠·͢ʂ
Χʔτ৽ϓϩδΣΫτ
Χʔτ৽ϓϩδΣΫτ w-0)"$0ͷچ0SEFSγεςϜΛ৽"1*ج൫γεςϜʹҠߦ͢Δ wϓϩδΣΫτ໊UJBNBU ςΟΞϚτ wϨΨγʔΛ٫͠ɺ։ൃޮαʔϏεͷ࣭Λ্͢Δ wΧʔτɾϨδը໘ΛരԽ͢Δ շదͳ͓ങ͍ମݧͷఏڙ
Χʔτ৽ϓϩδΣΫτͷͬ͘͟Γͨ͠ਤ #'' ૹ Ϣʔβʔ จ "1*ج൫ ,PUMJO 4QSJOH#PPU 4QSJOH8FC'MVY
,PUMJO+BWB 4QSJOH#PPU "QBDIF$BNFM 5ZQF4DSJQU +2VFSZ 0QFO"1* 1SPUPDPM#V⒎FST "1*༷ɾεΩʔϚఆٛ
"1*༷ɾεΩʔϚఆٛ ૹ Ϣʔβʔ จ ,PUMJO 4QSJOH#PPU 4QSJOH8FC'MVY ,PUMJO+BWB 4QSJOH#PPU
"QBDIF$BNFM 5ZQF4DSJQU +2VFSZ 0QFO"1*Λͱʹͨ͠ίʔυੜͷ׆༻ঢ়گ "1*ج൫ 0QFO"1* 1SPUPDPM#V⒎FST #'' #''ͰͷϞσϧΫϥεੜͷΈ
0QFO"1*υΩϡϝϯτͷهड़ ༷ͷڞ༗ɾ֬ೝ Swagger Editor Swagger UI ίʔυࣗಈੜ׆༻ͷ༨͋Δ IUUQTCMPHPOLOJOKBTDIFNB@pSTU@EFWFMPQNFOU API هड़ݴޠҎޙͷੈք
ελϒੜػೳΛར༻ͨ͠εΩϟϑΥʔϧσΟϯά ςετίʔυͷࣗಈੜ OpenAPI Generator ੜͨ͠ελϒΛར༻ͨ͠ฏߦ։ൃ ੜͨ͠ΫϥΠΞϯτΛར༻ͨ͠ݮ
"1*༷ɾεΩʔϚఆٛ ૹ Ϣʔβʔ จ ,PUMJO+BWB 4QSJOH#PPU "QBDIF$BNFM 5ZQF4DSJQU +2VFSZ
׆༻ͷ༨͋Δ"1*ΫϥΠΞϯτ "1*ج൫ ,PUMJO 4QSJOH#PPU 4QSJOH8FC'MVY 0QFO"1* 1SPUPDPM#V⒎FST #'' ίϧʔνϯͰ͍͍͢Α͏ʹ 8FC$MJFOUΛಠࣗʹϥοϓͨ͠Ϋϥε Λ͍ͬͯΔͷͰɺ ࣗಈੜͷ׆༻͍͔͠ "1*ΫϥΠΞϯτͷࣗಈੜ
"1*༷ɾεΩʔϚఆٛ ,PUMJO 4QSJOH#PPU 4QSJOH8FC'MVY 5ZQF4DSJQU +2VFSZ ׆༻ͷ༨͋Δ"1*αʔόʔ #'' ,PUMJO+BWB 4QSJOH#PPU
"QBDIF$BNFM ૹ Ϣʔβʔ จ "1*ج൫ 0QFO"1* 1SPUPDPM#V⒎FST ελϒੜΛར༻ͨ͠εΩϟϑΥʔϧσΟϯά ࠾༻͍ͯ͠Δٕज़͕ɺ 0QFO"1*(FOFSBUPS͕ੜ͢Δ ελϒͷίʔυͱҧ͏ͷͰ͑ͳ͍͔
׆༻ͷ༨͋Δͷͷ #'' ૹ Ϣʔβʔ จ "1*ج൫ ,PUMJO 4QSJOH#PPU 4QSJOH8FC'MVY
,PUMJO+BWB 4QSJOH#PPU "QBDIF$BNFM 5ZQF4DSJQU +2VFSZ 0QFO"1* 1SPUPDPM#V⒎FST "1*༷ɾεΩʔϚఆٛ ಋೖͷखؒʹݟ߹͏͚ͩͷޮՌ͕ಘΒΕΔ͔Ͳ͏͔ ඍົͳ͜ͱ͕ଟ͔ͬͨ తɺίʔυࣗಈੜͷ׆༻Ͱͳ͘։ൃͷੜ࢈ੑΛ্͛Δ͜ͱ ͦ͜Ͱ
APIͷE2Eςετ(ͷҰ෦)Λ ࣗಈੜ͍ͨ͠
εΩʔϚۦಈ։ൃ IUUQTHJIZPKQNBHB[JOFXEQSFTTBSDIJWFWPM ୈষ0QFO"1*ʹΑΔεΩʔϚۦಈ։ൃ ʮεΩʔϚΛ༻͍༷ͯͱ࣮ͷҰகΛࣗಈςετ͢Δʯ 3VCZPO3BJMTͰ࣮ͨ͠"1*αʔόͷϨεϙϯε ͕ɺ0QFO"1*υΩϡϝϯτͱဃ͍ͯ͠ͳ͍͔ࣗ ಈతʹνΣοΫ͢Δ࣮Λհ͍ͯ͠Δɻ 34QFD PBT@QBSTFS KTPO@TDIFNB
$PNNJUUFF
IUUQTHJIZPKQNBHB[JOFXEQSFTTBSDIJWFWPM εΩʔϚۦಈ։ൃ ୈষ0QFO"1*ʹΑΔεΩʔϚۦಈ։ൃ ʮεΩʔϚΛ༻͍༷ͯͱ࣮ͷҰகΛࣗಈςετ͢Δʯ 3VCZPO3BJMTͰ࣮ͨ͠"1*αʔόͷϨεϙϯε ͕ɺ0QFO"1*υΩϡϝϯτͱဃ͍ͯ͠ͳ͍͔ࣗ ಈతʹνΣοΫ͢Δ࣮Λհ͍ͯ͠Δɻ 34QFD PBT@QBSTFS KTPO@TDIFNB
$PNNJUUFF Χʔτ৽ϓϩδΣΫτ͕࠾༻͍ͯ͠Δٕज़Ͱ Ͳ͏࣮ݱ͢Δ͔
Spring Cloud Contract (SCC)
4QSJOH$MPVE$POUSBDU 4$$ w$POTVNFS%SJWFO$POUSBDUT $%$ EFWFMPQNFOU w IUUQXXXTFSWJDFEFTJHOQBUUFSOTDPN8FC4FSWJDF&WPMVUJPO$POTVNFS%SJWFO$POUSBDUT w"1*ར༻ऀ͕ظ͢ΔڍಈΛυΩϡϝϯτԽ͢Δ $POUSBDU
w"1*ར༻ऀఏڙऀͷํ͕$POUSBDUΛͱʹςετΛߦ͏͜ͱͰ࣭Λอ ͪͳ͕ΒχʔζΛຬͨ͢։ൃΛߦ͏ w4QSJOH$MPVE$POUSBDU$%$ͷ࣮ફΛαϙʔτ͢Δπʔϧ w$POUSBDUͷهड़(SPPWZͱ:".-͕͑Δ w$POUSBDU͔ΒελϒαʔόςετΛࣗಈੜͰ͖Δ IUUQTHJUIVCDPNTQSJOHDMPVETQSJOHDMPVEDPOUSBDU
4QSJOH$MPVE$POUSBDU 4$$ $POUSBDU (SPPWZ%4- ࣗಈੜ͞ΕΔςετίʔυ
4$$ͷ$POUSBDUͱ0QFO"1*υΩϡϝϯτͷҧ͍ w4$$ͷ$POUSBDU wϦΫΤετ˓˓˓Λૹ৴ͨ͠ΒɺϨεϙϯº͕ฦͬͯ͘Δ ˠʮετʔϦʔʯ w0QFO"1*υΩϡϝϯτ wड͚ΔϦΫΤετύϥϝʔλ໊9ɺܕ99 ฦ͢Ϩεϙϯεͷߏ:ɺܕ:: ˠʮ༷ʯ ߏܕΛఆٛ͢Δ͚ͩ
$POUSBDUΛ0QFO"1*υΩϡϝϯτʹຒΊࠐΉͱ͍͏ൃ w0QFO"1*υΩϡϝϯτͷ֦ுྖҬʹ$POUSBDU :".-%4- ΛຒΊࠐΉ͜ͱͰɺఆٛ༰ͷॏෳΛഉআ͠ɺ୯ҰͷυΩϡ ϝϯτͰ༷ͱετʔϦʔΛཧՄೳʹͳΔ w0QFO"1* $POUSBDUͷυΩϡϝϯτΛίϯόʔλʹ௨͢͜ͱ ͰɺετʔϦʔ෦Λݕূ͢ΔςετίʔυΛੜ͢Δ IUUQTHJUIVCDPNTQSJOHGSBNFXPSLHVSVTQSJOHDMPVEDPOUSBDUPB 4QSJOH$MPVE$POUSBDU0QFO"1*$POUSBDU$POWFSUFS
+PIO5IPNQTPO !TQSJOHGSBNFXPSLHVSV IUUQTTQSJOHGSBNFXPSLHVSVEFpOJOHTQSJOHDMPVEDPOUSBDUTJOPQFOBQJ
$POUSBDUΛ0QFO"1*υΩϡϝϯτʹຒΊࠐΉͱ͍͏ൃ ϦΫΤετ Ϩεϙϯε
Γ͍ͨࣄͱͪΐͬͱҧ͏ ͜Ε͜ΕͰૉఢ͚ͩͲ
0QFO"1*υΩϡϝϯτ͔ΒςετίʔυΛੜ͍ͨ͠ w"1*αʔό͕ฦ͢Ϩεϙϯεͷߏ͕0QFO"1*υΩϡϝϯτͷͦΕͱဃͯ͠ ͍ͳ͍͔ςετ͍ͨ͠ w $POUSBDUͳͲॻ͔ͣʹૉͷ 0QFO"1*υΩϡϝϯτΛॻ͚ͩ͘Ͱɺ࠷ݶ ͷςετ ˞ ͕ࣗಈతʹΔੈք w
˞ 0QFO"1*ʮ༷ʯͷهड़͚ͩͳͷͰɺςετͰ͖Δ͜ͱݶΒΕΔ w͕ɺϨεϙϯεͷߏςετͰ͖Δ
4QSJOH$MPVE$POUSBDU0QFO"1* w0QFO"1*υΩϡϝϯτͷఆٛΛ4$$ͷ$POUSBDUʹ ม͢Δ(SBEMF.BWFOϓϥάΠϯ wϨεϙϯεͷߏΛςετ͢Δ$POUSBDUʹมͯ͠ ςετίʔυΛੜ͢Δ IUUQTHJUIVCDPNBDLJOUPTITQSJOHDMPVEDPOUSBDUPQFOBQJ ແ͍ͳΒ࡞Ε͍͍
4QSJOH$MPVE$POUSBDU0QFO"1* ಈ࡞Πϝʔδ 0QFO"1*υΩϡϝϯτ 4QSJOH$MPVE$POUSBDU0QFO"1* 4$$Λར༻ͯ͠$POUSBDU͔Β ςετίʔυΛੜ 0QFO"1*υΩϡϝϯτʹఆٛ͞Ε͍ͯΔ ϨεϙϯεͷߏΛ$POUSBDUΦϒδΣΫτʹม
4QSJOH$MPVE$POUSBDU0QFO"1* w·ͩ࡞Γ࢝Ί͔ͨΓ wͱΓ͋͑ͣςετ͕ੜ͞ΕΔ ಈ࡞͢Δ͔ෆ໌ ͷϨϕϧ w࣮༻Ϩϕϧʹ্࣮͛ͯࡍʹ׆༻͍͖͍ͯͨ͠ wΞεΫϧͷ044ͱͯ͠ҭ͍͖͍ͯͯͨ
ίʔυࣗಈੜΛ׆༻ͯ͠ ໌དྷΔΤϯδχΞϦϯάΛʂ ΞεΫϧ