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
WordPressに活かす最近のPHPエンジニアトレンド2016 画面つき
Search
Hisateru Tanaka
July 10, 2016
Technology
8
4.7k
WordPressに活かす最近のPHPエンジニアトレンド2016 画面つき
WordCamp関西2016の発表スライド + デモのスクリーンショット
Hisateru Tanaka
July 10, 2016
Tweet
Share
More Decks by Hisateru Tanaka
See All by Hisateru Tanaka
なまけものオバケたち -PHP 8.4 に入った新機能の紹介-
tanakahisateru
2
210
哲学史とモデリング
tanakahisateru
4
860
オブジェクト指向宗教史
tanakahisateru
32
17k
ほげ言語にあってPHPにない機能
tanakahisateru
6
3.4k
君たちはどうプログラミングするか
tanakahisateru
16
2.8k
デバッグ用ロガーの注入どうする?
tanakahisateru
2
640
アンドキュメンテッド ちょうぜつソフトウェア 設計入門 「オブジェクト指向に定義はない」のか?
tanakahisateru
25
9.7k
ちょうぜつ改め21世紀ふつうのソフトウェア設計
tanakahisateru
14
8.6k
まんがのかきかた
tanakahisateru
8
730
Other Decks in Technology
See All in Technology
業務自動化プラットフォーム Google Agentspace に入門してみる #devio2025
maroon1st
0
200
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
9.1k
Findy Team+のSOC2取得までの道のり
rvirus0817
0
380
研究開発部メンバーの働き⽅ / Sansan R&D Profile
sansan33
PRO
3
20k
BirdCLEF+2025 Noir 5位解法紹介
myso
0
200
関係性が駆動するアジャイル──GPTに人格を与えたら、対話を通してふりかえりを習慣化できた話
mhlyc
0
130
Where will it converge?
ibknadedeji
0
190
実装で解き明かす並行処理の歴史
zozotech
PRO
1
550
SREとソフトウェア開発者の合同チームはどのようにS3のコストを削減したか?
muziyoshiz
1
100
『OCI で学ぶクラウドネイティブ 実践 × 理論ガイド』 書籍概要
oracle4engineer
PRO
2
130
自動テストのコストと向き合ってみた
qa
0
200
Modernizing Virtio GPU: A Rust-Powered Approach with vhost-device-gpu
ennael
PRO
0
100
Featured
See All Featured
Building Applications with DynamoDB
mza
96
6.6k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
How to Think Like a Performance Engineer
csswizardry
27
2k
A Tale of Four Properties
chriscoyier
160
23k
A better future with KSS
kneath
239
17k
Optimising Largest Contentful Paint
csswizardry
37
3.4k
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.2k
Unsuck your backbone
ammeep
671
58k
The Invisible Side of Design
smashingmag
301
51k
The World Runs on Bad Software
bkeepers
PRO
71
11k
Raft: Consensus for Rubyists
vanstee
139
7.1k
Transcript
8PSE1SFTTʹ׆͔͢࠷ۙͷ 1)1ΤϯδχΞτϨϯυ
ͨͳ͔ͻͯ͞Δ @tanakahisateru Pinoco developer PHPTAL contributor Firebug translation contributor Yii
framework user PhpStorm user ॴ ؔ1)1Ϣʔβʔζάϧʔϓ
݄ 2ԿͷͰ͠ΐ͏͔
1)1
1)1 w ͿΓͷϝδϟʔόʔδϣϯΞοϓ w ͪͳΈʹશ1)1ͷྺ࢙ w 1)1ͷϝδϟʔόʔδϣϯίΞͷݴޠΤϯδϯ ˠࠓճจ๏༷ͷ֦ுগͳ͍
1)1ϦϦʔεલ w 1)1ΧϯϑΝϨϯεؔͰ1)1Λѻͬͨ ͚Ͳʜ w 1)1ΧϯϑΝϨϯε౦ژʹɺͳΜͱ1)1ͷ࡞ ऀɺϥεϚεࢯ͕ొஃ w ৽͍͠จ๏ཁૉɺ1)1Y))7.ͱͷൺֱ
ϥεϚεࢯʮΈͳ͞ΜͷΑ͏ͳΤϯδχ ΞʹͱͬͯগʑΫϨΠδʔͳ͜ͱʹฉ ͑͜Δ͔͠Ε·ͤΜ͕ɺ1)1ݴޠɺ 8PSE1SFTTΛඇৗʹॏཁࢹ͍ͯ͠·͢ʯ
IUUQUBMLTQIQOFUUPLZPXQCFODI
1)1༻ײ w 1)1֦ுͱͷؔϩʔϨϕϧͳςΫχοΫ·Θ Γʹͨ·ʹ͕ࠩग़Δ w ΞϓϦέʔγϣϯ࣮తͳͰɺ΄ͱΜͲจ๏ͷ มߋӨڹ͕ͳ͔ͬͨ w ϕϯμʔͷରԠΛ֬ೝ͑͢͠͞ΕҠߦ͍ w
΄ͱΜͲͷπʔϧ͕ܧଓͯ͠ར༻Ͱ͖Δ
1IQ4UPSN
1)1FS͕*%&ΛΜͩ w 7JN&NBDTΛ͖ͬͯͨΤϯδχΞ͕*%&ΛΜ Ͱ͍࢝Ί͍ͯΔ w 1)1ʹΦϒδΣΫτࢦ͕͍ࠜͨ݁Ռˠ*%&ͱ ͷ૬ੑ্͕ͨ͠ ʜͷ͔ͳ
1IQ4UPSNͷػೳ w 1)1ίʔυղੳ w %#ΫϥΠΞϯτ w 3&45ΫϥΠΞϯτ w (JU w
7BHSBOU w 4BTT-&444UZMVT w $P⒎FF4DSJQU5ZQF4DSJQU w (SVOU(VMQ w 8PSE1SFTTϓϥάΠϯ w '514'51
8PSE1SFTT ϓϥάΠϯʲެࣜʳ
ʜɺ͕࣌ؒ͋͠Εʹͯ͠
'51
1IQ4UPSN%FQMPZσϞ
w ͍·Ͳ͖ͷ8FC։ൃͰɺݹ͍ϓϩάϥϜΛͯ͢ফ͠ ͯ৽͍͠ϓϩάϥϜΛσϓϩΠ w ͚Ͳ8PSE1SFTTXQDPOUFOUͷத͕ॻ͖ΘΔ w ͠αʔό͕ࣗಈతʹ͍Ζ͍Ζߋ৽͍ͯͨ͠Β w ͠ςʔϚ$44͕ཧը໘͔Βฤू͞Ε͍ͯͨΒ w
ΞοϓϩʔυϑΝΠϧ໊͕ڝ߹ͨ͠Β w खݩͰม͑ͨ༰ͱαʔόͰมΘͬͨ༰ΛͭͶʹࢹͰ ֬ೝ͠ͳ͕Βಉظ͕ݱ࣮త
͓ͬͱɺ%PDLFSͷ͜ͱ࣍ͷͰ
*%&·ͱΊ ͳͥड͚ೖΕΒΕ͔ͨ w ͔ͭͯɺϑϨʔϜϫʔΫ$.4͝ͱʹશ͘ҧ͏1)1 ͷ͍ํΛ͍ͯͨ͠ w ݱࡏʮ1)1Ͱ͋Δʯͱ͍͏࣌Ͱ͋ΔఔͷҰ؏ ੑ͕Ͱ͖ͨˠػցతͳิॿΛ͘͢͠ͳͬͨ w ͳͷͰɺ*%&͕ྲྀߦͬͨͷ୭ͷ͓͔͔͛ͱ͍͏
ͱʜ
None
Ͱͳͯ͘
ΦϒδΣΫτࢦ 1)1ίϛϡχςΟඪ४
1)1'*( ͝ଘͰ͔͢
143 ͋ΒͨΊͯʜ͝ଘͰ͔͢
w 143໊લۭؒͱϑΥϧμ͚ͷن ഇࢭ143ʹ৽ w 143ίʔσΟϯάελΠϧن w ͜ΕҎલϑϨʔϜϫʔΫ͝ͱʹશ෦όϥόϥͷϥ ΠϒϥϦͩͬͨ
1)1'*( w '*('SBNFXPSL*OUFSPQ(SPVQ w Φʔϓϯιʔεͷ1)1ϥΠϒϥϦ͕ޓ͍ʹྑ͘͠ ͨΒศརͩΑͶ w 143 1)14UBOEBSE3FDPNNFOEBUJPO Λࡦఆ
1)1'*(ࢀՃϝϯόʔ "TTFUJDBOE#V[[ ,SJT8BMMTNJUI !LSJTXBMMTNJUI "VSB1SPKFDUBOE4PMBS'SBNFXPSL 1BVM.+POFT !QNKPOFT $BLF1)1
-BSSZ.BTUFST !1IQ/VU $PNQPTFS +PSEJ#PHHJBOP !TFMEBFL DPODSFUF ,PSWJO4[BOUP !LPSWJOT[BOUP $POUBP0QFO4PVSDF$.4 -FP'FZFS !MFPGFZFS %SVQBM -BSSZ(BSpFME !$SFMM F;1VCMJTI "OESF3PNDLF !BOESFSPN )PSEF +BO4DIOFJEFS !ZVOPTI *#.J5PPMLJU "EBN$VMQ !BEBNDVMQ *DJDMF "BSPO1JPUSPXTLJ !USPXTLJ +BDLBMPQF -VLBT,BIXF4NJUI !MTNJUI +PPNMB3PCFSU%FVU[ !SEFVU[ 5IF-FBHVFPG&YUSBPSEJOBSZ1BDLBHFT (SBIBN%BOJFMT !HSFZEOMT -JUIJVN/BUF"CFMF !OBUFBCFMF .BHFOUP #FO.BSLT !CFONBSLT 1&"3 $IVDL#VSHFTT !BTIOB[H 1IBMDPO "OESFT(VUJFSSF[ !QIBMDPOQIQ 1IJOH .JDIJFM3PPL !NJDIJFMUDT QIQ## .BSD"MFYBOEFS !NBSD QIQ%PDVNFOUPS .JLFWBO3JFM !NWSJFM 1)1JYJF 3PNBO5TJVQB !ESBDPOZ@HJNQ 11*'SBNFXPSL1BVM%SBHPPOJT !ESHPPOJT 1SFTUB4IPQ 3ÉNJ(BJMMBSE !YUB[ 1ZSP$.4 3ZBO5IPNQTPO !3ZBO5IF1ZSP 3FBDU1)1 $FFT+BO,JFXJFU !8ZSJ)BYJNVT 3FWJWF"ETFSWFS .BUUFP#FDDBUJ !NCFDDBUJ 4DVMQJO$ISJT5BOLFSTMFZ !ESBHPONBOUBOL 4JMWFS4USJQF %BNJBO.PPZNBO !USBDUPSDPX 4MJN +BTPO$PXBSE !ESVNTIBNBO 4UBTI 3PCFSU)BGOFS !UFEJWN 4UPSNQBUI1)14%, #SJBO3FUUFSFS !CSFUUFSFS 4VHBS$3. "OESFBT4BOECFSH !ZFMMPXBOEZ 4ZNGPOZ 'BCJFO1PUFODJFS !GBCQPU /FPTBOE'MPX,BSTUFO%BNCFLBMOT !LEBNCFLBMOT 8JLJCBTFBOE4FNBOUJD.FEJB8JLJ +FSPFO%F%BVX !+FSPFO%F%BVX :JJGSBNFXPSL "MFYBOEFS.BLBSPW !TBN@EBSL ;FOE'SBNFXPSL .BUUIFX8FJFS01IJOOFZ !NXPQ ;JLVMB 4IFpL.BDBVMFZ !TIFpL@JOGP ݱࡏ IUUQXXXQIQpHPSHNFNCFST
8PSE1SFTT ೖͬͯͳ͍ +PPNMB %SVQBM DPODMFUF QIQ## .FEJB8JLJ 4VHBS$3. ͋Ε
֤8FCϑϨʔϜϫʔΫ
8PSE1SFTTͱ'*(ͷؔ w 1)1'*(ͷՃೖͱΠέͯΔ͔Ͳ͏͔ແؔ w 143ͷతόϥόϥͷ044ΠϯλʔϑΣʔε Λڞ༗ͯ͠શମͰίϛϡχςΟΛܗ͠Α͏ w 8PSE1SFTTͱͱେ͖ͳίϛϡχςΟΛ࣋ͭ w ϓϥάΠϯςʔϚͷ৹ࠪϫʔΫϑϩʔ
w ίʔσΟϯάࣝͷڞ༗ίϛϡχςΟ
None
ࣄ݅ w %PDUSJOF w (V[[MF w 1SPQFM w -BSBWFM ଞཹ
㱠ର ͜ΕҎ্ͷඪ४ࡦఆʹՃΘΒͳ͍͕༗༻ͳ143ʹΔ
ূڌʮ143ʹͬͯͳ͍ͳ Μͯ͋Γ͑ͳ͍ɻͳͥͬͯʜʯ
$PNQPTFS
$PNQPTFS w 1)1ύοέʔδཧπʔϧ w 143ʹ४ڌ͢ΕSFRVJSF@PODFෆཁ w ͍ͭʹϦϦʔε w ӬԕͷΞϧϑΝ൛ͱݴΘΕͳ͕ΒେଟͷϑϨʔϜϫʔ ΫϥΠϒϥϦ͕࠾༻
w 1)1ΧϯϑΝϨϯεؔʹɺຊͰͬͱॏཁ ͳίϯτϦϏϡʔλʔ͕
QBDLBHJTUPSH
ʮͰͦΕ143ͬͯ͜ͱɺ 8PSE1SFTTͷϓϥάΠϯʹ ͑ͳ͍Μ͡Όʜʯ
XQBDLBHJTUPSH ͑ ͑ΔΑ
͍ํ \ SFQPTJUPSJFT< \ UZQFDPNQPTFS VSMIUUQTXQBDLBHJTUPSH ^ >
SFRVJSF\ DPNQPTFSJOTUBMMFSTd XQBDLBHJTUQMVHJODPOUBDUGPSN? ^ FYUSB\ JOTUBMMFSQBUIT\ EPDSPPUXQDPOUFOUQMVHJOT\OBNF^<UZQFXPSEQSFTTQMVHJO> EPDSPPUXQDPOUFOUUIFNFT\OBNF^<UZQFXPSEQSFTTUIFNF> ^ ^ ^ DPNQPTFSKTPO σϑΥϧτͷQBDLBHJTUҎ֎ʹ ͔͜͜Βऔಘͯ͠ ಛघͳύεʹΠϯετʔϧͰ ͖ΔΑ͏ʹͪΐͬͱ ͜ΕೖΕͯ
σϞͷ(JU $ tree . ├── LICENSE ├── README.md ├── Vagrantfile
├── codeception.yml ├── composer.json ├── composer.lock ├── docroot │ └── wp-content │ ├── plugins │ │ └── site │ └── themes │ └── site │ ├── functions.php │ └── style.css ├── init.sh ├── provisioning │ ├── playbook.yml │ ├── scripts │ │ ├── install-wp-cli.sh │ │ └── setup-wordpress.sh │ └── templates │ └── httpd.conf ├── salts.txt └── tests ├── … ུ └── unit.suite.yml ͖Ε͍ͳϑΥϧμͯ͠ΔͩΖɻ ιΈ͍ͨͩΖɻ XQDPOUFOUͳΜͩͥɻ XQDPSFEPXOMPBE DPNQPTFSJOTUBMMͰ
None
$PNQPTFSར༻ͷϝϦοτ w μϯϩʔυͨ͠ϥΠϒϥϦͷίϐʔΛόʔδϣϯ ཧʹؚΊͳ͍͍ͯ͘ w XQDMJΑΓႈੑ͕ߴ͍ طʹ͋ͬͨΒೖΕͳ͍ɺ ཁΒͳ͍ͷΛ͞ͳ͍ɺෳڥʹಉ͡όʔδϣ ϯߏ͕࠶ݱͰ͖Δ
w XQDMJͱDPNQPTFSͷซ༻͕Φεεϝ
1)1ͷόʔδϣϯͰ͋Γ·ͤΜɻͯ͞ԿͰ͠ΐ͏ ͏ͻͱͭͷ
143 3&45GVM
3&45 w 3FQSFTFOUBUJPOBM4UBUF5SBOTGFSͷུ w ଏʹ͍͏ 8FCαʔϏεͷ "1* w γϯάϧϖʔδΞϓϦέʔγϣϯ 41"
w αΠτઃܭͷϚΠΫϩαʔϏεԽ
౷తͳ8FCΞϓϦέʔγϣϯ αʔϏε ϒϥβ )5.- (&5 1045
ۙࠒͷΞʔΩςΫνϟ αʔϏε 3&45 ଞͷ8FCΞϓ Ϧέʔγϣϯ ϒϥβ +4 ϞόΠϧ ΞϓϦ "1*
"1* (&51045 165%&-&5&1"5$)
+BWB4DSJQUͷͷߴ·Γ w 1)1ΧϯϑΝϨϯεͰ"OHVMBS+4ɺ+BWB4DSJQU ؔ࿈ͷηογϣϯ͕ਓؾΛूΊ͍ͯΔ w 1)1ΧϯϑΝϨϯεؔͰ8FC $PNQPOFOUʹؔ͢Δηογϣϯ͕ͭ w 1)1ͷϓϩάϥϜͱϢʔβʔΠϯλʔϑΣʔεΛ ͍ͨ͠ͱ͍͏ؾ࣋ͪ
ϚΠΫϩαʔϏε143 w ϚΠΫϩαʔϏεαʔόʔؒΛ)551Ͱͭͳ͝͏ w 143)551NFTTBHFJOUFSGBDFT w 1)1͔Β)551ϦΫΤετ͢Δͱ͖ͷ͓ଋ w 1)1͕)551ϦΫΤετΛड͚ͨͱ͖ͷ͓ଋ w
ૣ͘"844%,͕Ұ෦143ʹ४ڌ
͜ͷΜ8PSE1SFTT ͰΘ͔Γ͍͘͢͏ͱ
813&45"1*
w 8PSE1SFTTΛૢ࡞͢ΔϞόΠϧΞϓϦ͕࡞ΕΔ w 8PSE1SFTTΛར༻ͨ͠ผͷ8FCαʔϏεΛ࡞ΕΔ w ͬͯͱ͖ʹ w 1)1Ͱྑ͘αʔόؒ௨৴͢ΔͳΒͳΔ͘143 ҙࣝͯ͠Ͷ
ৄࡉ͋ͱͷϋϯζΦϯʹ
ࣄྫ"84&MBTUJDTFBSDI 4FSWJDFೝূ w "84ͷ&MBTUJDTFBSDI4FSWJDFʹϕϯμʔඪ४ ͷύεϫʔυೝূ͕ͳ͍ w *".ϩʔϧೝূ w "844%,͕ɺ143ϦΫΤετΛड͚ͯ*".ϩʔ ϧೝূใ͖ϦΫΤετΛग़ྗ͢ΔΑ͏ʹͳͬͨ
ϦΫΤετ "844%, ೝূࡁΈϦΫΤετ LFZ TFDSFU SFHJPO "84Ͱ͑Δ "84Ͱ͑ͳ͍ 143 143
"84 )551
w &MBTUJDTFBSDI)551ͰΞΫηε͢ΔݕࡧಛԽ/P42- w .Z42-શจݕࡧ͕ۤखɺ&MBTUJDTFBSDIશจݕࡧΠ ϯσοΫεͷઃఆ͕༏ल w 8PSE1SFTTͷશจݕࡧʹ౷߹ˠϓϥάΠϯXQ FMBTUJDTFBSDI XPSEQSFTTGBOUBTUJDFMBTUJDTFBSDI w
ͱͱ"84ͱແ͕ؔͩͬͨɺ"84͕ &MBTUJDTFBSDIͷϗεςΟϯάαʔϏε։࢝ w ެࣜͷΫϥυϗεςΟϯά͔ͳΓ༏लˠIUUQ UBOBLBIJTBUFSVIBUFOBCMPHKQFOUSZ &MBTUJDTFBSDIΛΒͳ͔ͬͨਓಡΜͰ͓͍͍ͯͩ͘͞
ͪΐͬͱ͚ͩ࣋ w ·͋ɺΫϥΠΞϯτ·ͰΦʔϧ3&45Ͱ݁Ͱ͖Δ ઃܭͳΜͯͷجຊɺάάΒΕͳ͍ͷγΣΞ ͞Εͳ͍ͷΛ࡞ΔͰ͢ΑͶ w ΞϓϦέʔγϣϯ͕ൃୡ͢Εͦ͜ɺ༏ΕͨςΩε τ8FCίϯςϯπͱͯ͠ɺ)5.-υΩϡϝϯτ ͜Ε͔Β·͢·͢ॏཁͩͱࢥ͍·͢ w
Ͱɺ͓ͨ͘ͷ8FCϖʔδյΕ͍ͯ·ͤΜ͔
ࣗಈςετ w ϓϩάϥϜΛςετ͢ΔϓϩάϥϜ ྫ1)16OJU w ࠷ۙͷ1)1ΧϯϑΝϨϯεͰɺ+BWB4DSJQUΛؚ Ήςετʹ w ·ͨɺۙͰৼΔ͍ςετʹؔ͢Δηογϣ
ϯ͕૿͑ͨ
$PEFDFQUJPO
$PEFDFQUJPO w ࣗಈςετϑϨʔϜϫʔΫ w ड͚ೖΕςετɺػೳςετɺ୯ମςετ w 81୯ମςετ͕͍͠ w $PEFDFQUJPOड͚ೖΕػೳςετ͕ಛ w
ʮ8FCϖʔδΛ։͍ͨʯͰ࢝·ΓɺʮϦϯΫΛΫ ϦοΫʯʮจݴ͕ग़͍ͯΔ͔ʯΛ֬ೝ
͜Μͳ;͏ʹॻ͖·͢ <?php $I = new AcceptanceTester($scenario); $I->am('user'); $I->wantTo('login to website');
$I->lookForwardTo('access all website features'); $I->amOnPage('/login'); $I->fillField('Username','davert'); $I->fillField('Password','qwerty'); $I->click('Login'); $I->see('Hello, davert');
w ͍͠จ๏͕Θ͔Βͳͯ͘ɺεΫϦϓτͱͯ͠ॻ ͚Δ ಡΊΔˠςετͨ͠ࣄฑΛڞ༗͍͢͠ w ϩʔΧϧͷ։ൃڥ͚ͩͰͳ͘ɺεςʔδϯάڥ ຊ൪ڥʹରͯ͠ɺࣗಈςετΛ࣮ߦͰ͖Δ w 8FCαΠτߋ৽ͨ͠Βɺ೦ͷͨΊಈ࡞νΣοΫ͠ ·͢ΑͶɻϧʔνϯϫʔΫͰ͢ΑͶ
IUUQDPEFDFQUJPODPNGPSXPSEQSFTT ެࣜ
ʜʹ͕ͨͬͯ͠ ड͚ೖΕςετͬͯΈͨσϞ
ड͚ೖΕςετͷίπ w هड़͕؆୯ͳ໘ɺذ͕͋ͬͨΓͯ͠Օॻ͖Ͱ ॻ͚ͳ͍΄Ͳෳࡶͳදݱʹ͔ͳ͍ w ͬͱॏཁͳਖ਼ৗܥͷૢ࡞γφϦΦΛɺ͍͞͞ͳ Τϯόά͔ΒकΔ͜ͱɺ͚ͦͩ͜ʹযΛ w ਫ਼ີʹςετ͗͢͠ˠ͍ςετΛಈ͔͢ಡ Ή΄͏͕͘͠ͳΔˠຊస
σϞͰͬͨίʔυ wIUUQTHJUIVCDPN UBOBLBIJTBUFSV XQEFNPXDL w ͳਓ͕5XJUUFSͰγΣΞͯ͘͠ΕΔΜͰ͢ΑͶ͖ͬͱ
·ͱΊ 8PSE1SFTT1)1Ͱ͋Δ 1)1ͷ࠷৽ಈΛऔΓೖΕΑ͏ ͋ɺ͏औΓೖΕͯΔ ͳΒ͓͏ͥ Δνϟϯεʜ ͦ͏ͩ1)1ͷྲྀߦΓ͔Β ͔͚ͬΑ͏
1)1ΧϯϑΝϨϯεؔ ֤ҬͰճશࠃͰҬ
ؔ1)1ษڧձ ؔ1)1Ϣʔβʔζάϧʔϓ Ͱ͖Δ͔͗Γ݄ʹճ