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
Documentation as Codeで継続的なドキュメント運用を実現する / July ...
Search
Ken’ichiro Oyama
January 24, 2021
Technology
6
8.4k
Documentation as Codeで継続的なドキュメント運用を実現する / July Tech Festa 2021 winter
July Tech Festa 2021 winter [D-5]
https://techfesta.connpass.com/event/193966/
Ken’ichiro Oyama
January 24, 2021
Tweet
Share
More Decks by Ken’ichiro Oyama
See All by Ken’ichiro Oyama
実践 net/http Middleware パターン / Kizuku.go Vol.1
k1low
1
180
Cleanup handling in Go / Go Conference 2024
k1low
6
3.1k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
17
8.5k
Command-line interface tool design / PHPerKaigi 2024
k1low
8
2.8k
gostyle IS NOT Go Style / Fukuoka.go#19 Reboot
k1low
1
220
Parsing case study in Go / Go Conference mini 2023 Winter IN KYOTO
k1low
2
1.3k
APIシナリオテストツールとしてのrunn / 4 API testing tools
k1low
3
1.4k
The future of tbls and "Documentation as Code" / phpconfuk 2023
k1low
4
5.8k
net/http/httptest.Server のアプローチをテスト戦略に活用する / Go Conference 2023
k1low
9
2.9k
Other Decks in Technology
See All in Technology
Making your applications cross-environment - OSCG 2024 NA
salaboy
0
180
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
Amplify Gen2 Deep Dive / バックエンドの型をいかにしてフロントエンドへ伝えるか #TSKaigi #TSKaigiKansai #AWSAmplifyJP
tacck
PRO
0
370
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
490
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
190
透過型SMTPプロキシによる送信メールの可観測性向上: Update Edition / Improved observability of outgoing emails with transparent smtp proxy: Update edition
linyows
2
210
IBC 2024 動画技術関連レポート / IBC 2024 Report
cyberagentdevelopers
PRO
0
110
Platform Engineering for Software Developers and Architects
syntasso
1
510
ドメイン名の終活について - JPAAWG 7th -
mikit
33
20k
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.1k
信頼性に挑む中で拡張できる・得られる1人のスキルセットとは?
ken5scal
2
520
Lambdaと地方とコミュニティ
miu_crescent
2
370
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Agile that works and the tools we love
rasmusluckow
327
21k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
The Cost Of JavaScript in 2023
addyosmani
45
6.7k
The Straight Up "How To Draw Better" Workshop
denniskardys
232
140k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
The Invisible Side of Design
smashingmag
298
50k
Gamification - CAS2011
davidbonilla
80
5k
Designing the Hi-DPI Web
ddemaree
280
34k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
26
1.4k
Transcript
খࢁ݈Ұ(.01FQBCP *OD +VMZ5FDI'FTUBXJOUFS %PDVNFOUBUJPOBT$PEFͰ ܧଓతͳυΩϡϝϯτӡ༻Λ ࣮ݱ͢Δ
ϓϦϯγύϧΤϯδχΞ খࢁ݈Ұ!L-P8 (.0ϖύϘϗεςΟϯάࣄۀ෦ϗεςΟϯάάϧʔϓ43&νʔϜ IUUQTHJUIVCDPNL-P8
None
ຊൃදʹ͓͚Δ lυΩϡϝϯτzͱ
։ൃ։࢝·ͰͷΦʔόʔϔου w ։ൃऀ͕৽ͨʹγεςϜ։ൃʹࢀՃͨ͠ͱͯ͠ɺͦͷ։ൃऀ͕γεςϜΛཧղͨ͠ ͍ͱ͖ w ͘͠։ൃऀ͕ࣗͷ୲Ҏ֎ͷߏཁૉػೳΛཧղ͍ͨ͠ͱ͖ w ࣝθϩͷঢ়ଶ͔ΒγεςϜΛཧղ͠։ൃΛ։࢝͢Δ·Ͱͷ࣌ؒίετΛɺࢲ ʮ։ൃ։࢝·ͰͷΦʔόʔϔουʯͱݺΜͰ͍ΔʢʮΦϯϘʔσΟϯάͷίετʯ ͱ͍ͬͨํ͕Ұൠత͔ʣ
Կͳ͍ঢ়ଶ w ৽͍͠։ൃऀγεςϜΛݟͯཧղΛ͢Δඞཁ͕͋Δ w ։ൃ։࢝·ͰͷΦʔόʔϔου͕େ͖͍ঢ়ଶ
υΩϡϝϯτ w γεςϜͷཧղΛॿ͚ΔͨΊυΩϡϝϯτΛॻ͘ w ৽͍͠։ൃऀυΩϡϝϯτΛ௨ͯ͡γεςϜͷཧղΛਐΊΔ͜ͱ͕Ͱ͖Δ w ຊൃදͰʮγεςϜͷཧղΛॿ͚Δʹ։ൃ։࢝·ͰͷΦʔόʔϔουΛݮ͢ ΔʯͨΊͷυΩϡϝϯτΛରͱ͢Δ
γεςϜͱυΩϡϝϯτͷဃ
γεςϜͱυΩϡϝϯτͷဃ w γεςϜͱυΩϡϝϯτͱͷؒʹ༰ͷဃ͕ൃੜ͍ͯ͠Δ߹͕͋Δ w ߃ৗతʹ༰ʹ͕ࠩग़͍ͯΔঢ়ଶ w ߋ৽λΠϛϯά͕ͣΕΔ͜ͱͰγεςϜͱυΩϡϝϯτͷ༰ʹ͕ࠩग़͍ͯΔঢ় ଶ
γεςϜͱυΩϡϝϯτͷဃΛখ͘͢͞Δʹ γεςϜͱυΩϡϝϯτͷဃ͕͋Δ࣌ؒΛͰ͖Δ͚ͩখ͘͢͞ΔͨΊʹ wܧଓతʹ wͰ͖Δ͚ͩγεςϜͷߋ৽ʹ͍ۙλΠϛϯάͰ υΩϡϝϯτΛߋ৽͠ଓ͚Δ͜ͱ͕ඞཁ
%PDVNFOUBUJPOBT$PEF
%PDVNFOUBUJPOBT$PEF %PDTBT$PEF SFGFSTUPBQIJMPTPQIZUIBUZPV TIPVMECFXSJUJOHEPDVNFOUBUJPOXJUIUIFTBNFUPPMTBTDPEF *TTVF5SBDLFST 7FSTJPO$POUSPM (JU 1MBJO5FYU.BSLVQ .BSLEPXO
SF4USVDUVSFE5FYU "TDJJEPD $PEF3FWJFXT "VUPNBUFE5FTUT 5IJTNFBOTGPMMPXJOHUIFTBNFXPSLqPXTBTEFWFMPQNFOUUFBNT BOE CFJOHJOUFHSBUFEJOUIFQSPEVDUUFBN*UFOBCMFTBDVMUVSFXIFSFXSJUFST BOEEFWFMPQFSTCPUIGFFMPXOFSTIJQPGEPDVNFOUBUJPO BOEXPSL UPHFUIFSUPNBLFJUBTHPPEBTQPTTJCMF IUUQTXXXXSJUFUIFEPDTPSHHVJEFEPDTBTDPEFɹΑΓൈਮɹ
%PDVNFOUBUJPOBT$PEF w γεςϜͷ։ൃͷΈͷۙ͘ʹυΩϡϝϯτ࡞ͷΈΛஔ͘͜ͱͰγεςϜ ͱυΩϡϝϯτͷဃΛͳͦ͘͏ͱ͍ͯ͠Δ͜ͱ͕Θ͔Δ w ຊൃදͰɺ·ͣɺ͜ͷʮ%PDVNFOUBUJPOBT$PEFʯ͔Β͏গ͠ʮγεςϜͱ υΩϡϝϯτͷဃΛͳ͘͢ʯ͜ͱʹ౿ΈࠐΜͩΞϓϩʔνʹ͍ͭͯߟ͍͖͑ͯ· ͢ɻ
ϞσϧԽ ొ͢Δཁૉͱͯͭ͠ ։ൃऀ γεςϜʜ։ൃऀ͕։ൃઃఆΛ͢ΔରɻΞϓϦɺσʔλϕʔεɺΠϯϑϥͳ ͲɻγεςϜࣗମߏԽ͞Ε͍ͯΔʢͷΛରͱ͢Δʣ υΩϡϝϯτ
ߏԽσʔλʜʮ:".-ʯʮϓϩάϥϜίʔυͷ"45ʯͳͲɻ ٯʹɺʮγεςϜʹର͢Δ։ൃऀͷཧղɾΠϝʔδʯෆఆܗͰ։ൃऀͦΕͧΕ ͕಄ͷதͰ͍࣋ͬͯΔ͚ͩͳͷͰߏԽ͞Ε͍ͯΔͱݴ͑ͳ͍ ιϑτΣΞʜԿ͔͠ΒͷॲཧΛߦ͏ϓϩάϥϜɻߏԽσʔλΛೖग़ྗͱ͠ ͍͢
υΩϡϝϯτΛॻ͘ w ʮͨͩυΩϡϝϯτΛॻ͘ʯʮγεςϜʹର͢Δ։ൃऀͷཧղɾΠϝʔδΛʢγ εςϜͷߏͱؔͳ͘ʣॻ͘ʯͱ͍͏͜ͱ w ಉ͡ߏʢؔ͘͠ੑͷ͋ΔߏʣͰͳ͍߹ɺγεςϜ͕ߋ৽͞Εͨͱ͖ ʹɺൃੜͨ͠υΩϡϝϯτͱͷဃʢυΩϡϝϯτͷͲ͜Λߋ৽͢Εྑ͍͔ʣ͕ Θ͔Γʹ͍͘
ʮγεςϜͱυΩϡϝϯτͷဃΛͳ͘͢ ΈΛ࣋ͭ%PDVNFOUBUJPOBT$PEFʯ
γεςϜ͔ΒߏԽσʔλΛநग़͢Δ
γεςϜ͔ΒߏԽσʔλΛநग़͢Δ w +BWBEPDɺHPEPDɺ1)1%PDFUD w γεςϜ͔ΒυΩϡϝϯτΛੜ͢Δ͜ ͱͰɺγεςϜͱυΩϡϝϯτͷဃΛ ͳͦ͘͏ͱ͍ͯ͠Δ w ʮߏԽσʔλʹܾΊΒΕͨϑΥʔϚο τͰʢυοΫίϝϯτΛʣΞϊςʔγϣ
ϯ͍ͯ͠Δʯ͚ͩͳͷͰߏԽσʔλͷ ·· ˞ ʮΞϊςʔγϣϯʯʮγεςϜʹର͢Δ։ൃऀͷཧղɾΠϝʔδΛ ߏԽσʔλʹϝλใͱͯ͠Ճ͢Δʯͱ͍͏ҙຯ
ߏԽσʔλ͔ΒγεςϜͱυΩϡϝϯτͷ ྆ํΛੜ͢Δ
ߏԽσʔλ͔ΒγεςϜͱυΩϡϝϯτͷ྆ํΛੜ͢Δ w 0QFO"1* w ੜݩσʔλΛͭʹ͢Δ͜ͱͰγες ϜͱυΩϡϝϯτͷဃΛͳͦ͘͏ͱ͠ ͍ͯΔ
ͭͷΞϓϩʔνͷڞ௨ w ͭͷྫͷڞ௨ͱͯ͠ɺγεςϜͱυΩϡϝϯτͷؒʹߏԽσʔλΛհͨؔ͠ ࿈Λ͍࣋ͬͯΔ͜ͱ͕Θ͔Δɻ w ؔ࿈Λ࣋ͨͤΔ͜ͱ͕ɺײ֮తʹဃΛগͳ͘͢Δ༗ޮͳखஈͱͳΓͦ͏
*OGSBTUSVDUVSFBT$PEF w ྫ͑ɺ5FSSBGPSNΛಉ༷ͷϞσϧͰද͢ɻͱɺࣗͣͱυΩϡϝϯςʔγϣϯͷ ΈΛೖΕΔ͖Օॴ͕Θ͔Δ
*OGSBTUSVDUVSFBT$PEF %PDVNFOUBUJPO w ͦͯ͠طʹ͜ͷϞσϧΛ࣮ݱͨ͠υΩϡϝϯςʔγϣϯπʔϧ͋Δ w IUUQTHJUIVCDPNUFSSBGPSNEPDTUFSSBGPSNEPDT
(.0ϖύϘʹ͓͚Δ ʮγεςϜͱυΩϡϝϯτͷဃΛͳ͘͢ ΈΛ࣋ͭ%PDVNFOUBUJPOBT$PEFʯ ͷऔΓΈ
σʔλϕʔεεΩʔϚͷ υΩϡϝϯςʔγϣϯ
UCMT w $*ϑϨϯυϦͳσʔλϕʔευΩϡϝϯτੜπʔϧ w IUUQTHJUIVCDPNL-P8UCMT w 1PTUHSF42- .Z42-ͳͲͷ3%#.4͚ͩͰͳ͘ɺ #JH2VFSZ"NB[PO%ZOBNP%# $MPVE4QBOOFS
ͱ͍ͬͨσʔλιʔεʹରԠ w υΩϡϝϯτΛॆ࣮ͤ͞Δػೳͱͯ͠ϝλσʔλΛ Ξϊςʔγϣϯ͢Δ͜ͱ͕Մೳ w ςʔϒϧɺΧϥϜͳͲͷίϝϯτ༩͚ͩͰͳ͘ λάɺϦϨʔγϣϯͳͲ
UCMT w ैདྷσʔλϕʔεͱυΩϡϝϯτผ Ͱཧ w $*্Ͱςετ༻σʔλϕʔε͔Β ςʔϒϧఆٛΛߏԽσʔλͱͯ͠ந ग़ɻͦΕʹՃͰςʔϒϧίϝϯτΧ ϥϜίϝϯτΛΞϊςʔγϣϯ͠ɺυ ΩϡϝϯτΛੜ
UCMTͷߏԽσʔλͷ׆༻ w UCMTͷߏԽσʔλͷใΛσʔλϕʔεʢ#JH2VFSZʣͷϝλσʔλʹөͤ͞Δ w ৄ͘͠ผࢿྉʹͯ IUUQTTQFBLFSEFDLDPNLMPXQFQBCPIBUFOB
ʢΠϯϑϥʣΞʔΩςΫνϟͷ υΩϡϝϯςʔγϣϯ
ʮ։ൃ։࢝·ͰͷΦʔόʔϔουͷݮ͢Δʯͱ͍͏త w Πϯϑϥͷ։ൃ։࢝·ͰͷΦʔόʔϔουΛݮ͢Δʹ։ൃऀ͕Կ͔͠ΒΠϯϑϥ ͷमਖ਼τϥϒϧγϡʔτΛ։࢝͢ΔͨΊʹඞཁͳཧղΛॿ͚Δඞཁ͕͋Δɻ w ʮ͋ΔϩʔϧͷϛυϧΣΞͷΞοϓσʔτΛ͢Δʯͱ͖ʹɺޮΑ҆͘શʹΞο ϓσʔτΛ։࢝͢ΔͨΊʹ࠷ݶԿͷཧղΛ͢Δ͔ w ରͷϩʔϧͷ֓ཁ w
ͦͷϩʔϧͱؔੑΛ࣋ͭϩʔϧͷ֓ཁ w ͦͷϩʔϧΛ࣮ͬͯݱ͍ͯ͠Δػೳͷ֓ཁ w ܾͯ͠ΠϯϑϥશମͷཧղΛ͢ΔΘ͚Ͱͳ͍ɻ͔͠͠ɺγεςϜʹରͯ͠ҟͳΔ ΓޱͰͷෳͷཧղʢʹυΩϡϝϯτʣ͕ඞཁ
υΩϡϝϯτʹىͦ͜͏ͱ͍ͯ͠ΔͷϓϩδΣΫτ։ൃγεςϜͷશମ ૾ɺ۩ମతʹܗ͕͋ΔͷͰͳ͘ɺͦΕͧΕͷ಄ͷதʹෆఆܗͳΠϝʔδͱ ͯ͠ଊ͑ΒΕ͍ͯΔͱࢥ͍·͢ɻ ෆఆܗͳΠϝʔδͷೝࣝΛ߹ΘͤΔͨΊʹࢲ͕ߟ͍͑ͯΔ͜ͱɺͦΕྠΓʹ ͢Δ͜ͱͰ͢ɻ ྠΓʹ͢Δͱ͖ʹͬͨ໘͕அ໘͕Ͱ͖ΔΘ͚Ͱ͕͢ɺ͜ͷஅ໘ΛੵΈॏͶͯ ͍͘ͱཱମͱͳΓɺશମ૾͕ݱΕ·͢ɻ ෆఆܗͳΠϝʔδΛڞ༗͢Δ͜ͱ͍͠ͱࢥ͍·͕͢ɺࣗͳΓʹஅ໘Λෳ ࡞ΓɺͦΕΛੵΈॏͶ͍͚ͯࣗͳΓͷཱମΛཧղͯ͠Β͏͜ͱ͕Ͱ͖Δ ͣͩͱߟ͑·͢ɻ
ʮϚωδϝϯτۀΛ௨ͯ͡ߟ͑ͨɺϓϩδΣΫτશମ૾ͷೝࣝᴥᴪΛ͙ޡղ͞Εͳ͍υΩϡϝϯτ࡞ज़"/%1"%5FDI#MPHʯ IUUQTUFDIBOEQBEDPKQFOUSZΑΓൈਮɹ
OEJBH
OEJBH --- name: 3-Tier Architecture docPath: ../output diagrams: - name:
overview layers: ["consul", "vip_group"] - name: http-lb layers: ["vip_group"] labels: ["http"] nodes: - name: lb-* components: - nginx?icon=lb-l7 clusters: - 'consul:dc1' - 'vip_group:lb' - name: app-* components: - nginx?icon=proxy - Rails?icon=cube4 clusters: - 'consul:dc1' - name: db-* components: - PostgreSQL?icon=db clusters: - 'consul:dc1' networks: - labels: - http route:
OEJBH w IUUQTHJUIVCDPNL-P8OEJBH w ʮΤψσΟΞάʯʮΤψμΠΞάʯͲͪΒͰ ndiag doc -c ndiag.yml w
ੜ͞ΕΔυΩϡϝϯτ(JU)VCʹίϛοτͯ͠8FC্͔ΒӾཡ͞ΕΔ͜ͱఆ w ओʹΠϯϑϥͷϋΠϨϕϧΞʔΩςΫνϟͷυΩϡϝϯτΛੜ͢ΔతͰ։ൃ w :".-͔ΒʮߏਤΛੜ͢ΔʯͰʮυΩϡϝϯτΛੜ͢ΔʯͰͳ͘ ʮෳͷΓޱͰʯʮߏਤΛؚΉʯʮυΩϡϝϯτͷܗΛ࡞Δʯ ͱ͍͏ಛΛ࣋ͭ
ʮෳͷΓޱͰʯ w ୯७ʹෳͷυΩϡϝϯτΛੜͯ͠͠·͏ͱɺγεςϜͷߏͱυΩϡϝϯτͷ ߏͷ͕ؔͳ͘ͳͬͯ͠·͍ɺγεςϜͱυΩϡϝϯτͷဃ͕ൃੜ͢Δ w ͦͷͨΊɺOEJBHͰҎԼͷΞϓϩʔνͰγεςϜͱυΩϡϝϯτͷߏԽσʔλ Λհͨؔ͠ੑ͕Εͳ͍Α͏ʹ͍ͯ͠Δ w ͭͷߏԽσʔλ͔ΒΓޱͷҟͳΔෳͷߏԽσʔλΛϧʔϧʹԊͬͯੜ ͠ɺͦΕΒ͔ΒͦΕͧΕਤͱυΩϡϝϯτΛੜ͢Δ
w ߏԽσʔλͱγεςϜͱΛൺֱݕূͰ͖ΔΈΛఏڙ͢Δ
OEJBHͷϞσϧ
ʮߏਤΛؚΉʯ w ΠϯϑϥͷΞʔΩςΫνϟΛཧղ͢ΔͨΊͷ υΩϡϝϯτΛੜ͢Δʹͨͬͯਤॏཁ ͳཁૉɻੜ͞ΕΔਤͷݟ͢͞ॏཁ w ͦͷͨΊOEJBHਤʹ༻Ͱ͖ΔΞΠίϯ ͍Ζ͍ΖબͰ͖Δ w
ΈࠐΈΞΠίϯϑϨʔϜϫʔΫ w ҙͷը૾ʢQOHTWHʣ w ,T"84($1)BTIJDPSQ͕ఏڙ͍ͯ͠ ΔΞΠίϯηοτΛऔಘ͢ΔίϚϯυ
ʮυΩϡϝϯτͷܗΛ࡞Δʯ w υΩϡϝϯτͷੜݩߏԽσʔλͰ͋Δ΄͏͕γεςϜͱͷဃΛখ͘͞͠ ͘͢Ͱ͖Δͱ͍͏ͷຊൃදͰड़ͨͱ͓Γɻ w OEJBHΠϯϑϥͷ֤ཁૉͷઆ໌จষՃʮΞϊςʔγϣϯʯͷܗͰ࣮ݱɻ w ͭ·ΓOEJBHߏԽσʔλ͔ΒυΩϡϝϯτΛੜ͢Δ w ͔͠͠ɺઆ໌จষςʔϒϧίϝϯτͱҟͳΓจʹͳΔ͜ͱ͕༧͞ΕͨͷͰ
ҎԼͷํࣜΛ࠾༻ ·ͣOEJBHଆͰઆ໌จষهड़ઐ༻ͷϑΝΠϧΛॴఆͷҐஔʹੜ ։ൃऀͦͷઐ༻ϑΝΠϧʹઆ໌จষΛهड़ OEJBHυΩϡϝϯτੜ࣌ʹઐ༻ϑΝΠϧͷ༰ΛऔΓࠐΉ
(.0ϖύϘʹ͓͚ΔOEJBHಋೖঢ়گ w ϖύϘ͕ӡ༻͍ͯ͠ΔෳͷαʔϏεͷ͏ͪͷҰ෦ͰΞʔΩςΫνϟυΩϡϝϯτ Λ࡞͢Δͷʹར༻ͯ͠Β͍ͬͯΔ w ͔ͦ͜Β༷ʑͳϑΟʔυόοΫΛΒͬͯػೳՃΛ͍ͯ͠Δ w ࣮OEJBHࣗମ·ͩ3&"%.&NEΛؚΉυΩϡϝϯτΛඋͰ͖͍ͯͳ͍ w ࣾͰ࣌ؒఔͷϋϯζΦϯΛ։࠵࣮͠ࡍʹಈ͔ͯ͠Βͬͯཧղͯ͠Βͬ
͍ͯΔ
·ͱΊ
·ͱΊ w ։ൃ։࢝·ͰͷΦʔόʔϔουΛݮ͢ΔυΩϡϝϯτΛܧଓతʹӡ༻͍ͯͨ͘͠ Ίʹɺʮ%PDVNFOUBUJPOBT$PEFʯΛجຊͱ͠ͳ͕ΒɺͲͷΑ͏ͳΈΛ࡞ͬ ͍ͯ͘ͱγεςϜͱυΩϡϝϯτͷဃΛখ͘͞Ͱ͖Δ͔ΛϞσϧΛͬͯઆ໌͠ ͨɻʮγεςϜͱυΩϡϝϯτΛߏԽσʔλΛհͯؔ͠࿈ͤ͞Δʯ͜ͱ͕ॏཁɻ w (.0ϖύϘͰͷऔΓΈͱͯ͠ྫΛհͨ͠ɻ w 5CMTΛ։ൃ͠ɺߏԽσʔλΛத৺ʹਾ͑ͯߟ͑Δ͜ͱͰσʔλϕʔευΩϡϝ
ϯτ͚ͩͰͳ͘σʔλج൫ͷϝλσʔλཧͷΈ·Ͱ࣮ݱͨ͠ɻ w γεςϜͷཧղͷͨΊʹෳͷΓޱͰͷυΩϡϝϯτ͕ඞཁͰ͋ΓɺͦΕΛ αϙʔτ͢ΔͨΊͷυΩϡϝϯςʔγϣϯπʔϧͱͯ͠OEJBHΛ։ൃ͍ͯ͠Δɻ
5IBOLZPV ࠷৽ͷ࠾༻ใΛνΣοΫˠ !QC@SFDSVJU