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
DataBase Refactoring
Search
soudai sone
May 16, 2017
11
11k
DataBase Refactoring
■オープンセミナー岡山の登壇資料です。
http://okayama.open-seminar.org/
■Twitterまとめ
https://togetter.com/li/1109418
soudai sone
May 16, 2017
Tweet
Share
More Decks by soudai sone
See All by soudai sone
抽象化をするということ - 具体と抽象の往復を身につける / Abstraction and concretization
soudai
38
18k
目の前の仕事と向き合うことで成長できる - 仕事とスキルを広げる / Every little bit counts
soudai
34
12k
ソフトウェアエンジニアとしてキャリアの螺旋を駆け上がる方法 - 経験と出会いが人生を変える / Career-Anchor-Drive
soudai
17
5.1k
新婚19年目から学ぶ夫婦円満の正しい歩き方 / Life is beautiful
soudai
12
4.5k
顧客が本当に必要だったもの - パフォーマンス改善編 / Make what is needed
soudai
34
10k
仕事を前に進めるためのコツ - 判断と決断と共有 / Aim for the goal
soudai
89
62k
アプリケーションが 正しく動作するということ - 自動テスト編 / Automated Testing
soudai
17
3.5k
Gitlab本から学んだこと - そーだいなるプレイバック / gitlab-book
soudai
8
2.1k
**強い**エンジニアのなり方 - フィードバックサイクルを勝ち取る / grow one day each day
soudai
131
160k
Featured
See All Featured
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
24
2.7k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
Speed Design
sergeychernyshev
29
940
Making the Leap to Tech Lead
cromwellryan
133
9.3k
Intergalactic Javascript Robots from Outer Space
tanoku
271
27k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
120
52k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
The Cost Of JavaScript in 2023
addyosmani
49
7.8k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.3k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
160
15k
GraphQLとの向き合い方2022年版
quramy
46
14k
How to Think Like a Performance Engineer
csswizardry
23
1.6k
Transcript
σʔλϕʔε ϦϑΝΫλϦϯά Φʔϓϯηϛφʔ!Ԭࢁ
What is it? ࠓΈͳ͞Μʹ࣋ͬͯؼͬͯ΄͍͜͠ͱ
What is it? σʔλϕʔεͷण໋ ΞϓϦέʔγϣϯΑΓ͍
What is it? ͦΜͳ͍͖߹͍ʹͳΔσʔλϕʔε ͷେͳࣄΛ͓͑͠·͢
What is it? σʔλϕʔεͷϦϑΝΫλϦϯάͯ͠·͔͢ʁ
What is it? ෆదͳσʔλϕʔε͕ ίʔυαʔϏεͷΛࢭΊΔ
What is it?
What is it? վળ͢ΔͨΊͷ࠷ॳͷҰาΛ͓͑͠·͢
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹσʔλϕʔεͷෆ٢ͳष͍ ̏ɹઓ͏ͨΊͷࣄલ४උ ̐ɹϦϑΝΫλϦϯά ̑ɹ·ͱΊ
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹσʔλϕʔεͷෆ٢ͳष͍ ̏ɹઓ͏ͨΊͷࣄલ४උ ̐ɹϦϑΝΫλϦϯά ̑ɹ·ͱΊ
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ32ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿηʔϧεΤϯδχΞ ॴଐɿגࣜձࣾ ͯͳʢMackerelνʔϜʣ ɹɹɹຊPostgreSQLϢʔβձ ɹɹɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ32ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿηʔϧεΤϯδχΞ ॴଐɿגࣜձࣾ ͯͳʢMackerelνʔϜʣ ɹɹɹຊPostgreSQLϢʔβձ ɹɹɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ32ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿηʔϧεΤϯδχΞ ॴଐɿגࣜձࣾ ͯͳʢMackerelνʔϜʣ ɹɹɹຊPostgreSQLϢʔβձ ɹɹɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
ೖࣾͰ͢ʂ
Mackerel
Mackerel
ͯͳؒΛ୳ͯ͠·͢ curl -sIL mackerel.io | grep engineer
ࣗݾհ ໊લɿીࠜɹେʢͦͶɹ͚ͨͱʣ ྸɿ32ࡀʢࡾਓͷࢠڙ͕͍·͢ʣ ৬ۀɿηʔϧεΤϯδχΞ ॴଐɿגࣜձࣾ ͯͳʢMackerelνʔϜʣ ɹɹɹຊPostgreSQLϢʔβձ ɹɹɹɹɹதࠃࢧ෦ ࢧ෦ ɹɹٕज़తʹLLܥݴޠͱ͔RDB͕͖Ͱ͢
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹσʔλϕʔεͷෆ٢ͳष͍ ̏ɹઓ͏ͨΊͷࣄલ४උ ̐ɹϦϑΝΫλϦϯά ̑ɹ·ͱΊ
σʔλϕʔεͷෆ٢ͳष͍ σʔλϕʔεͷෆ٢ͳष͍
σʔλϕʔεͷෆ٢ͳष͍ 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ߦͷଟ͗͢Δςʔϒϧ wʮεϚʔτʯΧϥϜ wมߋͷڪා σʔλϕʔεϦϑΝΫλϦϯά͔ΒҾ༻ ඇਖ਼نԽͷɺσʔλͷ߹ੑ͕औΕͳ͘ͳΔ
σʔλϕʔεͷෆ٢ͳष͍ wෳͷతʹΘΕΔΧϥϜ wෳͷతʹΘΕΔςʔϒϧ wͳσʔλ wΧϥϜͷଟ͗͢Δςʔϒϧ wߦͷଟ͗͢Δςʔϒϧ wʮεϚʔτʯΧϥϜ wมߋͷڪා σʔλϕʔεϦϑΝΫλϦϯά͔ΒҾ༻ ྫ͑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 Өڹൣғ͕͍ w %#ΛࢭΊΔ͜ͱ͕͍͠ ϞχλϦϯάͯ͠ঢ়ଶΛΔ มԽͷӨڹΛϦΞϧλΠϜʹΔ
ઓ͏ͨΊͷࣄલ४උ σʔλϕʔεͷಛ w σʔλৗʹมԽ͍ͯ͠Δ w Өڹൣғ͕͍ w %#ΛࢭΊΔ͜ͱ͕͍͠ Өڹ͕͍͔Βͦ͜ςετΛॻ͘ γφϦΦςετେ
ؔ࿈͢ΔΞϓϦέʔγϣϯͷશ͕ͯର
ઓ͏ͨΊͷࣄલ४උ σʔλϕʔεͷಛ w σʔλৗʹมԽ͍ͯ͠Δ w Өڹൣғ͕͍ w %#ΛࢭΊΔ͜ͱ͕͍͠
ઓ͏ͨΊͷࣄલ४උ αʔϏεఀࢭͷน w αʔϏεࢭΊΕͳ͍ w ࢭΊͨ࣌ͷӨڹൣғ͕Θ͔Βͳ͍ w ແఀࢭͷΈΛ࡞Δͷ͍͠
ઓ͏ͨΊͷࣄલ४උ αʔϏεఀࢭͷน
ઓ͏ͨΊͷࣄલ४උ αʔϏεఀࢭͷน ˣ ࣏ͱٕज़ͷ྆ํͰղܾ͢Δ
ઓ͏ͨΊͷࣄલ४උ αʔϏεఀࢭͷน w αʔϏεࢭΊΕͳ͍ w ࢭΊͨ࣌ͷӨڹൣғ͕Θ͔Βͳ͍ w ແఀࢭͷΈΛ࡞Δͷ͍͠
ઓ͏ͨΊͷࣄલ४උ αʔϏεఀࢭͷน w αʔϏεࢭΊΕͳ͍ w ࢭΊͨ࣌ͷӨڹൣғ͕Θ͔Βͳ͍ w ແఀࢭͷΈΛ࡞Δͷ͍͠
ઓ͏ͨΊͷࣄલ४උ αʔϏεఀࢭͷน w αʔϏεࢭΊΕͳ͍ w ࢭΊͨ࣌ͷӨڹൣғ͕Θ͔Βͳ͍ w ແఀࢭͷΈΛ࡞Δͷ͍͠
ઓ͏ͨΊͷࣄલ४උ σʔλϕʔεϦϑΝΫλϦϯά ͍͘͢͝εύϯʹͳΔ
ઓ͏ͨΊͷࣄલ४උ ࢝ΊΔલʹඞཁͳࣄ w ରΛબఆ͠ɺҠߦظؒΛܾΊΔ w ςετͱϞχλϦϯάΛἧ͑Δ w ϦϦʔεઓུΛܾΊΔ
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹσʔλϕʔεͷෆ٢ͳष͍ ̏ɹઓ͏ͨΊͷࣄલ४උ ̐ɹϦϑΝΫλϦϯά ̑ɹ·ͱΊ
ϦϑΝΫλϦϯά σʔλϕʔεϦϑΝΫλϦϯά
ϦϑΝΫλϦϯά
ϦϑΝΫλϦϯά σʔλϕʔεϦϑΝΫλϦϯάͷྨ w ߏ ςʔϒϧ7JFXͷఆٛ w σʔλ࣭ σʔλͷ
w ࢀর߹ੑ ςʔϒϧͷؔ࿈ੑ w ϝιου ετΞυϓϩγδϟ w มߋ ςʔϒϧΧϥϜͷՃ w ΞʔΩςΫνϟ ΞϓϦͱͷΠϯλʔϑΣΠε
None
ϦϑΝΫλϦϯά ៉ྷͳϦϑΝΫλϦϯά w ࢀরͱߋ৽ͷಡΈࠐΈઌΛ͚Δ w ߋ৽ͷϘτϧωοΫΛ͚Δ w σʔλઃܭΛݟ͢ w దʹ*/%&9Λ׆༻͢Δ
ϦϑΝΫλϦϯά ҋͷਂ͍ϦϑΝΫλϦϯά w +0*/Λඇਖ਼نԽͰิ͏ w ֎෦Ωʔ੍Λ֎͢ w ͱΓ͋͑ͣΩϟογϡʹಥͬࠐΉ w ۃͷεέʔϧΞοϓ
ϦϑΝΫλϦϯά ϦϑΝΫλϦϯάख๏
ϦϑΝΫλϦϯά ϦϑΝΫλϦϯάख๏ w %#ϚΠάϨʔγϣϯπʔϧΛ͏ w %#ͷػೳΛར༻͢Δ w खಈͰ42-Λ࣮ߦ͢Δ
ϦϑΝΫλϦϯά ϦϑΝΫλϦϯάख๏ w %#ϚΠάϨʔγϣϯπʔϧΛ͏ w %#ͷػೳΛར༻͢Δ w खಈͰ42-Λ࣮ߦ͢Δ
ϦϑΝΫλϦϯά ϦϑΝΫλϦϯάख๏ w %#ϚΠάϨʔγϣϯπʔϧΛ͏ w %#ͷػೳΛར༻͢Δ w खಈͰ42-Λ࣮ߦ͢Δ
ϦϑΝΫλϦϯά ϦϑΝΫλϦϯάख๏ w %#ϚΠάϨʔγϣϯπʔϧΛ͏ w %#ͷػೳΛར༻͢Δ w खಈͰ42-Λ࣮ߦ͢Δ
ϦϑΝΫλϦϯά ϦϑΝΫλϦϯάͷίπ
ϦϑΝΫλϦϯά ҠߦલʹͤΔࣄ
ϦϑΝΫλϦϯά Ҡߦதաڈͷঢ়ଶΛอ࣋͢Δࣄ
ϦϑΝΫλϦϯά σʔλϕʔεϦϑΝΫλϦϯάͷྨ w ߏ ςʔϒϧ7JFXͷఆٛ w σʔλ࣭ σʔλͷ
w ࢀর߹ੑ ςʔϒϧͷؔ࿈ੑ w ϝιου ετΞυϓϩγδϟ w มߋ ςʔϒϧΧϥϜͷՃ w ΞʔΩςΫνϟ ΞϓϦͱͷΠϯλʔϑΣΠε
JE ໊લ ྸ ીࠜɹେ ીࠜɹኽָ
ીࠜɹᗅָ ીࠜɹࡣָ JE ໊લ ੜ݄ ીࠜɹେ ીࠜɹኽָ ીࠜɹᗅָ ીࠜɹࡣָ
JE ໊લ ྸ ીࠜɹେ ીࠜɹኽָ
ીࠜɹᗅָ ીࠜɹࡣָ JE ໊લ ੜ݄ ીࠜɹେ ીࠜɹኽָ ીࠜɹᗅָ ીࠜɹࡣָ ຖՃྸͷ61%"5&͕ඞཁͳͷͰ ੜ݄ʹมߋ͍ͨ͠
JE ໊લ ྸ ીࠜɹେ ીࠜɹኽָ
ીࠜɹᗅָ ીࠜɹࡣָ JE ໊લ ੜ݄ ીࠜɹେ ીࠜɹኽָ ીࠜɹᗅָ ીࠜɹࡣָ ੜ݄͔ΒྸΛܭࢉͤ͞Δ Έ͕ඞཁ
JE ໊લ ྸ ીࠜɹେ ીࠜɹኽָ
ીࠜɹᗅָ ીࠜɹࡣָ JE ໊લ ੜ݄ ીࠜɹେ ીࠜɹኽָ ીࠜɹᗅָ ીࠜɹࡣָ JE ໊લ ੜ݄ ྸ ીࠜɹେ ીࠜɹኽָ ીࠜɹᗅָ ીࠜɹࡣָ
JE ໊લ ྸ ીࠜɹେ ીࠜɹኽָ
ીࠜɹᗅָ ીࠜɹࡣָ JE ໊લ ੜ݄ ીࠜɹେ ીࠜɹኽָ ીࠜɹᗅָ ીࠜɹࡣָ JE ໊લ ੜ݄ ྸ ીࠜɹେ ીࠜɹኽָ ીࠜɹᗅָ ીࠜɹࡣָ ԾྻΛར༻͢Δ
JE ໊લ ྸ ીࠜɹେ ીࠜɹኽָ
ીࠜɹᗅָ ીࠜɹࡣָ JE ໊લ ੜ݄ ીࠜɹେ ીࠜɹኽָ ીࠜɹᗅָ ીࠜɹࡣָ JE ໊લ ੜ݄ ྸ ીࠜɹେ ીࠜɹኽָ ીࠜɹᗅָ ીࠜɹࡣָ ෆཁʹͳͬͨΒ আ͢Δ
ϦϑΝΫλϦϯά খ͞ͳมߋΛ͍εύϯͰ܁Γฦ͢
ϦϑΝΫλϦϯά খ͞ͳมߋΛ͍εύϯͰ܁Γฦ͢ ˣ %#Өڹൣғ͕͍ͷͰ Γ͚Λ͘͢͢͠Δ͜ͱ͕େࣄ
ϦϑΝΫλϦϯά େ͖ͳσʔλͷϦϑΝΫλϦϯά
ϦϑΝΫλϦϯά େ͖ͳσʔλͷϦϑΝΫλϦϯάྫ w େ͖ͳςʔϒϧͷมߋ w Ϩίʔυͷߋ৽͕ܹ͍͠ςʔϒϧ w %#ͷόʔδϣϯΞοϓ
มߋલ ΞϓϦ
ෳ มߋલ มߋޙ ΞϓϦ
มߋલ มߋޙ ΞϓϦ
มߋલ มߋޙ ΞϓϦ
มߋޙ ΞϓϦ
ϦϑΝΫλϦϯά %#ͷػೳΛ͏·͘׆༻͢Δ
͋͐͡Μͩ ̍ɹࣗݾհ ̎ɹσʔλϕʔεͷෆ٢ͳष͍ ̏ɹઓ͏ͨΊͷࣄલ४උ ̐ɹDBϦϑΝΫλϦϯά ̑ɹ·ͱΊ
·ͱΊ σʔλϕʔεੜ͖
·ͱΊ σʔλϕʔεੜ͖ ↓ ఆظతͳϝϯςφϯεඞਢ
·ͱΊ খ͍͞͏ͪʹ͢
·ͱΊ খ͍͞͏ͪʹ͢ ↓ DBͷͱڞʹංେԽ͢Δ
·ͱΊ πʔϧDBͷػೳΛ׆༻͢Δ
·ͱΊ πʔϧDBͷػೳΛ׆༻͢Δ ↓ DBϚΠάϨʔγϣϯԾྻͳͲ ઓ͏ͨΊͷಓ۩ʑਐԽ͍ͯ͠Δ
·ͱΊ
·ͱΊ
·ͱΊ Ұ࡞ͬͨ%#ফͤͳ͍
·ͱΊ Ұ࡞ͬͨ%#ফͤͳ͍ ˣ ઃܭ͕େࣄ
·ͱΊ पғͷܦݧஊ͔ΒֶͿ
·ͱΊ पғͷܦݧஊ͔ΒֶͿ ˣ ੵۃతʹίϛϡχςΟΛར༻͢Δ
ࢀߟࢿྉ ɾQPTUHSFTRMKQ4MBDL νϟοτϧʔϜ IUUQTQPTUHSFTRMIBDLFSTKQIFSPLVBQQDPN ɾNZTRMDBTVBM4MBDL νϟοτϧʔϜ IUUQTNZTRMDBTVBMTMBDLJOIFSPLVBQQDPN
·ͱΊ lखΛಈ͔ͨ͠ਓ͚͕ͩੈքΛม͑Δz :BTVIJSP0OJTIJ
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ