$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
DataBase Refactoring
Search
soudai sone
PRO
May 16, 2017
11
11k
DataBase Refactoring
■オープンセミナー岡山の登壇資料です。
http://okayama.open-seminar.org/
■Twitterまとめ
https://togetter.com/li/1109418
soudai sone
PRO
May 16, 2017
Tweet
Share
More Decks by soudai sone
See All by soudai sone
手を動かしながら学ぶデータモデリング - 論理設計から物理設計まで / Data modeling
soudai
PRO
30
7.1k
これからアウトプットする人たちへ - アウトプットを支える技術 / that support output
soudai
PRO
19
5.8k
コミュニティと計画的偶発性理論 - 出会いが人生を変える / Life-Changing Encounters
soudai
PRO
7
1.8k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
60
37k
変化に強いテーブル設計の勘所 / Table design that is resistant to changes
soudai
PRO
68
19k
抽象化をするということ - 具体と抽象の往復を身につける / Abstraction and concretization
soudai
PRO
50
25k
目の前の仕事と向き合うことで成長できる - 仕事とスキルを広げる / Every little bit counts
soudai
PRO
38
34k
ソフトウェアエンジニアとしてキャリアの螺旋を駆け上がる方法 - 経験と出会いが人生を変える / Career-Anchor-Drive
soudai
PRO
20
6.9k
新婚19年目から学ぶ夫婦円満の正しい歩き方 / Life is beautiful
soudai
PRO
12
4.8k
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Facilitating Awesome Meetings
lara
57
6.6k
Git: the NoSQL Database
bkeepers
PRO
432
66k
Writing Fast Ruby
sferik
630
62k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Automating Front-end Workflow
addyosmani
1371
200k
Being A Developer After 40
akosma
91
590k
Why You Should Never Use an ORM
jnunemaker
PRO
60
9.6k
Build your cross-platform service in a week with App Engine
jlugia
234
18k
It's Worth the Effort
3n
187
29k
Documentation Writing (for coders)
carmenintech
76
5.2k
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
͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ɻ