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
Electronからクロスプラットフォーム・アプリケーションの歴史を考える
Search
Kenji Akiyama
October 03, 2015
Programming
2
12k
Electronからクロスプラットフォーム・アプリケーションの歴史を考える
PHP Conference Japan 2015
https://joind.in/15323
Kenji Akiyama
October 03, 2015
Tweet
Share
More Decks by Kenji Akiyama
See All by Kenji Akiyama
Webアプリのデプロイ今昔物語
artifactsauce
11
5.4k
技術的負債を返済する(DevOps編)
artifactsauce
3
840
Other Decks in Programming
See All in Programming
Асинхронность неизбежна: как мы проектировали сервис уведомлений
lamodatech
0
700
Mermaid x AST x 生成AI = コードとドキュメントの完全同期への道
shibuyamizuho
0
160
生成AIでGitHubソースコード取得して仕様書を作成
shukob
0
280
fs2-io を試してたらバグを見つけて直した話
chencmd
0
220
プロダクトの品質に コミットする / Commit to Product Quality
pekepek
2
770
フロントエンドのディレクトリ構成どうしてる? Feature-Sliced Design 導入体験談
osakatechlab
8
4.1k
バグを見つけた?それAppleに直してもらおう!
uetyo
0
170
これが俺の”自分戦略” プロセスを楽しんでいこう! - Developers CAREER Boost 2024
niftycorp
PRO
0
190
「Chatwork」Android版アプリを 支える単体テストの現在
okuzawats
0
180
Criando Commits Incríveis no Git
marcelgsantos
2
170
競技プログラミングへのお誘い@阪大BOOSTセミナー
kotamanegi
0
350
testcontainers のススメ
sgash708
1
120
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Building Flexible Design Systems
yeseniaperezcruz
327
38k
Docker and Python
trallard
42
3.1k
Statistics for Hackers
jakevdp
796
220k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
5
440
Dealing with People You Can't Stand - Big Design 2015
cassininazir
365
25k
Facilitating Awesome Meetings
lara
50
6.1k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
Stop Working from a Prison Cell
hatefulcrawdad
267
20k
Automating Front-end Workflow
addyosmani
1366
200k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.6k
Typedesign – Prime Four
hannesfritz
40
2.4k
Transcript
&MFDUSPO͔ΒΫϩεϓϥοτϑΥʔϜɾ ΞϓϦέʔγϣϯͷྺ࢙Λߟ͑Δ 1)1$POGFSFODF+BQBOc IUUQTKPJOEJO
ळࢁݦ࣏ ,FOKJ"LJZBNB גࣜձࣾϋςϨϏδϣϯ ΤϯδχΞ !BSUJGBDUTBVDF !BSUJGBDUTBVDF ,FOKJ"LJZBNB ΞϥϑΥʔஉࢠʢࡀʣ
֎ࢿब׆υοτίϜ w ৽ଔ͚ٻਓϝσΟΞ w ϦϦʔε w ౦େʗܚԠେͷब׆ੜͷ ͕ձһొ͍ͯ͠Δ w 8PSE1SFTT$BLF1)1
εΩϧηοτ
None
ࠓϥΠτͰΤϞʔγϣφϧͰϑΝ χʔͳτʔΫʹ͍ͨ͠ͱࢥ͍·͢ɻ
None
None
None
None
༻͍ͯ͠ΔςΩετΤσΟλ 0UIFS "UPN &NBDT 7JN 4VCMJNF5FYU
/PUF1BE IUUQTUBDLPWFSqPXDPNSFTFBSDIEFWFMPQFSTVSWFZUFDIFEJUPS
"50.ͷಛ ‣ ΫϩεϓϥοτϑΥʔϜ ‣ 8FCϒϥβʢ$ISPNJVNʣϕʔε ‣ +BWBTDSJQU$P⒎FFTDSJQUͰػೳ֦ு ‣ .*5ϥΠηϯε ‣
(JU)VC͕ࣾ։ൃ͍ͯ͠Δ ‣ IUUQTHJUIVCDPNBUPNBUPN
&MFDUSPO ‣ ΫϩεϓϥοτϑΥʔϜͷσεΫτοϓɾ ΞϓϦέʔγϣϯɾϑϨʔϜϫʔΫ ‣ .BD049 ‣ 8JOEPXT ‣ -JOVY
‣ 'SFF#4% ‣ چশɿ"UPN4IFMM
$ISPNJVN /PEFKT IUUQTTQFBLFSEFDLDPN[DCFO[QSBDUJDFPOFNCFEEJOHOPEFEPUKTJOUPBUPNFEJUPS IUUQTTQFBLFSEFDLDPN[DCFO[QSBDUJDFPOFNCFEEJOHOPEFEPUKTJOUPBUPNFEJUPS
IUUQTHJUIVCDPNTJOESFTPSIVTBXFTPNFFMFDUSPO
8FCΤϯδχΞʹͱͬͯͷར ‣ 8FCٕज़ͰσεΫτοϓɾΞϓϦέʔ γϣϯΛ։ൃ͢Δ͜ͱ͕Ͱ͖Δ
Կ͔࡞ͬͯΈ͍ͨ
5IF1PNPEPSP5FDIOJRVF ‣ ੜ࢈ੑΛ্͛ͭͭ೩͑ਚ͖ͳ͍ಇ͖ํ ‣ IUUQQPNPEPSPUFDIOJRVFDPN ‣ ̎̑ͷूத࣌ؒͱ̑ͷٳܜ࣌ؒΛ܁Γ ฦ͢ *NBHFGSPNIUUQSFDSVJUNFOUDPBDIDPNCBOJTIEJTUSBDUJPOTXJUIUIFQPNPEPSPUFDIOJRVF
ΞϓϦ͍Ζ͍Ζ͋Δ͚Ͳʜ
ࣗͰ࡞ͬͯΈΔ͜ͱʹͨ͠
εΩϧηοτ
σβΠϯͱ͔ऑ͍͠ʜ
ߏཁૉ ‣ &MFDUSPO ‣ 1PMZNFS8FC$PNQPOFOUT ‣ .BUFSJBM%FTJHO ‣ OPEFOPUJpFS
ͱΓ͋͑ͣ͜͜·ͰͰ͖ͨ ‣ 4UBSUϘλϯΛԡ͢ͱ ̎̑ؒΛܭଌ͢Δ ‣ 4UPQϘλϯΛԡ͢ͱ ܭଌΛதࢭ͢Δ ‣ /FYUϘλϯΛԡ͢ͱ ࣍ͷαΠΫϧʹճΔ
‣ ̎̑ܦͭͱ௨ηϯ λʔʹ௨͢Δ
·ͩͰ͖͍ͯͳ͍ ‣ ٳܜ࣌ؒΛܭଌ͢Δ ‣ ࣌ؒٳܜΛܭଌ͢Δ ‣ αΠΫϧΛճ͢ ‣ ֤࣌ؒͷઃఆΛมߋ͢Δ ‣
ܦաϩάΛอଘ͢Δ ‣ 8JOEPXT൛ʗ-JOVY൛ ‣ ʜ
None
σϞ
͚ͬ͜͏؆୯ʹͰ͖ͨ 1IPUPCZ-FDIPO,JSC
͜Ε͔Βָ͕͠Έ ‣ ࣗʹඞཁͳػೳ͚ͩΛ࣮ ‣ ࣗͷ͖ͳ6*ʹมߋ 1IPUPGSPN4UBSUVQ4UPDL1IPUPT
ΜʁͯΑʜ ‣ ͳͥࠓ·ͰσεΫτοϓɾΞϓϦέʔγϣϯ ʢ%"ʣΛ࡞Ζ͏ͱࢥΘͳ͔ͬͨͷ͔ʁ 1IPUPGSPNQJYBCBZ
ࢲ͕%"ʹ͍࣋ͬͯΔΠϝʔδ ‣ ৽ͨͳݴޠΛֶश͢Δίετ͕ߴ͍ ‣ ։ൃڥΛ༻ҙ͢Δίετ͕ߴ͍ ‣ σϕϩούʔొΛ͠ͳ͍ͱΠϯετʔϧ Ͱ͖ͳ͍ ‣ ͋ΔϓϥοτϑΥʔϜ͚ʢ8JOEPXTͱ
͔ʣʹߏங͞Εͨͷଞͷϓϥοτ ϑΥʔϜͰಈ͔ͳ͍
࣮ࡍͲ͏͚ͩͬͨͬʁ ͋ΔϓϥοτϑΥʔϜ͚ʢ8JOEPXTͱ͔ʣʹߏங͞Εͨ ιϑτΣΞଞͷϓϥοτϑΥʔϜ্Ͱಈ࡞͠ͳ͍
ྺ࢙ΛৼΓฦͬͯΈ͍ͨ
ҙ ‣ ࠓճͷࢲͱ͍͏8FCͷࢹͰݟͨσεΫτο ϓɾΞϓϦέʔγϣϯΛࡐʹ͍ͯ͠·͢ɻ ‣ ϞόΠϧɾϓϥοτϑΥʔϜΈࠐΈܥʹ͍ͭͯ ରͱ͍ͯ͠·ͤΜɻ ‣ ϓϨθϯͷੑ্࣭ɺܦҢΛྻͰ͠·͕͢ɺ࣮ࡍ ͷྺ࢙ฒྻ͔ͭಉ࣌ଟൃతʹى͖͍ͯΔ͜ͱΛ೦
಄ʹஔ͍͍ͯͩ͘͞ɻ ‣ ͯ͢Λཏ͢ΔͭΓͳ͍ͷͰʮԶͷѪ͢Δ̋̋ ͕ݴٴ͞Ε͍ͯͳ͍ʯͱౖ͔Γग़͞ͳ͍Ͱ͍ͩ͘͞ɻ
ΫϩεϓϥοτϑΥʔϜͷఆٛ ‣ ҟͳΔϓϥοτϑΥʔϜʢྫ͑1$"5ޓػͱ.BDJOUPTIɺ ͋Δ͍8JOEPXTɾ.BD049ɾ'SFF#4%ɾ-JOVYͳͲͷΑ ͏ʹɺ༷͕શ͘ҟͳΔػցʢϋʔυΣΞʣ·ͨΦϖϨʔ ςΟϯάγεςϜʣ্Ͱɺಉ༷͡ͷͷΛಈ͔͢͜ͱ͕ग़དྷ ΔϓϩάϥϜʢιϑτΣΞʣͷ͜ͱΛݴ͏ɻ8JLJQFEJB 8JOEPXTͱ.BDͱ-JOVY͚ͷΞϓϦέʔ γϣϯΛಉ͡ιʔείʔυ͔Β࡞Δ
ݹ͔ΒͷྲྀΕΛҰؾʹ ‣ 04ొҎલʢʣ ‣ ػछ͕มΘΕιϑτΣΞશʹॻ͖ͩͬͨ͠ ‣ 04ͷཱ֬ʢʣ ‣ 04͕ϋʔυΣΞͷҧ͍Λٵऩͯ͘͠ΕΔ ‣
ϋʔυΣΞ͓Αͼ04ͷཚཱʢʣ ‣ 04 "*9 *3*9 4PMBSJT .4%04 .BD04 ʜ ‣ ϋʔυΣΞ͓Αͼ04ͷऩଋʢʣ ‣ $16*OUFMɺ048JOEPXT .BD049 -JOVY
πϥ͍ ‣ छྨ͕ݮ͖ͬͯͨͱݴ͑ɺ։ൃऀෳ ͷ04ʹ͋ΘͤͯιϑτΣΞΛॻ͘ඞཁ ͕͋Δɻ ‣ ෳͷ04͚ʹϦϦʔε͢ΔͨΊʹͦ ΕͳΓͷ͕ඞཁʹͳΔɻ
։ൃऀͷئ͍ ‣ ̍ճιϑτΣΞΛॻ͍ͨΒͯ͢ʢͤΊ ͯෳʣͷϓϥοτϑΥʔϜ্Ͱಈ࡞ͯ͠ ཉ͍͠ɻ
+BWBʢ4VO.JDSPTZTUFNTࣾʣ ‣ ϋʔυΣΞ04ʹґଘ͠ͳ͍όΠτίʔυΛ࡞ ͠ɺԾϚγϯ্Ͱ࣮ߦ͞ΕΔ ‣ (6*πʔϧΩοτ ‣ "85ϦϦʔε ‣ 04͕ఏڙ͢Δύʔπͷബ͍ϥούʔ
‣ 4XJOHϦϦʔε ‣ શϓϥοτϑΥʔϜʹڞ௨ͷϧοΫˍϑΟʔϧ ‣ ʁ485 &DMJQTF ϦϦʔε ‣ "85ʹࣅ͍ͯΔ͕֦ுੑ͕ߴ͘ߴ
2Uʢ5SPMMUFDIࣾʣ ‣ ΞϓϦέʔγϣϯɾϢʔβΠϯλϑΣʔεɾϑϨʔϜϫʔΫ ‣ ݴޠ ‣ $ ‣ #JOEJOHϥΠϒϥϦʹΑͬͯଞݴޠ͔Β͑Δ
‣ 7FSTJPOϦϦʔε ‣ 8JOEPXT 6OJY-JOVY9 ‣ 7FSTJPOϦϦʔε ‣ .BD049ʹରԠ ‣ ݱࡏͰ'SFF#4% 4ZNCJBO "OESPJE J04 8JOEPXT$& ΈࠐΈ-JOVYͳͲʹରԠ
ϓϩμΫτྫ ‣ 2U ‣ (PPHMF&BSUI ‣ 4LZQF PME ‣
+BWB ‣ &DMJQTF *OUFMMJ+*%&" /FUCFBOT ‣ όΠΦΠϯϑΥϚςΟΫε άϥϑπʔ ϧ
ଟͷબࢶ
ͦΕͰࢲ࡞Βͳ͔ͬͨʜ
໊͋Δ͕ʜ ‣ ༏लͳϓϩμΫτ͕ଟ͍͜ͱ͔֬ɻ ‣ ΞϚνϡΞ͕όϯόϯ։ൃ͍ͯ͠ΔΑ͏ͳ ײ͡ແ͍ɻ ‣ ͳΜ͔ɺϥΠτ͡Όͳ͍ɻ ‣ +BWBͬͯݴΘΕͯ
‣ $ ͬͯݴΘΕͯ
8FCٕज़ͷ࠾༻ͷྲྀΕ ‣ 3*" 3JDI*OUFSOFU"QQMJDBUJPO ‣ "*3 "EPCF ‣
'MBTI 'MFY 8FC,JU "DUJPO4DSJQU ‣ 4JMWFSMJHIU .JDSPTPGU ‣ 9".- 7JTVBM#BTJD/&5 $ FUDʜ ‣ 8FCϒϥβ্Ͱಈ࡞ͤ͞ΔͨΊΛٕज़ ͕σεΫτοϓʹద༻
ଟͷબࢶ
ͦΕͰࢲ࡞Βͳ͔ͬͨʜ
ͩͬͯྲྀߦͬͯͳ͍Μ ‣ ϥϯλΠϜͷΠϯετʔϧ͕ඞཁͩͬͨɻ ‣ ͦͷٕज़͕ࣄʹ׆͖Δͷ͔ٙͩͬͨɻ ‣ 'MBTIδϣϒζ͔ΒݏΘΕ͍ͯͨɻ ‣ 4JMWFSMJHIUͬͯ.JDSPTPGU͢Βશવͬ ͯͳ͍Αʜɻ
‣ ϥΠτʹ࡞ΕΔͷ͘͢͝ྑ͔ͬͨΜ͚ͩ Ͳͳ͊ɻ
ϒϥβΞϓϦ ‣ (PPHMF$ISPNFΞϓϦ ‣ ϦϦʔε ‣ 8FCΞϓϦέʔγϣϯ͕ΦϑϥΠϯͰ ར༻Ͱ͖Δʂ ‣ ϒϥβΛ։͔ͳͯ͘ར༻Ͱ͖Δʂ
‣ ༷ʑͳϒϥβͷػೳΛར༻Ͱ͖Δʂ ‣ $ISPNFϥϯνϟʔ͔ΒىಈͰ͖Δʂ
ଟͷબࢶ
ͦΕͰࢲ࡞Βͳ͔ͬͨʜ
จ͔۟ͬΓͳʜ ‣ ઐ༻ϥϯνϟʔ͕͍ͭͯ·ͬͯ͢ɺͦΕ ϝϦοτͰͳ͍ɻ ‣ ϒϥβͷػೳΛར༻Ͱ͖Δͷ͘͢͝ྑ ͍͚Ͳɺϒϥβͷ֎ͷػೳར༻Ͱ͖ͳ ͍ɻ ‣ (PPHMF$ISPNFΛΠϯετʔϧ͢Δඞཁ
͕͋ΔͬͯͲ͏Αʁ
ຊͷ8FCϒϥβͷγΣΞ 0UIFS $ISPNF"OESPJE 4BGBSJ 'JSFGPY (PPHMF$ISPNF
*OUFSOFU&YQMPSFS IUUQTXFCSBHFKQNPCJMFEBUBQD@CSPXTFS@TIBSFIUNM
ҰํͰྑ͍ ‣ ͢ͰʹΫϩεϓϥοτϑΥʔϜΛલఏʹߏ ங͞Ε͍ͯΔ8FCϒϥβʹͲ͔ͬΓ ͔ͬͬͨඇৗʹྑ͔ͬͨɻ ‣ ։ൃऀͷن͕େ͖͘ࢀೖোน͕͍ ྑ͔ͬͨɻ
ࢮࢡྦྷʑͱ·ͰݴΘͳ͍͕ʜ ‣ ΫϩεϓϥοτϑΥʔϜɾσε ΫτοϓɾΞϓϦέʔγϣϯͳΜͧ࡞Γͨ ͍ͱࢥ͍ͬͯͳ͍ͷ͔ʁ ‣ 8FCΞϓϦέʔγϣϯͷػೳͱΫϩεϓ ϥοτϑΥʔϜੑʹຬ͍ͯͯ͠ɺελϯ υΞϩϯͷΞϓϦΛ։ൃ͍ͨ͠ͱ͍͏ಈػ ͕ബ͍ɻ
ԶΛಈ͔͢ʹΓͳ͍ʜ
ࢲͷཁΛ·ͱΊΔ ‣ ͳΔ͘ଟ͘ͷڥͰಈ࡞ͯ͠΄͍͠ ‣ ϥΠτͳݴޠͰ։ൃ͍ͨ͠ ‣ ͍࣋ͬͯΔٕज़ͷྲྀ༻͔ɺޙʹࣄʹྲྀ༻ Ͱ͖ͦ͏ͳٕज़Λ࠾༻͍ͨ͠ ‣ ϥϯλΠϜͷΠϯετʔϧͱ͔ͨ͘͠ͳ͍
ʗͤͨ͘͞ͳ͍
None
&MFDUSPOͷಛ ‣ )5.- $44Ͱ6*ߏங ‣ +BWBTDSJQUͰಈ࡞Λهड़ ‣ ΫϩεϓϥοτϑΥʔϜͷ8FCϒϥβ ΛϥϯλΠϜͱͯ͠ಉࠝ
ͯ͢ͷཁʹ߹க͍ͯ͠Δʂ
&MFDUSPOొͷ݅ ‣ ΦʔϓϯιʔεͷΫϩεϓϥοτϑΥʔϜɾ 8FCϒϥβʢ$ISPNJVNʣͷొ ‣ +BWBTDSJQUͷαʔόɾαΠυʢ࣮࣭తʹ ϒϥβ֎ʣ࣮ͷొ ‣ ಛʹ/PEFKT͕$ISPNFʹಉࠝ͞Ε͍ͯ Δ7Λϕʔεʹ͍ͯͨ͜͠ͱͰੑ
͕ߴ͔ͬͨɻ
ॳͷཁҎ্ͷར ‣ /PEFKTͷػೳΛར༻Ͱ͖Δ ‣ ສҎ্ͷOQNύοέʔδΛར༻Ͱ͖Δ ‣ ࣮࣭8FC։ൃͳͷʹରڥΛ&MFDUSPO $ISPNJVN ͓Αͼ/PEFKTͷΈʹߜΔ͜ ͱ͕Ͱ͖Δ
‣ ϒϥβͷछྨʹ͍ͭͯόʔδϣϯʹ ͍ͭͯɺؾΛΉඞཁͳ͍
+BWBTDSJQU
͍͍͚ͩͲΈΜͳ ͍ͬͯΔ+BWBTDSJQU
.0451016-"35&$)/0-0(*&4 +BWBTDSJQ U 4 2 - +BWB $ 1
) 1 1 ZUIPO $ $ / PEFKT " OHVMBS+4 3 VCZ 0 CKFDUJWF$ IUUQTUBDLPWFSqPXDPNSFTFBSDIEFWFMPQFSTVSWFZUFDIMBOH
:PVBSFUIF1)1 FYQFSU BSFO`UZPV
1)1FYQFSUTBSFBMTP +BWBTDSJQUFYQFSUT BSFO`UUIFZ
&MFDUSPOͷܽ ‣ όΠφϦαΠζ͕ແବʹେ͖͍ ‣ ࠓճͷσϞΞϓϦͰ.# ‣ $ISPNJVNΛؚΉඞཁ͕͋Δ ‣ ಈ࡞͕͍ ‣
04͕ఏڙ͢Δ6*ػೳΛར༻Ͱ͖ͳ͍ ‣ ։ൃϦιʔε͕গͳ͍Β͍͠ ‣ ࣮࣭![DCFO[ࢯ͚ͩͳΜͩͱ͔ ‣ IUUQNJ[DIJIBUFOBCMPHDPNFOUSZ
ͱݴ͑ ‣ ϋʔυσΟεΫ༰ྔ௨৴ɺ.#ఔͷ αΠζͷͱ͠ͳ͍ɻ ‣ ॲཧΛඞཁͱ͠ͳ͍ΞϓϦέʔγϣϯʹͱͬ ͯॲཧͦͦͰͳ͍ɻ ‣ ݱঢ়ಈ࡞͕͍͔͠Εͳ͍͕ɺϚγϯͷॲཧ ͷ্ʹΑΓɺਓؒͷԠΛ͑Εɺ
ͦΕ΄ͲۤͰͳ͍ɻ ‣ 8FCͰΘΕ͍ͯΔ6*ίϯϙʔωϯτΛར༻͢Ε ΄ͱΜͲͷ༻్ࣄΓΔɻ
#PJMFSQMBUF5FNQMBUF
1PMZNFS8FC$PNQPOFOUT
$ISPNJVN͚ͩΛରͱ͢Εྑ͍ͷͰ ޓੑΛؾʹͤͣ࠷৽ͷػೳΛ͑Δ
͜Μͳ༻్ʹಛʹ͍͍ͯΔ ‣ Զʑπʔϧ ‣ ͋·Γʹχονա͗ͯ୭࡞Βͳ͍͕ɺ ͋Δͱ͔ͳΓศརͳπʔϧ ‣ ࣾπʔϧ ‣ ࣗͷ։ൃڥ.BD͚ͩͲࣄܥ
8JOEPXT͍ͬͯͯɺࣄܥͷਓͷͨ Ίʹͪΐͬͱͨ͠πʔϧΛ࡞Γ͍ͨɻ
۩ମతʹ͜Μͳͷ ‣ 5XJUUFSʹߘ͢Δ͚ͩͷΞϓϦ ‣ ࣄதʹ5XJUUFSͷը໘Λ։͍͍ͯΔ͜ ͱጨΒΕΔ͕ɺͰߘ͍ͨ͠ɻ ‣ ग़ۈʗୀۈΛೖྗ͢Δ͚ͩͷΞϓϦ ‣ ͨͩͷλΠϜΧʔυػʹΓԼ͕͍ͬͯ
ΔάϧʔϓΣΞΛ։͖ͨ͘ͳ͍ɻ
ͪΖΜେֻ͔Γͳͷॻ͚Δ
IUUQSLBNVSBIBUFOBCMPHDPNFOUSZ
&MFDUSPO͕༗ͳཧ༝ ‣ 8FC։ൃऀ͕͍͖ͳΓσεΫτοϓɾΞ ϓϦέʔγϣϯ։ൃऀʹͳΕΔɻ ‣ খنͳͷ͔Βେنͳͷ·ͰରԠՄ ೳͳջͷਂ͞ɻ ‣ ։ൃ͔Β·Ͱͷ؆ศ͞ɻ
Α͘Θ͔ͬͯͳ͍͚ͲҠ২ੑʹ͍ͭͯ ‣ $PSEPWBͳͲͷϞόΠϧɾΫϩεϓϥοτ ϑΥʔϜɾΞϓϦέʔγϣϯʹ؆୯ʹҠ২ ͢Δ͜ͱ͕Մೳ͔͠Εͳ͍ɻ ‣ 3FBDUKTΛͬͯΔͱͦͦҠ২ੑߴͦ ͏ͳؾ͕͢Δɻ
-FU`THFUTUBSUFE
ϒϩάΛॻ͘·Ͱ͕ :"1$1)1$POͰ͢
IUUQTKPJOEJO
ࢀߟ ‣ IUUQRJJUBDPNNJ[DIJJUFNT CGFCEGBBB ‣ IUUQTUFQTEPEHTPOPSHC BUPNGSPNUIFTIFMM TJEF