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
IoC-DI-DIContainer
Search
nozawa
September 21, 2023
Technology
0
15
IoC-DI-DIContainer
自分のIoCとDI、DIコンテナの理解力を確かめるべく、後輩に説明するシチュエーションを想定して
作ってみた資料です。
nozawa
September 21, 2023
Tweet
Share
More Decks by nozawa
See All by nozawa
introduction-to-devops-deploy
yuunozawa
0
18
introduction-to-devops-metrics
yuunozawa
0
22
introduction-to-devops
yuunozawa
0
45
ansible-demo
yuunozawa
2
26
event-loop
yuunozawa
2
10
ansible-learning
yuunozawa
2
16
cool-URI-dont-change
yuunozawa
2
19
AWS-cloud-practitioner
yuunozawa
2
11
Other Decks in Technology
See All in Technology
KubeCon + CloudNativeCon Japan 2025 Recap
ren510dev
1
320
AWS Organizations 新機能!マルチパーティ承認の紹介
yhana
1
230
論文紹介:LLMDet (CVPR2025 Highlight)
tattaka
0
250
Beyond Kaniko: Navigating Unprivileged Container Image Creation
f30
0
110
ビズリーチが挑む メトリクスを活用した技術的負債の解消 / dev-productivity-con2025
visional_engineering_and_design
1
1.7k
Liquid Glass革新とSwiftUI/UIKit進化
fumiyasac0921
0
300
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
26k
B2C&B2B&社内向けサービスを抱える開発組織におけるサービス価値を最大化するイニシアチブ管理
belongadmin
1
1.5k
PHPでWebブラウザのレンダリングエンジンを実装する
dip_tech
PRO
0
220
ビギナーであり続ける/beginning
ikuodanaka
3
500
MUITにおける開発プロセスモダナイズの取り組みと開発生産性可視化の取り組みについて / Modernize the Development Process and Visualize Development Productivity at MUIT
muit
1
3.6k
Core Audio tapを使ったリアルタイム音声処理のお話
yuta0306
0
160
Featured
See All Featured
Optimizing for Happiness
mojombo
379
70k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
34
5.9k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
53
2.8k
Balancing Empowerment & Direction
lara
1
400
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
281
13k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
124
52k
Testing 201, or: Great Expectations
jmmastey
42
7.6k
YesSQL, Process and Tooling at Scale
rocio
173
14k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
48
2.9k
Code Review Best Practice
trishagee
69
18k
Building Adaptive Systems
keathley
43
2.6k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.9k
Transcript
ᖒ *P$ͱ%*ɺ%*ίϯςφΛઆ໌͢Δ ษڧձ༻
*P$ͱԿ͔ ֓ཁ w *OWFSTJPOPG$POUSPM ੍ޚͷస ͷ͜ͱ w ʮґଘؔΛٯసͤ͞Δʯ͜ͱΛࢦ͢ *P$*OWFSTJPOPG$POUSPMͷུͰ͢ɻ ຊޠʹ༁ͯ͠ʮ੍ޚͷసʯͱͳΓɺཧղ͠ʹ͍͘··Ͱ͢ɻ
͜͜ͰʮґଘؔΛٯసͤ͞Δʯ͜ͱΛࢦ͢ͱཧղ͍͚ͨͩΕͱࢥ͍·͢ɻ ͰʮґଘʯͱԿͰ͠ΐ͏͔ɻʮґଘʯ͕͔ΕࣗͣͱͦΕΛʮٯసͤ͞Δʯͱ͍͏ҙຯ͕͔ͬͯ͘Δͱࢥ͍·͢ɻ ͜ͷൃදͰαϯϓϧίʔυΛݩʹ·ͣʮґଘʯʹ͍ͭͯཧղ͢Δ͜ͱΛࢦ͠·͢ɻ
*P$ͱԿ͔ -JHIU#VMC ిٿ Λ4XJUDIͰૢ࡞͢Δαϯϓϧίʔυ QVCMJDDMBTT-JHIU#VMC\ QVCMJDWPJEPO \ TZTUFNPVUQSJOUMO lޫΓ·͢z
^ QVCMJDWPJEP ff \ TZTUFNPVUQSJOUMO lফ͑·͢z ^ ^ QVCMJDDMBTT4XJUDI\ QSJWBUF-JHIU#VMCCVMCOFX-JHIU#VMC WPJEUVSO0O \ CVMCPO ^ WPJEUVSO0 ff \ CVMCP ff ^ ^ ʮґଘʯΛཧղ͢ΔͨΊͷαϯϓϧίʔυ͕ͪ͜ΒͰ͢ɻ αϯϓϧίʔυͰೋͭͷΫϥε͕ొ͠·͢ɻ Ұͭ-JHIU#VMCʢిٿʣΫϥεͰ͢ɻ -JHIU#VMCΫϥεೋͭϝιουΛ࣋ͪ·͢ɻ ిؾ͕͍ͭͨঢ়ଶΛද͢POϝιουͱফ͑ͨঢ়ଶΛද͢P ff ϝιουͰ͢ɻ ͏Ұͭ4XJUDIΫϥεͰ͢ɻిؾͷεΠονͷ͜ͱͰ͢ɻ ిؾΛΧνΧνͱ0/0''͢ΔͨΊͷUVSO0OϝιουͱUVSO0 ff ϝιουΛ͍࣋ͬͯ·͢ɻ 4XJUDIΫϥεͷϝϯόఆٛΛݟ͍ͯͩ͘͞ɻ -JHIU#VMCΫϥεΛΠϯελϯεԽͯ͠ϝϯόͱͯ͠อ༗͍ͯ͠·͢ɻ ·ͨɺఆٛ͞ΕͨϝϯόUVSO0O UVSO0 ff ϝιουͰ༻͞Ε͍ͯ·͢ɻ ͜ͷ࣮4XJUDIΫϥε͔Β-JHIU#VMCΫϥεͷґଘΛද͍ͯ͠·͢ɻ UVSO0O UVSO0 ff ϝιουͰ-JHIU#VMCΠϯελϯεΛ༻ͯ͠ɺPO P ff ϝιουΛ࣮ߦ͠Α͏ͱ͍ͯ͠·͢ͷͰɺ-JHIU#VMCΠϯελϯε͕ଘࡏ͠ͳ͍ɺ͘͠ -JHIU#VMCΠϯελϯε͡Όͳ͚ΕిؾΛΧνΧνͱ0/0''͢Δ͜ͱ͕Ͱ͖·ͤΜɻ ʮͳ͍ͱͩΊʯͳͷͰʮґଘ͍ͯ͠Δʯͱݴ͑·͢ɻ
ɿΫϥεؒͷґଘ͕ڧ͍ ͜ͷεΠονిٿҎ֎ͷ ໌͔ΓΛ͚ͭΒΕͳ͍ ෆศ ͋ΔΫϥεಉ͕࢜ґଘঢ়ଶʹ͋Δͱ͕ى͜Δ͜ͱ͕͋Γ·͢ɻ ྫ͑͜ͷྫͰεΠονిٿͷͨΊʹઃܭ͞Ε͍ͯΔͷͰɺ͠ܬޫ౮ͷిؾΛ͚͍ͭͨ߹ɺ͜ͷεΠονʹཱͨͳ͘ͳͬͯ͠·͍·͢ɻ ͜ͷαϯϓϧͷΑ͏ͳΫϥεؒͷؔΛࢦͯ͠ʮ͋ΔΫϥε"͕͋ΔΫϥε#ʹґଘ͍ͯ͠ΔʯͷΑ͏ʹݴ͍·͢ɻ͜ͷαϯϓϧͷέʔεͰʮ4XJUDIΫϥε͕ -JHIU#VMCΫϥεʹڧΊʹґଘ͍ͯ͠Δʯͱݴ͑·͢ɻ·ͨɺʮґଘੑ͕ڧ͍ͱมߋʹऑ͍ʯͱݴ͑ͦ͏Ͱ͢ɻ ͏͠Β͘ɺ͜ͷαϯϓϧϓϩάϥϜʹ͓͖߹͍͍ͩ͘͞ɻ ଓ͍ͯͷઆ໌Ͱɺ4XJUDIΫϥεΛ৭ʑͳর໌ث۩ʹରԠͰ͖ΔΑ͏ʹมߋʹڧͯ͘͠Έ·͢ɻ
*P$ͱԿ͔ -JHIU4PVSDF ԿΒ͔ͷর໌ث۩ Λ4XJUDIͰૢ࡞͢Δαϯϓϧίʔυ QVCMJDJOUFSGBDF-JHIU4PVSDF\ WPJEPO WPJEP ff
^ ࣍ͷεϥΠυʹίʔυ͕ଓ͖·͢ ͔͜͜ΒͷαϯϓϧίʔυͰɺҰͭΫϥε͕૿͑ɺͭͷΫϥε͕ొ͠·͢ɻ ͏ͪೋͭઌ΄Ͳͱಉ͡Ͱ͕͢ɺͭͷมߋͱͯ͠ɺ*OUFGBDF͕Ճ͞Ε·ͨ͠ɻ ͜ͷΠϯλʔϑΣʔεԿΒ͔ͷর໌ث۩Λࢦ͍ͯ͠ΔͷͰɺ-JHIU4PVSDFͱݺͼ·͢ɻ -JHIU4PVSDFΠϯλʔϑΣʔεPOͱP ff ͱ͍͏ೋͭͷϝιουΛ࣋ͪ·͢ɻ ͜Ε*OUFSGBDFͳͷͰɺϝιουએݴͷΈ͞Ε͓ͯΓɺநతʹͳ͍ͬͯ·͢ɻ
*P$ͱԿ͔ -JHIU4PVSDF ԿΒ͔ͷর໌ث۩ Λ4XJUDIͰૢ࡞͢Δαϯϓϧίʔυ QVCMJDDMBTT-JHIU#VMCJNQMFNFOUT-JHIU4PVSDF\ !0WFSSJEF QVCMJDWPJEPO \ TZTUFNPVUQSJOUMO lޫΓ·͢z
^ !0WFSSJEF QVCMJDWPJEP ff \ TZTUFNPVUQSJOUMO lফ͑·͢z ^ ^ QVCMJDDMBTT4XJUDI\ QSJWBUF-JHIU4PVSDFMJHIU4PVSDF QVCMJD4XJUI -JHIU4PVSDFMJHIU4PVSDF \ UIJTMJHIU4PVSDFMJHIU4PVSDF ^ WPJEUVSO0O \ MJHIU4PVSDFPO ^ WPJEUVSO0 ff \ MJHIU4PVSDFP ff ^ ^ ଓ͍ͯɺ-JHIU#VMCΫϥε͕-JHIU4PVSDFΠϯλʔϑΣʔεΛJNQMFNFOUT ࣮ ͢ΔΑ͏ʹͳ͍ͬͯ·͢ɻ ͜ΕʹΑΓʮর໌ث۩ͷ࣮ͱͯ͠ͷిٿʯͱ͍͏ҙຯ߹͍ʹͳΓ·͢ɻ -JHIU#VMCΫϥεͷมߋ͜Ε͚ͩͰ͢ɻ ࠷ޙʹ4XJUDIΫϥεͷมߋͰ͢ɻ ·ͣϝϯόͷܕ͕-JHIU#VMCΫϥεͰͳ͘-JHIU4PVSDFΠϯλʔϑΣʔεʹͳ͍ͬͯ·͢ɻ -JHIU4PVSDFΠϯλʔϑΣʔεԿΒ͔ͷর໌ث۩Λࢦ͍ͯ͠·͢ɻ ઌ΄Ͳ͜ͷϝϯόͷఆٛͰґଘઌ͕-JHIU#VMCΫϥεʹఆ·͍ͬͯ·ͨ͠ɻ ݱࡏ-JHIU4PVSDFΠϯλʔϑΣʔεʹͳ͍ͬͯΔͨΊɺ-JHIU4PVSDFΠϯλʔϑΣʔεΛJNQMFNFOUT͍ͯ͠ΔΫϥεͷΦϒδΣΫτશͯ͜ͷܕͷมʹೖͰ͖· ͢ɻ ͦͯ͠࠷ॏཁͳมߋͱͯ͠ίϯετϥΫλ͕Ճ͞Ε͍ͯ·͢ɻ ίϯετϥΫλ෦Ͱࣗͷ-JHIU4PVSDFܕͷϝϯόΛઃఆ͍ͯ͠·͢ɻ ݴ͍͑Δͱɺ-JHIU4PVSDFͷ࣮ΫϥεͷΠϯελϯεΛίϯετϥΫλͷݺͼग़͠ݩ͔Βઃఆͯ͠Β͑ΔΑ͏ʹͳ͍ͬͯ·͢ɻ ͜ΕͰɺίϯετϥΫλ͔Β͖ͳর໌ث۩Λͯ͠Β͑Εͦͷর໌ث۩ͷૢ࡞͕Ͱ͖Δ ॊೈͳεΠον͕ग़དྷ্͕Γ·ͨ͠ɻ
*P$ͱԿ͔ ͭͷαϯϓϧίʔυͷҧ͍Λ·ͱΊΔͱ มߋɿ *OUFSGBDFΛՃ -JHIU#VMCΫϥε͕*OUFSGBDFΛ࣮ 4XJUDI͕ґଘઌͷΦϒδΣΫτΛݺͼग़͠ݩ͔Βઃఆͯ͠Β͍ͬͯΔ Կ͕ྑ͘ͳ͔ͬͨɿΫϥεؒͷґଘ͕ऑ͘ͳΓมߋʹڧ͘ͳͬͨ
͜͜·Ͱͷ·ͱΊΛ͠·͢ɻ ͜͜·ͰͰʮґଘʯͱԿ͔ʹ͍ͭͯઆ໌͖ͯ͠·ͨ͠ɻ αϯϓϧίʔυͷൺֱΛ௨ͯ͠ʮґଘੑ͕ߴ͍ʯྫͱʮґଘੑ͕͘ͳͬͨʯྫΛ͓ݟͤ͠·ͨ͠ɻ ྫΛ௨͠ɺґଘੑ͕ߴ͍͔͍͔Ͱมߋͷڧ͕͞มΘΔ͜ͱΛ͝આ໌͠·ͨ͠ɻ Ͳ͏ͯ͠ґଘੑ͕Լ͕͔ͬͨεϥΠυʮมߋʯʹهࡌͷ༰Λ࣮ࢪͨͨ͠ΊͰ͋Γɺ ॏཁͳґଘઌΛ֎෦͔Βઃఆ͢ΔΑ͏ʹͨ͜͠ͱͰ͢ɻ ґଘ͕͔ͬͨͱ͜ΖͰ͏Ұ*P$͕ԿͰ͔͋ͬͨ֬ೝ͍͖͍ͯͨ͠ͱࢥ͍·͢ɻ
*P$ͱԿ͔ ·ͱΊ w *OWFSTJPOPG$POUSPM ੍ޚͷస ͷ͜ͱ w ʮґଘؔΛٯసͤ͞Δʯ͜ͱΛࢦ͢ 74 4XJUDIΫϥε͕ґଘઌΛܾΊΔ
4XJUDIΫϥεґଘઌΛܾΊͳ͍ ݺͼग़͠ଆʹܾΊͤ͞Δ QVCMJDDMBTT4XJUDI\ QSJWBUF-JHIU#VMCCVMCOFX-JHIU#VMC WPJEUVSO0O \ CVMCPO ^ WPJEUVSO0 ff \ CVMCP ff ^ ^ QVCMJDDMBTT4XJUDI\ QSJWBUF-JHIU4PVSDFMJHIU4PVSDF QVCMJD4XJUI -JHIU4PVSDFMJHIU4PVSDF \ UIJTMJHIU4PVSDFMJHIU4PVSDF ^ WPJEUVSO0O \ MJHIU4PVSDFPO ^ WPJEUVSO0 ff \ MJHIU4PVSDFP ff ^ ^ ಄Ͱ*P$ͱʮґଘؔΛٯసͤ͞Δʯ͜ͱΛࢦ͢ͷͰ͋Δͱ͓͑͠·ͨ͠ɻ ઌ΄Ͳͷαϯϓϧιʔεͷ4XJUDIΫϥεΛࢥ͍ग़͍ͯͩ͘͠͞ɻ ݩʑɺ-JHIU#VMCܕͷมΛϝϯόͱͯ࣋ͭ͜͠ͱͰɺґଘઌΛ4XJUDIΫϥε͕ܾࣗΊ͍ͯ·͕ͨ͠ɺ มߋʹڧ͍ίʔυʹͨ͠ޙɺ4XJUDIΫϥεґଘઌΛݺͼग़͠ݩʹܾΊͯΒ͏Α͏ʹͳΓ·ͨ͠ɻ ґଘઌ͕ܾ·Δ࣌ͷ͖͕ٯʹͳΔײ͕͡Θ͔Γ·͢Ͱ͠ΐ͏͔ʁ
*P$ͱԿ͔ ґଘؔͷٯసΛࢹ֮తʹ͢Δͱ 4XJUDIΫϥεΛ ΠϯελϯεԽ͢ΔԿ͔ QVCMJDDMBTT-JHIU#VMC\ QVCMJDWPJEPO \ TZTUFNPVUQSJOUMO lޫΓ·͢z
^ QVCMJDWPJEP ff \ TZTUFNPVUQSJOUMO lফ͑·͢z ^ ^ QVCMJDDMBTT4XJUDI\ QSJWBUF-JHIU#VMCCVMCOFX-JHIU#VMC WPJEUVSO0O \ CVMCPO ^ WPJEUVSO0 ff \ CVMCP ff ^ ^ QVCMJDDMBTT4XJUDI\ QSJWBUF-JHIU4PVSDFMJHIU4PVSDF QVCMJD4XJUI -JHIU4PVSDFMJHIU4PVSDF \ UIJTMJHIU4PVSDFMJHIU4PVSDF ^ WPJEUVSO0O \ MJHIU4PVSDFPO ^ WPJEUVSO0 ff \ MJHIU4PVSDFP ff ^ ^ ґଘੑͷ͖Λࢹ֮తʹҹͰදݱͯ͠͝આ໌͠·͢ɻ *P$ΛऔΓೖΕ͍ͯͳ͍ɺ࠷ॳͷαϯϓϧιʔεͰґଘઌΛ4XJUDIΫϥε͕ܾࣗΊ͍ͯ·ͨ͠ɻ4XJUDIΫϥε͕ґଘઌΛܾΊ͍ͯΔͷͰҹґଘઌͷ-JHIU#VMCΫ ϥεʹ৳ͼ·͢ɻ Ұํɺ*P$ΛऔΓೖΕͨαϯϓϧιʔεͰɺ4XJUDIΫϥεͷґଘઌʮ4XJUDIΫϥεΛΠϯελϯεԽ͢ΔԿ͔ʯʹܾΊͯΒ͍ͬͯ·͢ɻʮԿ͔ʯͱ͍͏ͷίϯε τϥΫλͰɺΠϯελϯεϝιουͰɺ.BJOؔͰԿͰΑ͍ͱ͍͏ҙຯͰ͢ɻ4XJUDIΫϥε͕ґଘઌΛܾΊͯΒ͍ͬͯΔΠϝʔδͰ͢ͷͰɺҹٯʹͳΓ ·ͨ͠ɻ ґଘͷ͖Λද͢ҹ͕ٯʹͳͬͨͷͰɺʮґଘ͕ؔٯసͨ͠ʯͱ͍͑·͢ɻ ͜Ε͕*P$Ͱ͢ɻ
QVCMJDDMBTT4XJUDI\ QSJWBUF-JHIU4PVSDFMJHIU4PVSDF QVCMJD4XJUI -JHIU4PVSDFMJHIU4PVSDF \ UIJTMJHIU4PVSDFMJHIU4PVSDF ^ WPJEUVSO0O \
MJHIU4PVSDFPO ^ WPJEUVSO0 ff \ MJHIU4PVSDFP ff ^ ^ %*ͱԿ͔ w %FQFOEFODZ*OKFDUJPO ґଘੑͷೖ ͷ͜ͱ w ͋ΔΫϥεͷ۩ମతͳʮґଘੑͷೖϝΧχζϜʯͷ͜ͱΛࢦ͢ *P$ͷԆͰཧղͰ͖Δ *P$ΛཧղͰ͖͍ͯΕɺ%*ʹ͍ͭͯͷཧղൺֱత؆୯ʹͳΓ·͢ɻ %*ຊޠʹ͢ͱʮґଘੑͷೖʯͰ͢ɻ *P$ΛऔΓೖΕͨ4XJUDIΫϥεΛ࠶ར༻͠·͢ɻ 4XJUDIΫϥεͷίϯετϥΫλͰ͕͢ɺ*P$ͷ࣮ફʹΑΓґଘઌͷ-JHIU4PVSDFΦϒδΣΫτΛίϯετϥΫλΛ௨ͯ͠ݺͼग़͠ݩ͔Βઃఆͯ͠Β͑ΔΑ͏ʹ ͳ͍ͬͯ·͢ɻ ͜ͷɺʮґଘੑΛ֎෦͔Βೖ͢Δ͜ͱʯΛ%*ͱݴ͍·͢ɻ %*ʹछྨ͕͋Γɺ࣮ํ๏छྨʹΑͬͯҟͳΓ·͢ɻ εϥΠυͷ%*ίϯετϥΫλΛ͏ͷͰʮίϯετϥΫλΠϯδΣΫγϣϯʯͱݴ͍·͢ɻଞʹ4FUUFSϝιου͔ΒґଘੑΛೖͤ͞ΔʮηολʔΠϯδΣΫγϣ ϯʯͳͲ͕͋Γ·͢ɻ
%*ͱԿ͔ ґଘੑͷೖΛࢹ֮తʹ͢Δͱ 4XJUDIΫϥεΛ ΠϯελϯεԽ͢ΔԿ͔ %* QVCMJDDMBTT4XJUDI\ QSJWBUF-JHIU4PVSDFMJHIU4PVSDF QVCMJD4XJUI -JHIU4PVSDFMJHIU4PVSDF
\ UIJTMJHIU4PVSDFMJHIU4PVSDF ^ WPJEUVSO0O \ MJHIU4PVSDFPO ^ WPJEUVSO0 ff \ MJHIU4PVSDFP ff ^ ^ *P$ͷઆ໌ͰͬͨਤΛ࠶༻͢Δͱɺҹͷ෦͕%*ͱͳΓ·͢ɻ
%*ίϯςφͱԿ͔ %*ͷԆͰཧղͰ͖Δ w Ϋϥεಉ࢜ͷґଘؔΛࣗಈతʹղܾ͢Δͷ w %*ίϯςφͲͷΫϥε͕ͲͷΫϥεʹґଘ͢Δ͔ղੳ͢Δ w %*ίϯςφ*P$ͱ%*ͷݪଇΛ࣮ݱ͢ΔͨΊͷπʔϧ IUUQTLB[LODPNQPTUJOUSPTQSJOHJPDDPOUBJOFS ࡶଟͳΦϒδΣΫτΛࣗͷཧԼʹ
ஔ͖ͦΕΒΛڠௐͤ͞ΔΦϒδΣΫτ ίϯςφ %*·ͰཧղͰ͖ͨͱ͜ΖͰ%*ίϯςφͷઆ໌Λ؆୯ʹ͠·͢ɻ %*ʹʮίϯςφʯͱ͍͏ݴ༿͕͖ͬͭ͘·ͨ͠ɻ 4FSWMFUίϯςφͱ͔ɺ&+#ίϯςφͱ͔ɺͷ+BWBք۾ͰԿ͔ͱʮίϯςφʯͱ͚͍ͭͯͨͱɺ͋ΔهࣄͰհ͍ͯ͠·ͨ͠ɻ ͦͷهࣄͷݴ༿ΛआΓͯɺ͜͜ͰʮίϯςφʯʮࡶଟͳΦϒδΣΫτΛࣗͷཧԼʹஔ͖ͦΕΒΛڠௐͤ͞ΔΦϒδΣΫτʯͱ͠·͢ɻ ίϯςφΛ͜͏ଊ͑Δͱɺʮ%*ίϯςφʯʮΫϥεಉ࢜ͷґଘؔΛࣗಈతʹղܾ͢Δͷʯͱ͍͏Πϝʔδʹͳ͖ͬͯ·͢Ͱ͠ΐ͏͔ʁ Ҏ্Ͱ*P$ɺ%*ɺ%*ίϯςφʹ͍ͭͯͷઆ໌ΛऴΘΓ·͢ɻ