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
RDB anti-pattern that Java engineer wants to know
Search
soudai sone
PRO
May 20, 2017
Technology
6
11k
RDB anti-pattern that Java engineer wants to know
JJUG CCC 2017 spring での登壇資料です。
http://www.java-users.jp/ccc2017spring/
soudai sone
PRO
May 20, 2017
Tweet
Share
More Decks by soudai sone
See All by soudai sone
APMの世界から見るOpenTelemetryのTraceの世界 / OpenTelemetry in the Java
soudai
PRO
0
220
失敗できる意思決定とソフトウェアとの正しい歩き方_-_変化と向き合う選択肢/ Designing for Reversible Decisions
soudai
PRO
8
1.7k
外部キー制約の知っておいて欲しいこと - RDBMSを正しく使うために必要なこと / FOREIGN KEY Night
soudai
PRO
15
6k
手を動かしながら学ぶデータモデリング - 論理設計から物理設計まで / Data modeling
soudai
PRO
34
8.7k
これからアウトプットする人たちへ - アウトプットを支える技術 / that support output
soudai
PRO
20
8.3k
コミュニティと計画的偶発性理論 - 出会いが人生を変える / Life-Changing Encounters
soudai
PRO
8
3.8k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
51k
変化に強いテーブル設計の勘所 / Table design that is resistant to changes
soudai
PRO
68
20k
抽象化をするということ - 具体と抽象の往復を身につける / Abstraction and concretization
soudai
PRO
51
34k
Other Decks in Technology
See All in Technology
「ヒットする」+「近い」を同時にかなえるスマートサジェストの作り方.pdf
nakasho
0
100
入門DBSC
ynojima
0
130
大規模サービスにおける レガシーコードからReactへの移行
magicpod
1
110
Kaggleの経験が実務にどう活きているか / kaggle_findy
sansan_randd
3
380
ヘルシーSRE
tk3fftk
2
230
Exadata Fleet Update
oracle4engineer
PRO
0
1.3k
三菱UFJ銀行におけるエンタープライズAI駆動開発のリアル / Enterprise AI_Driven Development at MUFG Bank: The Real Story
muit
11
20k
型を書かないRuby開発への挑戦
riseshia
0
160
名刺メーカーDevグループ 紹介資料
sansan33
PRO
0
1.1k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
14k
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
44k
【SLO】"多様な期待値" と向き合ってみた
z63d
2
290
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
220
How Fast Is Fast Enough? [PerfNow 2025]
tammyeverts
3
470
The Language of Interfaces
destraynor
162
26k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
9.7k
Leo the Paperboy
mayatellez
4
1.5k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.3k
Optimising Largest Contentful Paint
csswizardry
37
3.6k
How to Ace a Technical Interview
jacobian
281
24k
Visualization
eitanlees
150
17k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The Invisible Side of Design
smashingmag
302
51k
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Transcript
JavaΤϯδχΞʹͬͯ΄͍͠ RDBΞϯνύλʔϯ ++6($$$4QSJOH
What is it? ࠓΈͳ͞Μʹ࣋ͬͯؼͬͯ΄͍͜͠ͱ
What is it? σʔλϕʔεͷण໋ ΞϓϦέʔγϣϯΑΓ͍
What is it? ͦΜͳ͍͖߹͍ʹͳΔσʔλϕʔε ͷେͳࣄΛ͓͑͠·͢
What is it? ରͷσʔλϕʔειϑτΣΞ
What is it? PostgreSQL 9.6ͱMySQL 5.7(InnoDB)ʹݶΔ ଞͷRDBͷ͠·ͤΜ
What is it? RDBΞϯνύλʔϯ
What is it? RDBΞϯνύλʔϯ ↓ ޙʑʹۤ͠ΈΛੜΉ
What is it? RDBΞϯνύλʔϯΛΔ
What is it? RDBΞϯνύλʔϯΛΔ ↓ ಉ͡աͪΛ܁Γฦ͞ͳ͍
What is it? ࠓRDBͷࣦഊྫΛ͝հ͠·͢
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹσʔλϕʔεͷ໎ٶ ̏ɹڧ͗͢Δ੍ ̐ɹࢹ͞Εͳ͍σʔλϕʔε ̑ɹ·ͱΊ
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹσʔλϕʔεͷ໎ٶ ̏ɹڧ͗͢Δ੍ ̐ɹࢹ͞Εͳ͍σʔλϕʔε ̑ɹ·ͱΊ
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ32ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿηʔϧεΤϯδχΞ ॴଐɿגࣜձࣾ ͯͳʢMackerelνʔϜʣ ɹɹɹຊPostgreSQLϢʔβձ ɹɹɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ32ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿηʔϧεΤϯδχΞ ॴଐɿגࣜձࣾ ͯͳʢMackerelνʔϜʣ ɹɹɹຊPostgreSQLϢʔβձ ɹɹɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
Mackerel
Mackerel
ͯͳؒΛ୳ͯ͠·͢ curl -sIL mackerel.io | grep engineer
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ32ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿηʔϧεΤϯδχΞ ॴଐɿגࣜձࣾ ͯͳʢMackerelνʔϜʣ ɹɹɹຊPostgreSQLϢʔβձ ɹɹɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹσʔλϕʔεͷ໎ٶ ̏ɹڧ͗͢Δ੍ ̐ɹࢹ͞Εͳ͍σʔλϕʔε ̑ɹ·ͱΊ
None
σʔλϕʔεͷ໎ٶ 4PGUXBSF%FTJHOΛಡΜͰ͘Εʂʂ Ҏ্οʂʂʂʂ
σʔλϕʔεͷ໎ٶ σʔλϕʔεͷઃܭͷ
σʔλϕʔεͷ໎ٶ demo=# SELECT delete_falg AS delete_flag FROM users GROUP BY
delete_flag delete_flag ------------- 1 2 0 9 99 NULL (6 ߦ)
σʔλϕʔεͷ໎ٶ ▪༷ॻ_20170513(1).xls 0: ະআ 1: আࡁΈ 2: ཧऀʹΑΔڧ੍আ 9: ຣফ
99: Α͘Θ͔Βͳ͍ NULL: όάͰೖΔ
σʔλϕʔεͷ໎ٶ NFNP NFNP NFNP
σʔλϕʔεͷ໎ٶ NFNP NFNP NFNP NFNPͰͳ͘NFNPͷͱ͜Ζ͕ྺ࢙Λײͤ͡͞Δ
σʔλϕʔεͷ໎ٶ σʔλϕʔεͷ໎ٶͷ
σʔλϕʔεͷ໎ٶ w ෆదͳ໊લͰσʔλϕʔεͷςʔϒϧͷؔ࿈ੑ ҙਤ͕ཧղͰ͖ͳ͍ w ϦϨʔγϣφϧϞσϧΛج͍ͮͨઃܭ͍ͯ͠ͳ͍ͱ طଘͷศརͳπʔϧΛར༻ग़དྷͳ͍ w อଘ͞Εͨσʔλ͕ਖ਼͍͔͠Ͳ͏͔͕அग़དྷͳ͍ w
ͲͷΑ͏ͳσʔλΛอଘ͠ɺͲͷΑ͏ͳσʔλΛ औΓग़͍͍͔ͤΘ͔Βͳ͍
σʔλϕʔεͷ໎ٶ w ෆదͳ໊લͰσʔλϕʔεͷςʔϒϧͷؔ࿈ੑ ҙਤ͕ཧղͰ͖ͳ͍ w ϦϨʔγϣφϧϞσϧΛج͍ͮͨઃܭ͍ͯ͠ͳ͍ͱ طଘͷศརͳπʔϧΛར༻ग़དྷͳ͍ w อଘ͞Εͨσʔλ͕ਖ਼͍͔͠Ͳ͏͔͕அग़དྷͳ͍ w
ͲͷΑ͏ͳσʔλΛอଘ͠ɺͲͷΑ͏ͳσʔλΛ औΓग़͍͍͔ͤΘ͔Βͳ͍
σʔλϕʔεͷ໎ٶ w ෆదͳ໊લͰσʔλϕʔεͷςʔϒϧͷؔ࿈ੑ ҙਤ͕ཧղͰ͖ͳ͍ w ϦϨʔγϣφϧϞσϧΛج͍ͮͨઃܭ͍ͯ͠ͳ͍ͱ طଘͷศརͳπʔϧΛར༻ग़དྷͳ͍ w อଘ͞Εͨσʔλ͕ਖ਼͍͔͠Ͳ͏͔͕அग़དྷͳ͍ w
ͲͷΑ͏ͳσʔλΛอଘ͠ɺͲͷΑ͏ͳσʔλΛ औΓग़͍͍͔ͤΘ͔Βͳ͍
σʔλϕʔεͷ໎ٶ w ෆదͳ໊લͰσʔλϕʔεͷςʔϒϧͷؔ࿈ੑ ҙਤ͕ཧղͰ͖ͳ͍ w ϦϨʔγϣφϧϞσϧΛج͍ͮͨઃܭ͍ͯ͠ͳ͍ͱ طଘͷศརͳπʔϧΛར༻ग़དྷͳ͍ w อଘ͞Εͨσʔλ͕ਖ਼͍͔͠Ͳ͏͔͕அग़དྷͳ͍ w
ͲͷΑ͏ͳσʔλΛอଘ͠ɺͲͷΑ͏ͳσʔλΛ औΓग़͍͍͔ͤΘ͔Βͳ͍
σʔλϕʔεͷ໎ٶ w ෆదͳ໊લͰσʔλϕʔεͷςʔϒϧͷؔ࿈ੑ ҙਤ͕ཧղͰ͖ͳ͍ w ϦϨʔγϣφϧϞσϧΛج͍ͮͨઃܭ͍ͯ͠ͳ͍ͱ طଘͷศརͳπʔϧΛར༻ग़དྷͳ͍ w อଘ͞Εͨσʔλ͕ਖ਼͍͔͠Ͳ͏͔͕அग़དྷͳ͍ w
ͲͷΑ͏ͳσʔλΛอଘ͠ɺͲͷΑ͏ͳσʔλΛ औΓग़͍͍͔ͤΘ͔Βͳ͍
σʔλϕʔεͷ໎ٶ ཧ*%
σʔλϕʔεͷ໎ٶ ཧ*% ˣ ձһ*%Λྫʹ͠·͢
σʔλϕʔεͷ໎ٶ
σʔλϕʔεͷ໎ٶ ͔Β࢝·ΔͷҰൠϢʔβ ͔Β࢝·ΔͷཧϢʔβ
σʔλϕʔεͷ໎ٶ ϢʔβͷಓݝΛද͢
σʔλϕʔεͷ໎ٶ ຊͷձһ*%
σʔλϕʔεͷ໎ٶ σʔλʹϩδοΫΛຒΊࠐΉͳͬʂ
σʔλϕʔεͷ໎ٶ σʔλʹϩδοΫΛຒΊࠐΉͳͬʂ ˣ σʔλΛσʔλͱͯ͠ಡΈऔΕͳ͍
σʔλϕʔεͷ໎ٶ ॲํᝦ w ΧϥϜΛਖ਼໊͘͠લΛ͚ͭΔ w σʔλͷΛ͚Δ w มԽʹ߹ΘͤͯϦϑΝΫλϦϯά͢Δ
σʔλϕʔεͷ໎ٶ ॲํᝦ w ΧϥϜΛਖ਼໊͘͠લΛ͚ͭΔ w σʔλͷΛ͚Δ w มԽʹ߹ΘͤͯϦϑΝΫλϦϯά͢Δ
σʔλϕʔεͷ໎ٶ ϦϑΝΫλϦϯάͷྫ
σʔλϕʔεͷ໎ٶ JE ໊લ ྸ ીࠜɹେ ીࠜɹኽָ
ીࠜɹᗅָ ીࠜɹࡣָ ݱঢ়
σʔλϕʔεͷ໎ٶ ձһJE ໊લ ྸ ݖݶJE ಓݝJE ીࠜɹେ
ીࠜɹኽָ ીࠜɹᗅָ ીࠜɹࡣָ ཧ
σʔλϕʔεͷ໎ٶ JE ձһJE ໊લ ྸ ݖݶJE ಓݝJE /6-- ીࠜɹେ
/6-- /6-- /6-- ીࠜɹኽָ /6-- /6-- /6-- ીࠜɹᗅָ /6-- /6-- /6-- ીࠜɹࡣָ /6-- /6-- ରͷΧϥϜΛՃ
σʔλϕʔεͷ໎ٶ JE ձһJE ໊લ ྸ ݖݶJE ಓݝJE ીࠜɹେ
ીࠜɹኽָ ીࠜɹᗅָ ીࠜɹࡣָ ରͷΧϥϜΛՃ
σʔλϕʔεͷ໎ٶ Ͳ͏ͬͯཧ*%Λ ৽͍͠ΧϥϜʹೖΕΔ͔
σʔλϕʔεͷ໎ٶ ϦϑΝΫλϦϯάख๏ͷྫ w */4&3561%"5&ͷ࣌ʹΞϓϦ͕ೖΕΔ w */4&3561%"5&ͷ࣌ʹτϦΨʔΛ͏ w Ծྻ7JFXΛ͏
σʔλϕʔεͷ໎ٶ ձһJE ໊લ ྸ ݖݶJE ಓݝJE ીࠜɹେ
ીࠜɹኽָ ીࠜɹᗅָ ીࠜɹࡣָ ཧͷ7JFXΛ࡞Δ
σʔλϕʔεͷ໎ٶ αʔϏεͷੑ࣭ʹ߹Θͤͯ ख๏ΛબͿ
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹσʔλϕʔεͷ໎ٶ ̏ɹڧ͗͢Δ੍ ̐ɹࢹ͞Εͳ͍σʔλϕʔε ̑ɹ·ͱΊ
ڧ͗͢Δ੍ σʔλϕʔε αʔϏεʹ༩͑ΔӨڹൣғ͕͍
ڧ͗͢Δ੍ ༩͑ΔӨڹൣғͷྫ w %#Λఀࢭ͢ΔͱαʔϏε͕ࢭ·Δ w มߋ͢ΔͱෳαʔϏεͷվम͕ඞཁ w σʔλৗʹੵ͞Ε͍ͯ͘
ڧ͗͢Δ੍ ࣌ؒܦաͰσʔλ͕͢Δ
ڧ͗͢Δ੍ ͭ·Γมߋ͕େม
ڧ͗͢Δ੍ ͭ·Γมߋ͕େม ˣ ͕࣌ؒܦͯܦͭ΄Ͳঢ়گ͕ѱԽ
ڧ͗͢Δ੍ ͔ͩΒͦ͜ਖ਼͍͠ઃܭʹҭͯΔ͖
ڧ͗͢Δ੍ ͦͷͨΊʹ3%#ͷػೳΛ׆༻͢Δ
ڧ͗͢Δ੍ ͦͷͨΊʹ3%#ͷػೳΛ׆༻͢Δ ˣ ͔ͦ͠͠Ε͕ཪʹग़Δ͜ͱ
ڧ͗͢Δ੍ 3%#ͷػೳʹґଘ͗͢͠Δͱ ͦΕڧ͗͢Δ੍ʹͳΔ
ڧ͗͢Δ੍ ڧ͗͢Δ੍ͷྫ w τϦΨʔ͕ଟ͘ͷ5"#-&ʹӨڹΛ༩͑Δ w ετΞυ͕ϩδοΫΛ࣋ͪ͗͢Δ w ϚςϏϡʔ%#-JOLͷଟ༻͗͢͠Δ
ڧ͗͢Δ੍ 3%#ͷػೳͱͯศར
ڧ͗͢Δ੍ 3%#ͷػೳͱͯศར ˣ ͔ۜ͠͠ͷؙͰͳ͍
ڧ͗͢Δ੍ ઃܭͷόϥϯεײ͕֮େࣄ
ڧ͗͢Δ੍ ॲํᝦ w ͦͷػೳΛར༻͢ΔظؒΛݕ౼͢Δ w ͦͷػೳͷӨڹൣғΛཧղ͢Δ w ຊʹ࠷దͳΞϓϩʔν͔͍͢
ڧ͗͢Δ੍ ॲํᝦ w ͦͷػೳΛར༻͢ΔظؒΛݕ౼͢Δ w ͦͷػೳͷӨڹൣғΛཧղ͢Δ w ຊʹ࠷దͳΞϓϩʔν͔͍͢
ڧ͗͢Δ੍ ਓաڈͷޭମݧͷ όΠΞε͕͔͔Δ
ڧ͗͢Δ੍ ਓաڈͷࣦഊମݧ όΠΞε͕͔͔Δ
ڧ͗͢Δ੍ ઃܭͷόϥϯεײ͕֮େࣄ
ڧ͗͢Δ੍ ઃܭͷόϥϯεײ͕֮େࣄ ˣ ଟ͘ͷઃܭΛݟͯཆ͏͜ͱ͕େࣄ
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹσʔλϕʔεͷ໎ٶ ̏ɹڧ͗͢Δ੍ ̐ɹࢹ͞Εͳ͍σʔλϕʔε ̑ɹ·ͱΊ
ࢹ͞Εͳ͍σʔλϕʔε ࢹͱϞχλϦϯά
ࢹ͞Εͳ͍σʔλϕʔε
ࢹ͞Εͳ͍σʔλϕʔε
ࢹ͞Εͳ͍σʔλϕʔε ͳΜͰςετॻ͘ͷʹ ϞχλϦϯά͠ͳ͍ΜͰ͔͢ʁ
ࢹ͞Εͳ͍σʔλϕʔε ࢹࡾஈ֊͋Δ
ࢹ͞Εͳ͍σʔλϕʔε w͍ͪૣ͘োൃੜΛ֬ೝ͢Δ w෮چͷͨΊͷݪҼΛ֬ೝ͢Δ wঢ়گͷมԽΛ࣌ܥྻͰࢹ͢Δ͜ͱͰ Ϧιʔεཧোͷ༧ஹͷѲ͢Δ
ࢹ͞Εͳ͍σʔλϕʔε w͍ͪૣ͘োൃੜΛ֬ೝ͢Δ w෮چͷͨΊͷݪҼΛ֬ೝ͢Δ wঢ়گͷมԽΛ࣌ܥྻͰࢹ͢Δ͜ͱͰ Ϧιʔεཧোͷ༧ஹͷѲ͢Δ ࢮ׆ࢹ
ࢹ͞Εͳ͍σʔλϕʔε w͍ͪૣ͘োൃੜΛ֬ೝ͢Δ w෮چͷͨΊͷݪҼΛ֬ೝ͢Δ wঢ়گͷมԽΛ࣌ܥྻͰࢹ͢Δ͜ͱͰ Ϧιʔεཧোͷ༧ஹͷѲ͢Δ νΣοΫࢹ
ࢹ͞Εͳ͍σʔλϕʔε w͍ͪૣ͘োൃੜΛ֬ೝ͢Δ w෮چͷͨΊͷݪҼΛ֬ೝ͢Δ wঢ়گͷมԽΛ࣌ܥྻͰࢹ͢Δ͜ͱͰ Ϧιʔεཧোͷ༧ஹͷѲ͢Δ ϞχλϦϯάࢹ
ࢹ͞Εͳ͍σʔλϕʔε
ࢹ͞Εͳ͍σʔλϕʔε
ࢹ͞Εͳ͍σʔλϕʔε Πϯϑϥੜ͖
ࢹ͞Εͳ͍σʔλϕʔε Πϯϑϥੜ͖ ˣ ʑͷهΛݟΔ
ࢹ͞Εͳ͍σʔλϕʔε աڈΛΔ͜ͱͰ ࠓͷॴ͕Θ͔Δ
ࢹ͞Εͳ͍σʔλϕʔε ࠓͱաڈͷࠩ
ࢹ͞Εͳ͍σʔλϕʔε ࠓͱաڈͷࠩ ˣ ະདྷΛΔͨΊͷࡐྉ
ࢹ͞Εͳ͍σʔλϕʔε ࢹ͖߲͢ w ౷ܭใ04ϦιʔεͳͲ3%#ͷঢ়ଶ w εϩʔΫΤϦϩάΤϥʔϩάͳͲ w ෳͷ%#ΛॏͶͨൺֱ
ࢹ͞Εͳ͍σʔλϕʔε ϞχλϦϯάվળͷҰา
ࢹ͞Εͳ͍σʔλϕʔε ॲํᝦ w దʹϞχλϦϯάΛ͢Δ w ϞχλϦϯάπʔϧΛ׆༻͢Δ w վળͷͨΊͷҰาΛ౿Έग़͢
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹσʔλϕʔεͷ໎ٶ ̏ɹڧ͗͢Δ੍ ̐ɹࢹ͞Εͳ͍σʔλϕʔε ̑ɹ·ͱΊ
·ͱΊ ۪ऀܦݧʹֶͿ ݡऀաڈʹֶͿ
·ͱΊ ΞϯνύλʔϯΛΔ
·ͱΊ
·ͱΊ SQLΞϯνύλʔϯݫબ͞Εࣦͨഊू
·ͱΊ SQLΞϯνύλʔϯݫબ͞Εࣦͨഊू ↓ DBͷϊϋ͕٧·໊ͬͨஶ
·ͱΊ Ұ࡞ͬͨ%#ফͤͳ͍
·ͱΊ Ұ࡞ͬͨ%#ফͤͳ͍ ˣ ઃܭ͕େࣄ
·ͱΊ σʔλϕʔεͷࢮαʔϏεͷࢮ
·ͱΊ σʔλϕʔεͷࢮαʔϏεͷࢮ ˣ ղܾͰ͖Δਓӳ༤
·ͱΊ %#ͷΕͨࠒʹͬͯ͘Δ
·ͱΊ
·ͱΊ αʔϏενʔϜΛकΔ
·ͱΊ αʔϏενʔϜΛकΔ ˣ ͦͷͨΊʹֶͿ
·ͱΊ पғͷܦݧஊ͔ΒֶͿ
·ͱΊ पғͷܦݧஊ͔ΒֶͿ ˣ ੵۃతʹίϛϡχςΟΛར༻͢Δ
ࢀߟࢿྉ ɾQPTUHSFTRMKQ4MBDL νϟοτϧʔϜ IUUQTQPTUHSFTRMIBDLFSTKQIFSPLVBQQDPN ɾNZTRMDBTVBM4MBDL νϟοτϧʔϜ IUUQTNZTRMDBTVBMTMBDLJOIFSPLVBQQDPN
·ͱΊ 3%#ͷࣝण໋͕͍
·ͱΊ 3%#ͷࣝण໋͕͍ ˣ ֮͑ΕࣄͰ͍ؒʹཱͭ
·ͱΊ lखΛಈ͔ͨ͠ਓ͚͕ͩੈքΛม͑Δz :BTVIJSP0OJTIJ
·ͱΊ ΑΓྑ͍ઃܭΛ Ұॹʹߟ͑ͯߦ͖·͠ΐ͏
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ