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
9.3k
6
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
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
More Decks by Ken’ichiro Oyama
See All by Ken’ichiro Oyama
Introducing RFC9111 / YAPC::Fukuoka 2025
k1low
2
5.5k
Design and implementation of "Markdown to Google Slides" / phpconfuk 2025
k1low
1
970
analysis パッケージの仕組みの上でMulti linter with configを実現する / Go Conference 2025
k1low
1
790
Flight recorder at the application layer (NOT the FlightRecoder newly added at Go 1.25) / Fukuoka.go #22
k1low
0
180
ソフトウェア開発におけるインターフェイスという考え方 / PHPerKaigi 2025
k1low
12
6.3k
Parsing HCL/CUE / Fukuoka.go #21
k1low
0
11k
実践 net/http Middleware パターン / Kizuku.go Vol.1
k1low
2
460
Cleanup handling in Go / Go Conference 2024
k1low
7
4.2k
CI/CDがあたりまえの今の時代にAPIテスティングツールに求められていること / CI/CD Test Night #7
k1low
18
12k
Other Decks in Technology
See All in Technology
攻撃者がいなくてもAIエージェントはインシデントを起こす
nomizone
0
200
生成AIの活用/high_school2026
okana2ki
0
110
AWS Blocks を触ってみた/first-tach-aws-blocks
fossamagna
2
150
AIDLC_ヤフーショッピングの取り組み
lycorptech_jp
PRO
0
560
“全部コピーしない”ファイルデータの活用 : — FSx for ONTAP × S3 Tables × Icebergで作るメタデータカタログ
yoshiki0705
0
550
AIと共生する開発者プラットフォーム:バクラクのモノレポ×マイクロサービス基盤
sakajunquality
1
2.5k
Claude Codeとハーネスについて考えてみる
oikon48
18
8.8k
cccccc
moznion
0
1.8k
テスト設計の本質を改めて考えてみる~生成AIを活用する時代だからこそ、作ったテストの説明性を高めよう~
yamasaki696
1
390
20260702_生成AIはどこまで成長するのか_チャットだけじゃない世界
doradora09
PRO
0
110
Empower GenAI with Agile - あなたのアジャイルが生成AIのバフになる仕組み
hageyahhoo
1
140
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
12
1.8k
Featured
See All Featured
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
180
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
What does AI have to do with Human Rights?
axbom
PRO
1
2.2k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.6k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Building Applications with DynamoDB
mza
96
7.1k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.5k
The Cult of Friendly URLs
andyhume
79
6.9k
Fireside Chat
paigeccino
42
4k
Context Engineering - Making Every Token Count
addyosmani
9
1k
WENDY [Excerpt]
tessaabrams
11
38k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.1k
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