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
May 20, 2017
Technology
6
10k
RDB anti-pattern that Java engineer wants to know
JJUG CCC 2017 spring での登壇資料です。
http://www.java-users.jp/ccc2017spring/
soudai sone
May 20, 2017
Tweet
Share
More Decks by soudai sone
See All by soudai sone
Gitlab本から学んだこと - そーだいなるプレイバック / gitlab-book
soudai
7
1.4k
**強い**エンジニアのなり方 - フィードバックサイクルを勝ち取る / grow one day each day
soudai
71
21k
マルチテナントの実現におけるDB設計とRLS / Utilizing RSL in multi-tenancy
soudai
26
6.5k
キャッシュと向き合う、キャッシュと共に生きる / cache pattern
soudai
31
11k
RDBアンチパターンと戦う - 削除フラグ 完全攻略ガイド / delete flag
soudai
26
16k
コミュニティと共に生きる - キャリアの螺旋 / live with community
soudai
7
4.5k
今年1年間の”アウトプット”を振り返る / soudai's output - 2023
soudai
12
2k
「GitLabに学ぶ 世界最先端のリモート組織のつくりかた」の輪読会のススメ - そーだいなる輪読会キックオフ / soudai-kickoff
soudai
0
290
Webアプリケーションのパフォーマンス・チューニングの勘所 / web tuningperformance
soudai
41
13k
Other Decks in Technology
See All in Technology
大規模言語モデル (LLM)における低精度数値表現
pfn
PRO
3
780
日本が誇るイタリアのダンスミュージック!? ユーロビートって何??
minorun365
PRO
1
130
株式会社EventHub・エンジニア採用資料
eventhub
0
2.1k
類似ロジック実装をiOS/Android間で合わせる道標No.1
fumiyasac0921
1
220
1Q86
kawaguti
PRO
2
180
サービス開発におけるVue3とTypeScriptの親和性について
tsukuha
10
1.7k
パフォーマンス最適化のベストプラクティス
databricksjapan
0
190
PhpStorm超絶技巧40分集中講義 #phpconkagawa
yusuke
4
710
スクラムに出会って「できた」を実感できるようになってきた話 / Scrum makes me feel like I can do it
yayoi_dd
2
110
OPENLOGI Company Profile for engineer
hr01
1
2.1k
PHP 9 に備えよ - 動的プロパティ、どうすればいぃ?
taisukearase
0
150
Taking Flight with Tailwind CSS
opdavies
0
4.3k
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
74
8.3k
Code Reviewing Like a Champion
maltzj
515
39k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
21
2k
Learning to Love Humans: Emotional Interface Design
aarron
267
39k
Optimizing for Happiness
mojombo
370
69k
Web development in the modern age
philhawksworth
203
10k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
8
3.5k
GraphQLとの向き合い方2022年版
quramy
33
12k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
67
14k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
20
1.8k
The MySQL Ecosystem @ GitHub 2015
samlambert
244
12k
A Philosophy of Restraint
colly
197
16k
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
·ͱΊ ΑΓྑ͍ઃܭΛ Ұॹʹߟ͑ͯߦ͖·͠ΐ͏
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ