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
Web Frontend Performance Tuning TIPS *n
Search
Ayumu Sato
January 25, 2014
Programming
6
1.7k
Web Frontend Performance Tuning TIPS *n
Frontrend in Fukuoka
http://frontendfrogs.org/frontrend/
で使用したスライドです。本編45分。
Ayumu Sato
January 25, 2014
Tweet
Share
More Decks by Ayumu Sato
See All by Ayumu Sato
なぜ「無責任な横軸」がうまくいかないのか 〜 組織の生産性にインパクトを与える振る舞いを考える
ahomu
17
17k
Web 開発の長距離走と持続可能性 - TechFeed Experts Night#31 〜 フロントエンドアーキテクチャの現状と未来
ahomu
1
270
控えめな App Router と持続可能な開発 - PWA Night vol.59
ahomu
12
3k
GPT 生成物の評価、運用 toC 企画でのハードルと勘所
ahomu
0
310
副業をきっかけに 切り拓くキャリア形成
ahomu
1
170
Webフロントエンドと アーキテクチャ事情の持論を喋る
ahomu
2
1.7k
SPA/MPA 議論の俯瞰と 現代における設計のポイント - #tfcon 2022 フロントエンド設計
ahomu
5
3.8k
#TECHPLAY Talk - 理想的な Web のため MUST 駆動で主語が大きくなったキャリア
ahomu
0
320
最近の Web パフォーマンス改善について知っておきたいコト
ahomu
50
20k
Other Decks in Programming
See All in Programming
エンジニアとして高みを目指す、 利益を生み出す設計の考え方 / design-for-profit
minodriven
23
12k
Web Components で実現する Hotwire とフロントエンドフレームワークの橋渡し / Bridging with Web Components
da1chi
3
1.9k
CSC509 Lecture 06
javiergs
PRO
0
240
そのpreloadは必要?見過ごされたpreloadが技術的負債として爆発した日
mugitti9
2
3k
メモリ不足との戦い〜大量データを扱うアプリでの実践例〜
kwzr
1
880
Le côté obscur des IA génératives
pascallemerrer
0
130
Go言語の特性を活かした公式MCP SDKの設計
hond0413
1
190
GitHub Actions × AWS OIDC連携の仕組みと経緯を理解する
ota1022
0
240
階層構造を表現するデータ構造とリファクタリング 〜1年で10倍成長したプロダクトの変化と課題〜
yuhisatoxxx
3
920
プロダクト開発をAI 1stに変革する〜SaaS is dead時代で生き残るために〜 / AI 1st Product Development
kobakei
0
490
AIで開発生産性を上げる個人とチームの取り組み
taniigo
0
130
高度なUI/UXこそHotwireで作ろう Kaigi on Rails 2025
naofumi
4
3.5k
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Rails Girls Zürich Keynote
gr2m
95
14k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
667
120k
How STYLIGHT went responsive
nonsquared
100
5.8k
What's in a price? How to price your products and services
michaelherold
246
12k
Faster Mobile Websites
deanohume
310
31k
Bash Introduction
62gerente
615
210k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.2k
The Art of Programming - Codeland 2020
erikaheidi
56
14k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
358
30k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.1k
Transcript
1FSGPSNBODF 5VOJOH5*14 O 'SPOUSFOEJO'VLVPLB "ZVNV4BUP!BIPNV ! GSPOUSFOE@GGB
ࠤ౻า ͞ͱ͏ ͋ΏΉ
ϋϯυϧωʔϜ BIPNV !
IUUQBIPNV ڵຯͬͯͩͬͨ͘͞Βθώ
ຊ
1BHF4QFFE PS :4MPX ීஈɺݟͯΔํʁ
͋Δ੍࡞ͱ͓٬͞Μͱ ͔͍͍ͬ͜αΠτ
" # ͔͍͍ͬ͜ αΠτͭ͘ΕͨΘʔ ! ͓٬͞ΜେຬͩΘʔ ੍࡞ऀ
$ # ࠓɺग़ઌͳΜͰ͚͢Ͳ αΠτ։͚ͳ͘ͳ͍Ͱ͔͢ʁ ͓٬͔Βి
" # ͋Εʔ ΅͘ͷ1$Ͱ։͚·͢Αʁ ! ͍͊ɺ͔͍͍ͬ͜ͳ͊ ੍࡞ऀ
$ # ͦ͏Ͱ͔͢ ! ͱ͜ΖͰίϯόʔδϣϯ ্͕Βͳ͍ΜͰ͚͢Ͳ ͳΜͱ͔ͳΓ·ͤΜʁ ͓٬͔Βి
" # ͑ʔɺࠔͬͨͳ͊ ! ͡Ό͋ͬͱ ը૾ͱ͔ͬͯ ͔ͬ͜Α͘͠·͠ΐ͏ ੍࡞ऀ
$ # Θ͔Γ·ͨ͠ ! ɾɾɾ ͓٬͔Βి
ϞόΠϧͰॏͯ͘։͚ͳ͍ ։͍ͯεΫϩʔϧ͕ॏ͍ɾΧΫΧΫ Ϣʔβʔʹ͞Εͯ͠·͏ ίϯόʔδϣϯʹࢸΒͳ͍
ʊਓਓਓਓਓਓਓਓਓʊ ʼɹಥવͷܖऴྃɹʻ ʉ:?:?:?:?:?:?:?:ʉ
ͦ͏ͳΒͳ͍ͨΊʹ ͓͖͍ͬͯͨ5*14Λ հ͠·͢
ύϑΥʔϚϯεͷಈػ ߟ͑ํͱಋೖ 5JQT O ωοτϫʔΫίετ ϨϯμϦϯά εΫϦϓτॲཧ ΠϯλϥΫγϣϯ ·ͱΊ
*OUSPEVDUJPO ߟ͑ํͱಋೖ
'SPOUFOE 1FSGPSNBODF ϑϩϯτΤϯυͱύϑΥʔϚϯεͷؔ
IUUQXXXTUFWFTPVEFSTDPNCMPHUIFQFSGPSNBODFHPMEFOSVMF
4UFWF 4PVEFST ʠ PG UIF FOEVTFS SFTQPOTF UJNF JT TQFOU
PO UIF GSPOUFOEʡ
None
▻▻▻▻▻ & ' #BDLFOE %# 8FC"QQ ( ) 'SPOUFOE #SPXTFS
* )5.-
& ' #BDLFOE %# 8FC"QQ ( ) 'SPOUFOE #SPXTFS *
)5.- MJOLISFGGPPDTTʜ TDSJQUTSDCBSKTʜ JNHTSDRVYKQHʜ
& ' #BDLFOE %# 8FC"QQ ( ) 'SPOUFOE #SPXTFS *
)5.- ◅◅◅◅◅ (&5GPPDTT (&5CBSKT (&5RVYKQH ◅◅◅◅◅ ◅◅◅◅◅
& ' #BDLFOE %# 8FC"QQ ( ) 'SPOUFOE #SPXTFS *
)5.- ▻▻▻▻▻ ▻▻▻▻▻ ▻▻▻▻▻ * $44 * +4 , +1(
& ' #BDLFOE %# 8FC"QQ ( ) 'SPOUFOE #SPXTFS *
)5.- ▻▻▻▻▻ ▻▻▻▻▻ ▻▻▻▻▻ * $44 * +4 , +1( ϑϩϯτΤϯυͷ
Ћ ͏ͻͱͭŋŋŋ
*OUFSBDUJPO69 ϢʔβʔͱΠϯλʔϑΣʔεͷର
εΫϩʔϧ͕͍ ΧΫΧΫ͢ΔαΠτ ␡
ϘλϯΛԡͯ͠ Ԡ͕ͳ͍αΠτ ␡
ݟӫ͑͢Δ͚Ͳ ΠϥΠϥ͢ΔαΠτ ␡
༻ײɾ৺Α͞ ٛͷύϑΥʔϚϯε ✓
ϑϩϯτͷͰ վળͰ͖Δ͜ͱ͢Δ ✓
5*14ΛूΊͨཧ༝
IUUQTEFWFMPQFSTHPPHMFDPNTQFFEEPDTJOTJHIUTSVMFT
IUUQEFWFMPQFSZBIPPDPNQFSGPSNBODFSVMFTIUNM
͙͢ʹ͑ͯ ཁΛ͓͍͑͢͞
5*14ˠཧ༝ΛΔ
࣌ͱ߹ʹΑͬͯ அͰ͖ΔΑ͏ʹ͢Δ
/FUXPSLJOH O ωοτϫʔΫίετ
3FEVDF 3FRVFTUT4J[F ϦΫΤετͷͱϑΝΠϧαΠζΛݮΒ͢
"CPWFUIFGPME ϑΝʔετϏϡʔΛ͘ݟͤΔ
✓ ❓ ⚠ ը૾Ϧιʔεඞͣ ࠷దԽͯ͠αΠζΛ͑Δ ը࣭Λอͪͳ͕ΒσʔλαΠζͷѹॖޮΛ ߴΊͨΓɺ༨ͳใΛআͨ͠Γ͢Δ ! ! ίετɾߴϦλʔϯͳରࡦͳͷͰ
͜Ε͕Εͯͳ͍ͱɺ͔ͳΓϞολΠͳ͍
✓ ❓ ⚠ ςΩετϦιʔεʹ ࠷খԽΛద༻͢Δ ͍ΘΏΔ.JOJGZॲཧɹεϖʔεվߦͳͲΛ औΓআ͍ͯɺϑΝΠϧαΠζΛখ͘͢͞Δ ! ! ߋ৽͢ΔͨͼʹखಈͰΒͳ͍
ඞͣπʔϧΛͬͯࣗಈԽ͢Δ
IUUQBMQIBQJYFMTDPNQSFQSPT
IUUQJODJEFOUDPNDPEFLJU
IUUQHSVOUKTDPN
✓ ❓ ⚠ $444QSJUFTͱ %BUB63*Λ༗ޮʹ͏ ը૾Λຕʹ·ͱΊͨΓɺ$44ͷதʹจࣈྻͰ ຒΊࠐΉ͜ͱͰɺϦΫΤετΛઅͰ͖Δ ! ! ҆,#ҎͰ͓͞·ΔΑ͏ʹͯ͠
ͻͱͭͷϑΝΠϧΛେ͖͗͘͢͠ͳ͍Α͏ҙ
%BUB63* $444QSJUFT , , , , ,, ,,, , ,
, , , , , , , , , , , , , , * $44 , , , , , , div { width: 100px; height: 50px; border-radius: 3px; … .. .
⬅ όΠφϦσʔλΛ จࣈྻͱͯ͠ຒΊࠐΉ * $44 background-image: url(“data:image/ jpeg;base64,/9j4AAQSkZJRgABAQAA AQABAAD2wBDAAMCAggICAgICAgI CAgICAgICAgICAgICAgICAgICAgICA
gICAgICAgICAgICAoICAgICQoKCAg MDAoIDAgICQj2wBDAQMEBAYFBgo GBgoNDAwNDQ0NDQwMDQ0MDA0 MDQ0MDAwMDQwMDAwMDAwMDA wMDAwMDAwMDAwMDAwMDAwMD AwMDAzwAARCADIAMgDAREAAhEB AxEB8QAHQAAAgEFAQEAAAAAAAA AAAAAAQIAAwQFBgcICfEAEUQAAIB AgMEBwMJBgUDBQAAAAECAAMRB BIhBQYxQQcIE1FhcZEiMoEjQlJicqGx wfAUM4KissIVNFPR8WOSoyRDc4Ph8 QAGwEAAgIDAQAAAAAAAAAAAAAA AAECAwQFBgf/xAAvEQACAgEEAg…
͠.#͋Δͱʜ .#ಡΈࠐ·ΕΔ·Ͱ ελΠϧ͕ద༻͞Εͳ͍ %BUB63*ͷը૾දࣔ͞Εͳ͍ ʘ ?P? ʗ * $44 ,
, , , , , div { width: 100px; height: 50px; border-radius: 3px; … .. .
✓ ❓ ⚠ ͯ͢ͷը૾Λ3FUJOB͚ʹ YͰ༻ҙ͠ͳͯ͘Α͍ େ͖͘ݟͤͳ͍͍ͯ͘αϜωΠϧը૾ ͦͦYͰेͳ͜ͱ͕ଟ͍ ! ! ςΩετը૾ΩʔϏδϡΞϧ
͕͢͞ʹY͡Όͳ͍ͱਏ͍
✓ ❓ ⚠ &YQJSFTͳͲͷϔομʔͱ H[JQѹॖΛඞͣద༻͢Δ &YQJSFTϔομʔͰΩϟογϡΛ׆༻ͯ͠ H[JQͷઃఆͰసૹྔΛ͓͑͞Δ ! ! ඇৗʹॳาత͕ͩɺݟಀͯ͠͠·͏ͱ
μϝʔδ͕େ͖͍ͷͰඞͣνΣοΫ͍ͨ͠
IUUQEFWFMPQFSTHPPHMFDPNTQFFEQBHFTQFFEJOTJHIUT
XXXHPPHMFDPNBOBMZUJDT
IUUQXXXXFCQBHFUFTUPSH
3FOEFSJOH O ϨϯμϦϯά
"WPJE$PNQMFYJUJFT ෳࡶʹ͠ͳ͍
✓ ❓ ⚠ ϨΠΞτɾ࠶ஔ͕ Εͯൃੜ͠ͳ͍Α͏ʹ͢Δ Ϩεϙϯγϒͳը૾ղ૾͝ͱʹ IFJHIU͚ͩͰܾΊΕΨίͬͯͳΒͳ͍ ! ! ྫ͑JNHͷXJEUI
IFJHIU͕ͳ͍ͱ ը૾ಡΈࠐΈ࣌ʹΨΫͬͱͳͬͯ͠·͏
✓ ❓ ⚠ ߴίετͳ$44 ৻ॏʹऔΓѻ͏ CPYTIBEPXCPSEFSSBEJVTͳͲͷ ͍ΘΏΔ$44ඳըίετ͕͘ͳ͍ ! ! Έ߹ΘͤΔͱɺඳըύε͕ෳࡶʹͳΔͷͰ
ಛʹඳըύϑΥʔϚϯε͕ྼԽ͍͢͠
# ͜ΕΛͷ ج४ͱ͢Δ
#
#
✓ ❓ ⚠ (16ΞΫηϥϨʔγϣϯ͕ ద༻͞ΕΔ$44Λར༻͢Δ USBOTMBUFEͳͲ(16ΞΫηϥϨʔγϣϯ͕ ద༻͞ΕΔ$44Λ͏ͱΒ͔ʹಈ͘ ! ! ͓·͡ͳ͍ͱ͍ͯ͗͢͠Δͱ
Ωπ͍ͬ͠ฦ͕͋͠Δ
None
None
IUUQTEFWFMPQFSTHPPHMFDPNFWFOUTJPTFTTJPOT
$PNQPTJUJOH-BZFS PO(16 /PSNBM-BZFS FWFSZ$16
(165FYUVSF # ߋ৽͕͋Ε ඳըσʔλΛ (16ʹ࠶సૹ # ඳըσʔλΛ Ωʔϓ͠ͱ͍ͯ (16্Ͱ߹
◅ ◅ ◅ # ͍ൣғΛ ࠶ඳը͠ͳ͍͔Β εϜʔζ # ϨΠϠʔؙ͝ͱΛ ૢ࡞ͤ͞Δ͚ͩͰ
αΫαΫҠಈ
4DSJQUJOH O εΫϦϓτॲཧ
5IJOL $PNQVUJOH ϒϥβͷؾ࣋ͪʹͳͬͯॻ͘
✓ ❓ ⚠ K2VFSZͷηϨΫλΛ ͖ͪΜͱΩϟογϡ͢Δ K2VFSZʹηϨΫλΛͯ͠ཁૉΛબ͢Δͱ͖ ୳ࡧ݁ՌΛฦ͢ͷͰɺͦΕΛΩϟογϡ͢Δ ! ! Ωϟογϡ͠ͳ͍ͱɺຖճηϨΫλΛΒͤͯ
ཁૉΛ୳ࡧ͍ͯ͠Δ͜ͱʹͳͬͯ͠·͏
! $(‘#list’).append(‘<li>Item1</li>’); $(‘#list’).append(‘<li>Item2</li>’); $(‘#list’).append(‘<li>Item3</li>’); $(‘#list’).append(‘<li>Item4</li>’); $(‘#list’).append(‘<li>Item5</li>’); ! <ul id=“list”></ul>
var $list = $(‘#list’); $list.append(‘<li>Item1</li>’); $list.append(‘<li>Item2</li>’); $list.append(‘<li>Item3</li>’); $list.append(‘<li>Item4</li>’); $list.append(‘<li>Item5</li>’); !
<ul id=“list”></ul>
var $list = $(‘#list’); $list.append(‘<li>Item1</li>’); $list.append(‘<li>Item2</li>’); $list.append(‘<li>Item3</li>’); $list.append(‘<li>Item4</li>’); $list.append(‘<li>Item5</li>’); !
<ul id=“list”></ul>
var $list = $(‘#list’); // ͪΐͬͱۃͰ͕͢… $list.append(‘<li>Item1</li>’ + ’<li>Item2</li>’ +
‘<li>Item3</li>’ + ‘<li>Item4</li>’ + ‘<li>Item5</li>’); ! <ul id=“list”></ul>
✓ ❓ ⚠ Πϕϯτ%FMFHBUFΛ ͬͯ·ͱΊΔ ࢁ͋Δɾಈతʹ૿͑ΔՄೳੑ͕͋Δཁૉͷ Πϕϯτɺ%FMFHBUF ҕৡ Λ͏ !
ඦηϧ͋ΔΤΫηϧ෩ͳϑϩϯτ࣮Λ૾ʜ
// ͨ͘͞Μͷ TD ɺݸผʹΠϕϯτΛషΔ $(‘table td’).on(‘click’, function() { // do
something }); ! // ͻͱͭͷ table ʹΠϕϯτΛషΔ $(‘table’).on(‘click’, ‘td’, function() { // do something });
// ͨ͘͞Μͷ TD ɺݸผʹΠϕϯτΛషΔ $(‘table td’).on(‘click’, function() { // do
something }); ! ! <table> <tr> <td>ηϧ1</td> <td>ηϧ2</td> <td>ηϧ3</td> </tr> </table> # 2
// ͻͱͭͷ TABLE ʹΠϕϯτΛషΔ $(‘table’).on(‘click’, ‘td’, function() { // do
something }); ! ! <table> <tr> <td>ηϧ1</td> <td>ηϧ2</td> <td>ηϧ3</td> <tr> </table> # ! 2
✓ ❓ ⚠ TDSPMM SFTJ[FͷΠϕϯτΛ ؒҾ͍ͯॲཧ͢Δ UISPUUMF ɹ࿈ଓݺͼग़͠ΛOϛϦඵͷपظʹؒҾ͍࣮ͯߦ ! EFCPVODF
ɹOϛϦඵҎͷ࿈ଓݺͼग़͠Λແࢹͯ͠ ɹݺͼग़͕͓͠͞·ͬͨΒ࣮ߦ
/* Underscore.JS */ ! // scroll ʹ߹ΘͤͯҐஔΛߋ৽͢ΔԿ͔ var throttled =
_.throttle(updatePos, 100); $(window).scroll(throttled); ! // resize ʹԠͯ͠ϨΠΞτ͢͠Կ͔ var lazyLayout = _.debounce(calcLayout,300); $(window).resize(lazyLayout);
UISPUUMFNT EFCPVODFNT NT͝ͱʹൃՐ͢ΔΠϕϯτ
✓ ❓ ⚠ ҙຯͷബ͍ϕϯνϚʔΫʹ Θ͞Εͳ͍ɾؾʹ͠ͳ͍ ࠣࡉ͗͢ΔύϑΥʔϚϯεΑΓ ه๏ͷ౷ҰੑɾՄಡੑ͕༏ઌ͞ΕΔ͖ ! ! ͍ɾ͍ͷϕϯνϚʔΩϯάඇৗʹେࣄ
͚ͲɺͦͷॲཧΛίʔϧ͢ΔසΛߟ͑Δ
✓ ❓ ⚠ ϝϞϦϦʔΫͷճආ +4Τϯδϯͷ࠷దԽߟྀ <&>.*/ #SPXTFS$PNQVUJOH4USVDUVSF ! ৄ͘͠ɺ͜ͷ࣍ͷ࣍ͷηογϣϯͰʂ !
Ͱͪΐͬͱ͚ͩʜ
IUUQXXXIUNMSPDLTDPNFOUVUPSJBMTQFSGPSNBODFNZTUFSZ
function updateSprites(dt) { for (var sprite in sprites) { sprite.position.x
+= 0.5 * dt; // 20 more lines of arithmetic computation. } }
function updateSprites(dt) { for (var sprite in sprites) { updateSprite(sprite,
dt); } } ! function updateSprite(sprite, dt) { sprite.position.x += 0.5 * dt; // 20 more lines of arithmetic computation. } ϧʔϓͷॲཧΛผؔʹ͢Δ͜ͱͰ ࠷దԽ͕ద༻͞ΕΔΑ͏ʹͳͬͨ Β͍͠
*OUFSBDUJPO O ΠϯλϥΫγϣϯ
JO.PCJMF ओʹϞόΠϧܥͷ
✓ ❓ ⚠ Ԇϩʔυ࣌ͷ ղ૾ϓϨʔεϗϧμʔ σϑΥϧτͰαΠζٯࢉ,#ͷղ૾ εΫϩʔϧԆͰຊདྷͷߴղ૾ʹ͔͑͞͠ ! ! ωοτϫʔΫతʹϦΫΤετͪΖΜ૿͑Δ
͚ͲɺମײΛ্͛ΒΕΔͱ͜Ͱ͏͖
✓ ❓ ⚠ ϩʔσΟϯάදࣔ NTͬͯग़͢ ͦΕҎԼͰ͋ΕɺϩʔσΟϯάද͕ࣔ໌໓ͯ͠ ͠·͏͚ͩͰٯʹݟӫ͕͑ྑ͘ͳ͍ ͜͏͍͏εϐφʔܥͷͭ
var timer; ! $(document).on(‘ajaxSend’, function(){ timer = setTimeout(function() { $(‘#loading’).show();
}, 300); }); ! $(document).on(‘ajaxComplete’, function(){ clearTimeout(timer); $(‘#loading').hide(); });
✓ ❓ ⚠ λοϓ࣌ͷঢ়ଶදݱΛ పఈతʹ͚ͭΔ ϒϥβඪ४ͷUBQIJHIMJHIUDPMPSͰΑ͍͠ UPVDITUBSU_FOEͰDMBTTΛணͯ͠Α͍ ! ! UBQIJHIMJHIUDPMPSΛSHCB
ʹ ઃఆͨ͠··ແԠͳ6*ʹ͢Δͷ࠷ѱ
// λον։࢝࣌ʹɺis-activeΫϥεΛ༩͢Δ $(document).on('touchstart','a',function() { $(this).addClass('is-active'); }); ! // λονऴྃ࣌ʹɺis-activeΫϥεΛղআ͢Δ $(document).on('touchend',
'a', function() { $(this).removeClass('is-active'); }); ! // ݫີʹɺUIͷछྨʹΑͬͯɺΫϥεணͷͱ͖ʹ // σΟϨΠΛ͔͚ͯνϡʔχϯά͠ͳ͍ͱࣗવʹͳΒͳ͍
✓ ❓ ⚠ ը໘શମͷτϥϯδγϣϯ ίεύѱ͍ͷͰආ͚Δ ΕͰ͖Δ͕ɺ͍ൣғΛαϙʔτ͢Δʹ ݕূίετɾෆ۩߹ରԠίετ͕ߴ͍ ! ! K2VFSZ.PCJMFͰ͢ΒͰຯʹͳΓ
ͷσϞߋʹফۃతͳײ͡ʹͳ͍ͬͯΔ
✓ ❓ ⚠ ϞόΠϧʹ͓͚ΔDMJDLͷ NTσΟϨΠΛΔ ϞόΠϧϒϥβμϒϧλοϓͷఆͷͨΊ λοϓ͔ͯ͠ΒDMJDLͷൃੜ͕NTԆ͢Δ ! ϥΠϒϥϦΛͬͯվળ͢Δ͜ͱͰ͖Δ ୯ͳΔUPVDITUBSU
UPVDIFOEͰաහ͗͢Δ
IUUQVQEBUFTIUNMSPDLTDPNNTUBQEFMBZHPOFBXBZ
IUUQXXXTJUFQPJOUDPNXBZTQSFWFOUNTDMJDLEFMBZNPCJMFEFWJDFT
IUUQTEFWFMPQFSTHPPHMFDPNTQFFEQBHFTQFFEJOTJHIUT
λοϓαΠζ͕খ͍͞ͱ͍͏ܯࠂ
$PODMVTJPO ·ͱΊ
ΤϯδχΞϦϯά ͇ ΠϯλϥΫγϣϯ
ΤϯδχΞϦϯάͷ ͯ͢ΛΔ͜ͱ ͍͠
ΠϯλϥΫγϣϯͷ ͯ͢Λݕূ͢Δ͜ͱ ͍͠
྆ऀͷྑ͍όϥϯεΛ ୳ΔϑϩϯτΤϯυ
5IBOLT IUUQBIPNV !BIPNV HJUIVCDPNBIPNV ! ⌂
1IPUPTCZʜ ΫϨϤϯIUUQXXXGMJDLSDPNQIPUPTMBGGZL *OUSPEVDUJPOIUUQXXXGMJDLSDPNQIPUPTKJOUFSXBT /FUXPSLJOHIUUQXXXGMJDLSDPNQIPUPTLFXM 3FOEFSJOHIUUQXXXGMJDLSDPNQIPUPTKEIBODPDL 4DSJQUJOHIUUQXXXGMJDLSDPNQIPUPTOZVIVIVV *OUBSBDUJPOIUUQXXXGMJDLSDPNQIPUPTTUPLFENFEJBQIPUPHSBQIZ $PODMVTJPOIUUQXXXGMJDLSDPNQIPUPTTBBE