Protocol Buffersのスキーマを利用した開発

3cb4e761dbdb7aebd1ffd85f752e1e3e?s=47 sonata
August 31, 2019

Protocol Buffersのスキーマを利用した開発

3cb4e761dbdb7aebd1ffd85f752e1e3e?s=128

sonata

August 31, 2019
Tweet

Transcript

  1. 1 1SPUPDPM#V⒎FSTͷεΩʔϚΛ ར༻ͨ͠։ൃ CVJMEFSTDPO5PLZP !TPOBUBSEͦͳଠ

  2. ͦͳଠ @sonatard D Technologies • ωοτϫʔΫɺLinuxαʔόΠϯϑϥ 4೥ • RTOS, Socket,

    TCP/IP, DHCP, DNS࣮૷ 7೥ • GAE/Go 2.5೥ • TypeScript, React 5ϲ݄ • iOS, Swift 2೔ • ΞʔΩςΫνϟɺઃܭ • MVCܥ • Clean Architecture • ϦϑΝΫλϦϯά • OOP, SOLIDݪଇ • ৽͍͠ύϥμΠϜΛษڧͯ͠ɺγεςϜ΍ ίʔυΛγϯϓϧʹ͢Δ͜ͱ͕޷͖ • ࠷ۙͷϒʔϜ͸GraphQLͱRx(Swift)
  3. • ͸ ͡ Ί ʹ • . p r o

    t o ϑ Ν Π ϧ ͷ ύ ʔ ε ͱ ར ༻ • Ԡ ༻ ฤ • p r o t o ϑ Ν Π ϧ Λ ύ ʔ ε ͠ ͯ ͍ Δ π ʔ ϧ • · ͱ Ί
  4. 4 ͸͡Ίʹ w ۙ೥(31$ͷීٴͱͱ΋ʹ1SPUPDPM#V⒎FST΋ଟ͘ͷػձͰར༻͞ΕΔ Α͏ʹͳΓ·ͨ͠ɻ w 1SPUPDPM#V⒎FST͸(31$Ͱར༻͞ΕΔγϦΞϥΠθʔγϣϯπʔϧͱ ͯ͠ར༻Ͱ͖Δ͜ͱͱͱ΋ʹɺεΩʔϚͱͯ͠ͷར༻Ձ஋΋ߴ͘༗༻ Ͱ͢ɻ w

    ࢲͱͯ͠͸+40/4DIFNF΍0QFO"1*ʹൺ΂ͯɺͱͯ΋ಡΈ΍͍͢ ϑΥʔϚοτͩͱࢥ͍·͢ w ·ͨύʔε͔ͯ͠Βͷपล։ൃ؀ڥ΋੔͍ͬͯΔͨΊɺεΩʔϚΛ ύʔεͯࣗ͠෼ͨͪͷͨΊͷπʔϧΛ։ൃ͢Δ͜ͱͰɺ೔ৗͷ։ൃۀ ຿Λվળ͢Δ͜ͱ͕ͱͯ΋͠΍͍͢Ͱ͢
  5. 5 ͸͡Ίʹ w ͔͠͠εΩʔϚΛύʔεͯ͠ίʔυͷࣗಈੜ੒ͳͲ͸ɺҰݟϋʔυϧ ͕ߴ͘ײ͡·͢ w ͦ͜ͰࠓճͷൃදͰ͸ɺ࣮ࡍʹίʔυੜ੒Λ͢Δํ๏Λ঺հ͢Δ͜ͱ ͰϋʔυϧΛԼ͛ΒΕΕ͹ͱࢥ͍·͢ɻ

  6. 6 1SPUPDPM#V⒎FSTͱ͸ w 1SPUPDPM#V⒎FST͸ɺߏ଄ԽσʔλΛγϦΞϥΠζ͢ΔͨΊͷॊೈͰ ޮ཰తͳࣗಈԽϝΧχζϜɻ w ߏ଄Խσʔλ w *OUFSGBDF%FpOJUJPOMBOHVBHF *%-

    ʹΑΓఆٛ͢Δɻ w γϦΞϥΠζ w ެࣜͰఏڙ͞Ε͍ͯΔπʔϧɺ*%-Ͱఆٛͨͨ͠͠σʔλߏ଄͔ Βίʔυੜ੒Λߦ͏ɻ w ੜ੒͞ΕͨίʔυΛݩʹެࣜϥΠϒϥϦΛ༻͍ͯγϦΞϥΠζɺ σγϦΞϥΠζ͢Δɻ w ༷ʑͳݴޠʹରԠ͍ͯ͠Δ w $ $ %BSU (P +BWB 1ZUIPO
  7. 7 ओͳར༻ྫ w (31$ w QSPUPDŠHP@PVUQMVHJOTHSQDQSPUPVTFSQSPUP

  8. 8 ओͳར༻ྫ w (31$ w QSPUPDŠHP@PVUQMVHJOTHSQDQSPUPVTFSQSPUP w ੜ੒͞ΕΔίʔυ

  9. 9 ओͳར༻ྫ w (31$ w QSPUPDŠHP@PVUQMVHJOTHSQDQSPUPVTFSQSPUP w ੜ੒͞ΕΔίʔυ w ࣮૷͢Δίʔυ

    w ੜ੒͞ΕͨΠϯλʔϑΣʔεʹ͋Θ࣮ͤͯ૷Λ༻ҙ͢Δͱɺ SFRVFTUͷγϦΞϥΠζΛࣗಈͰͨ͠ޙɺ࣮૷ͨ͠ϝιουΛ࣮ߦ ͯ͘͠ΕΔ
  10. 10 ਤࣔ ωοτϫʔΫ (31$Ͱૹ৴͞ΕͨσʔλΛ ߏ଄ମʹϚοϐϯά ؔ਺࣮ߦ ΫϥΠΞϯτ ։ൃऀ͸௨৴ϓϩτίϧʹґଘͨ͠ ίʔυΛॻ͔ͳ͍ͰࡁΉ QSPUPDͷ

    HSQDϓϥάΠϯ QSPUPϑΝΠϧ εΩʔϚ αʔό ։ൃ؀ڥ ಡΈࠐΈ σϓϩΠ
  11. 11 1SPUPDPM#V⒎FSTͷޡղ w (31$ͱҰॹʹ࢖Θͳ͚Ε͹͍͚ͳ͍ w ❌ w 1SPUPDPM#V⒎FST͸ɺ(31$͔Βಠཱͨ͠࢓༷ͱπʔϧͰ͋Δ w ⭕

    w ʮεΩʔϚఆٛ͸͍͚ͨ͠Ͳ)551ͱҟͳΔͱ͜Ζ͕͋ΔͷͰ(31$ ͷ࠾༻͕೉͍͠ʯ w ❌ w εΩʔϚఆٛΛͯ͠ɺ)551ͷ#PEZʹ1SPUPDPM#V⒎FSTΛ৐ͤͯૹΔ ͜ͱ͕Ͱ͖Δ w ߋʹεΩʔϚͱͯ͠͸QSPUPϑΝΠϧΛ࢖͍ɺ)551ͷ#PEZʹ+40/Λ ৐ͤͯૹΔ͜ͱ΋Ͱ͖Δ w ͭ·Γ+40/εΩʔϚͷ୅ସͱͯ͠࢖͏͜ͱ΋Մೳ
  12. 12 )551Ͱͷ1SPUPDPM#V⒎FSTͷར༻QSPUPCVGΛૹΔ w εΩʔϚఆٛΛͯ͠ɺ)551ͷ#PEZʹ৐ͤͯૹड৴Ͱ͖Δ w )551ϋϯυϥΛࣗ෼Ͱ࣮૷ͯ͠(31$ͱಉ༷ͷϝιουΛ࣮ߦ w +40/31$΍3&45ͩͬͨΒ౰ͨΓલʹ΍͍ͬͯΔ͜ͱ w +40/31$΍3&45ͷ#PEZ͚ͩม͑Δ͜ͱ΋Ͱ͖Δ

    )551ϦΫΤετͷ#PEZΛSFBE QSPUPͷϥΠϒϥϦͰσγϦΞϥΠζ ࣮૷ͨ͠ϝιουΛ࣮ߦ ฦΓ஋ΛγϦΞϥΠζͯ͠ૹ৴
  13. 13 )551Ͱͷ1SPUPDPM#V⒎FSTͷར༻+40/ΛૹΔ w ઌ΄ͲͷQSPUPͱ΄΅ಉ౳ʹ+40/΋γϦΞϥΠζͰ͖Δ w +40/ͱͯ͠γϦΞϥΠζ͢Δίʔυ w ௨ৗͷKTPOύοέʔδͰ͸ͳ͘ɺKTPOQCύοέʔδΛར༻͢Δ w +40/ͱ1SPUPDPM#V⒎FSTͷ૬ޓม׵͸࢓༷ͱͯ͠ఆΊΒΕ͍ͯΔͨ

    Ίɺͦͷ࢓༷ʹଇ࣮ͬͨ૷ͱͳ͍ͬͯΔ w IUUQTEFWFMPQFSTHPPHMFDPNQSPUPDPMCV⒎FSTEPDT QSPUPKTPO ࣮૷ͨ͠ϝιουΛ࣮ߦ KTPOQCͰσγϦΞϥΠζ KTPOQCͰγϦΞϥΠζͯ͠ૹ৴
  14. 14 )551Ͱͷ1SPUPDPM#V⒎FSTͷར༻ w ͱ͸͍͑ɺҎԼͷΑ͏ͳίʔυΛ"1*͝ͱʹ৑௕ʹॻ͔ͳ͚Ε͹͍͚ ͳ͍ͷ͸໘౗ w ࣗಈੜ੒͍ͨ͠ʜ ΋͠(FU6TFS"1*͕ ૿͑ͯ΋มΘΔՕॴ͸গͳ͍

  15. 15 (31$ͱಉ༷ʹ)551 +40/PSQSPUP ϓϥάΠϯΛ࡞Ε͹ྑ͍ ωοτϫʔΫ )551Ͱૹ৴͞ΕͨσʔλΛ ߏ଄ମʹϚοϐϯά ؔ਺࣮ߦ ΫϥΠΞϯτ ։ൃऀ͸௨৴ϓϩτίϧʹґଘͨ͠

    ίʔυΛॻ͔ͳ͍ͰࡁΉ QSPUPDͷ IUUQϓϥάΠϯ QSPUPϑΝΠϧ εΩʔϚ αʔό ։ൃ؀ڥ ಡΈࠐΈ σϓϩΠ $POUFOU5ZQFʹΑͬͯ QSPUPͱKTPO੾Γସ͑ΔͳͲ΋Մೳ
  16. 16 ͦͷଞͷࣗಈੜ੒ w ΫϥΠΞϯτͷ3FQPTJUPSZͷ࣮૷

  17. 17 w σόοά༻ͷ1PTUNBOͷઃఆ ͦͷଞͷࣗಈੜ੒

  18. 18 ࣗಈੜ੒ w ೉ͦ͠͏ʜ

  19. 19 ࣗಈੜ੒͸೉͍͠ʁ w ࣗಈੜ੒͢ΔͨΊʹඞཁͳ஋ αʔϏε໊ ϝιου໊ ϦΫΤετͷܕ Ϩεϙϯεͷܕ

  20. 20 ࣗಈੜ੒͸؆୯͔΋ w αʔϏε໊ɺϝιου໊ɺϦΫΤετͷܕɺϨεϙϯεͷܕ͑͞ɺऔ ಘͰ͖Ε͹୯७ͳQSJOUGͰ໨తͷίʔυ͕ੜ੒Ͱ͖ͦ͏

  21. 21 ͸͡Ίʹ·ͱΊ w ඞཁͳ஋͑͞1SPUPDPM#V⒎FSTͷ*%-Ͱ͋ΔQSPUPϑΝΠϧ͔ΒऔಘͰ ͖Ε͹ɺࣗಈੜ੒Ͱ͖ͦ͏ͳ͜ͱ͕Θ͔Γ·ͨ͠ w ଓ͍ͯɺͲͷΑ͏ʹQSPUPϑΝΠϧΛύʔε͍͔ͯ͘͠Λ঺հ͠· ͢ɻ

  22. • ͸ ͡ Ί ʹ • . p r o

    t o ϑ Ν Π ϧ ͷ ύ ʔ ε ͱ ར ༻ • Ԡ ༻ ฤ • p r o t o ϑ Ν Π ϧ Λ ύ ʔ ε ͠ ͯ ͍ Δ π ʔ ϧ • · ͱ Ί
  23. 23 QSPUPϑΝΠϧͷύʔε w QSPUPϑΝΠϧΛύʔεͱ࣮૷͢Δखஈ͸͍͔ͭ͘ଘࡏ͠·͢ w QSPUPDΛར༻ͯ͠ύʔεͯ͠QMVHJOΛ࡞੒͢Δ w QSPUPDΛར༻ͯ͠ύʔεͯ͠ಠࣗͷπʔϧΛ࡞੒͢Δ w αʔυύʔςΟͷϥΠϒϥϦͰύʔεͯ͠ಠࣗͷπʔϧΛ࡞੒͢Δ

  24. 24 QSPUPϑΝΠϧͷύʔε w QSPUPDΛར༻ͯ͠ύʔεͯ͠QMVHJOΛ࡞੒͢Δ w QSPUPDΛར༻ͯ͠ύʔεͯ͠ಠࣗͷπʔϧΛ࡞੒͢Δ w αʔυύʔςΟͷϥΠϒϥϦͰύʔεͯ͠ಠࣗͷπʔϧΛ࡞੒͢Δ

  25. 25 QSPUPDQMVHJOΛ࡞੒͢Δ w Ұ൪ͷਖ਼߈๏Ͱ͢ w QSPUPDͱ͸ɺ1SPUPDPM#V⒎FST͕ެࣜʹఏڙ͢ΔίϚϯυϥΠϯπʔ ϧͰ͢ɻ w QSPUPDʹ͸ϓϥάΠϯػߏ͕౥ࡌ͞Ε͓ͯΓɺ࣮ߦ࣌ʹॴఆͷҾ਺Λ ౉͢ͱϓϥάΠϯʹύʔεͨ݁͠ՌΛ౉ͯ͘͠Ε·͢ɻ

    w ϓϥάΠϯࣗମ͸ผ్࣮ߦՄೳͳܗࣜͱͯ͠࡞Δඞཁ͕͋Γ·͢ɻ w ྫ QSPUPDHFOHPIUUQϓϥάΠϯΛ࡞੒ͨ͠৔߹ w QSPUPDHPIUUQ@PVU QSPUP
  26. 26 QSPUPDQMVHJOͷύʔεͨ݁͠Ռͷड͚औΓํ w QSPUPDϓϥάΠϯ͸ඪ४ೖྗͰύʔεͨ݁͠ՌΛड͚औΓ·͢ɻ w ͜ͷͱ͖ύʔεͨ݁͠Ռ͸ɺ1SPUPDPM#V⒎FSTͱͯ͠γϦΞϥΠζ͞Ε ͍ͯΔͷͰɺQMVHJO$PEF(FOFSBUPS3FRVFTUͱͯ͠σγϦΞϥΠζ͠ ·͢ɻ w ͋ͱ͸ύʔεͨ݁͠ՌΛݩʹQMVHJO$PEF(FOFSBUPS3FTQPOTFΛ࡞੒

    ͢Δ
  27. 27 QSPUPDQMVHJOͷϨεϙϯε w QMVHJO$PEF(FOFSBUPS3FTQPOTFͷத਎͸ɺ QMVHJO$PEF(FOFSBUPS3FTQPOTF@'JMFͷ഑ྻΛ͍࣋ͬͯΔɻ w QMVHJO$PEF(FOFSBUPS3FTQPOTF w /BNF͸ग़ྗ͢ΔϑΝΠϧ໊ w

    $POUFOU͸ϑΝΠϧͷத਎
  28. 28 QSPUPDQMVHJOͷύʔεͷ໰୊఺ w ਖ਼߈๏ͳ΍ΓํͳͷͰ͕͢QSPUPDͷύʔεͨ݁͠Ռ͕গ͠࢖͍ʹ͍͘ w .FUIPE͕࣋ͭ*OQVU5ZQFͱ0VUQVU5ZQF͕࣮ࡍʹܕ৘ใΛ͍࣋ͬͯ ΔΘ͚Ͱ͸ͳ͘ɺܕͷ໊લΛจࣈྻͰ͍࣋ͬͯΔ͚ͩͰ͢ɻ w ܕ৘ใΛ࢖͍͍ͨ৔߹͸ɺ·ͨผͷ৔ॴ͔Βదٓऔಘ͢Δඞཁ͕ ͋Δ

  29. 29 QSPUPϑΝΠϧͷύʔε w QSPUPDΛར༻ͯ͠ύʔεͯ͠QMVHJOΛ࡞੒͢Δ w QSPUPDΛར༻ͯ͠ύʔεͯ͠ಠࣗͷπʔϧΛ࡞੒͢Δ w αʔυύʔςΟͷϥΠϒϥϦͰύʔεͯ͠ಠࣗͷπʔϧΛ࡞੒͢Δ

  30. 30 QSPUPDΛར༻ͯ͠ύʔεͯ͠ಠࣗͷπʔϧΛ࡞੒͢Δ w ͱͷҧ͍͸ϓϥάΠϯͱ࣮ͯ͠૷͠ͳ͍ͱ͍͏͜ͱͰ͢ w ͪ͜ΒͩͱQMVHJOʹൺ΂࣮ͯ૷͕୯७Ͱ͢ w ·ͨಠࣗͷίϚϯυϥΠϯπʔϧͱͯ͠࡞੒ՄೳͰ͢ w QCQBSTFS1BSTF'JMF͕ߦͳ͍ͬͯΔ͜ͱ͸ɺQSPUPDίϚϯυΛ࣮ߦ͠

    ͯඪ४ग़ྗʹύʔεͨ݁͠ՌΛग़ྗͯ͠ɺQMVHJOͱಉ͡ܗࣜͷܕʹ VONBSTIBM͍ͯ͠·͢ w QSPUPDŠEFTDSJQUPS@TFU@PVUEFWTUEPVUͰඪ४ग़ྗͰ͖Δ w QCQBSTFS͸ɺHJUIVCʹஔ͍͓͖ͯ·ͨ͠ w IUUQTHJUIVCDPNTPOBUBSEQCQBSTFS
  31. 31 QSPUPDΛར༻ͯ͠ύʔε͢Δ໰୊఺ w QMVHJOͷͱ͖ͱ͸࣮ߦํ๏͕ҟͳΔ͚ͩͰɺύʔεͨ݁͠Ռ͕ѻ͍ͮ Β͍͜ͱ͸มΘΓ·ͤΜɻ w ࠷ऴతͳग़ྗʹ͍ͭͯ͸ɺQMVHJOͷΑ͏ʹಛผͳػߏ͕͋ΔΘ͚Ͱ͸ ͳ͍ͷͰࣗ༝Ͱ͢ɻ w ̍ϑΝΠϧͳΒ୯७ʹQSJOUG͢Δɻ

    w ෳ਺ϑΝΠϧͳΒదٓϑΝΠϧʹॻ͖ࠐΉ w ͳͲ
  32. 32 QSPUPϑΝΠϧͷύʔε w QSPUPDΛར༻ͯ͠ύʔεͯ͠QMVHJOΛ࡞੒͢Δ w QSPUPDΛར༻ͯ͠ύʔεͯ͠ಠࣗͷπʔϧΛ࡞੒͢Δ w αʔυύʔςΟͷϥΠϒϥϦͰύʔεͯ͠ಠࣗͷπʔϧΛ࡞੒͢Δ

  33. 33 αʔυύʔςΟͷϥΠϒϥϦͰύʔεͯ͠ಠࣗͷπʔϧΛ࡞੒͢Δ w KIVNQQSPUPSFqFDUͱ͍͏ڊେͳϥΠϒϥϦ͕ଘࡏ͠·͢ w ެࣜͷύʔαΑΓ΋ػೳ͕ଟ͍Ͱ͢ w ͨͩ͠ύʔεͷํ๏΋ɺύʔεͨ݁͠Ռͷܕ΋ҟͳΔͨΊɺQMVHJOͱ ͯ͠ར༻͢Δ͜ͱ͸Ͱ͖ͣɺಠࣗͷίϚϯυϥΠϯπʔϧͱͯ͠࡞Δ ͜ͱʹͳΓ·͢ɻ

    w ࢲ͸͜ΕΛར༻ͯ͠։ൃ͍ͯ͠ΔͷͰɺύʔεͨ݁͠ՌΛͲͷΑ͏ʹ ར༻͍͔ͯ͘͠Λ۩ମతʹઆ໌͍͖ͯ͠·͢
  34. 34 KIVNQQSPUPSFqFDUΛར༻ͨ͠ύʔεͷํ๏ w IUUQTHJUIVCDPNKIVNQQSPUPSFqFDU w ύʔεͷํ๏͸ઌ΄Ͳͱ͋·ΓมΘΓ·ͤΜ

  35. 35 ύʔεͨ͠ࡍͷ໰୊఺͸ղܾ͍ͯ͠Δ w ઌ΄Ͳ͸.FUIPE͕࣋ͭϦΫΤετͱϨεϙϯεͷܕ໊͕લ͚ͩͰ৘ ใΛ͍࣋ͬͯͳ͍ͨΊ࢖͍ʹ͍͘ͱ͍͏͓࿩Λ͠·ͨ͠ w ͪ͜ΒͷϥΠϒϥϦ͸ͦͷ໰୊͕ղܾ͍ͯ͠·͢ɻ w TUSJOHͰ͸ͳ͘.FTTBHF%FTDSJQUPSΛ࣋ͭ w

    தʹ͸'JFMEͷ৘ใͳͲ΋ؚ·ΕΔ
  36. 36 ͜ͷϥΠϒϥϦ͸࢖͏΂͖͔ w ศརͱ͸͍͑αʔυύʔςΟ͸ͪΐͬͱʜͱࢥΘΕΔͱࢥ͍·͕͢ɺ QSPUPCVGͷ(P࣮૷͸Wͷ։ൃ͕ਐΊΒΕ͓ͯΓɺͦͪΒ͸͜ͷϥΠϒ ϥϦΛࢀߟʹͯ͠࡞ΒΕͨͷͰ͸ͳ͍͔ͱ͍͏ܗ੻͕ݟΒΕ·͢ w QSPUPCVGWͷQSPUPSFqFDU͸ɺKIVNQQSPUPSFqFDUͱͱͯ΋ࣅ͍ͯΔ ΠϯλʔϑΣʔεΛ͍ͯ͠Δ͜ͱ͕Θ͔Γ·͢ w

    ͦͷͨΊ͜ͷπʔϧͷֶͼ͸ɺΉ͠Ζࠓޙʹੜ͖ͯ͘ΔՄೳੑ͕ߴ͍ Ͱ͢
  37. 37 1SPUPDPM#V⒎FST։ൃϦϙδτϦ w ݱࡏར༻͞Ε͍ͯΔW w IUUQTHJUIVCDPNQSPUPDPMCV⒎FSTQSPUPCVG w W w IUUQTHJUIVCDPNQSPUPDPMCV⒎FSTQSPUPCVGHP

  38. 38 KIVNQQSPUPSFqFDUΛར༻ͨ͠ύʔεͷίʔυ w ࣮ࡍʹύʔεͨ͠஋͔ΒίʔυΛॻ͍ͯΈΔ w ҎԼͷΑ͏ͳ5ZQF4DSJQUͷΫϥΠΞϯτΛࣗಈੜ੒͢ΔίʔυΛॻ͘

  39. 39 KIVNQQSPUPSFqFDUΛར༻ͨ͠ύʔεͷίʔυ w ίʔυ͸͜Ε͚ͩͰ͢ w JNQPSU΍εϖʔε߹Θͤͯ΋ߦ ύʔε ੜ੒ ग़ྗ ίʔυͷςϯϓϨʔτ

  40. 40 KIVNQQSPUPSFqFDUΛར༻ͨ͠ύʔεͷίʔυͷ࣮૷ৄࡉ w ύʔεͨ݁͠Ռͷར༻ w ࣮ߦ݁Ռ ύʔεͨ݁͠Ռʹ͸ෳ਺ͷϑΝΠϧͷ৘ใ ϑΝΠϧͷதʹ͸ෳ਺ͷαʔϏε αʔϏεͷதʹ͸ෳ਺ͷϝιου αʔϏε໊ɺϝιου໊ɺ

    ϦΫΤετλΠϓ໊ɺ ϨεϙϯελΠϓ໊
  41. 41 αʔυύʔςΟͷϥΠϒϥϦͰύʔεͯ͠ಠࣗͷπʔϧΛ࡞੒͢Δ·ͱΊ w KIVNQQSPUPSFqFDUΛ࢖͑͹؆୯ʹίʔυͷࣗಈੜ੒͕Ͱ͖Δ

  42. • ͸ ͡ Ί ʹ • . p r o

    t o ϑ Ν Π ϧ ͷ ύ ʔ ε ͱ ར ༻ • Ԡ ༻ ฤ • p r o t o ϑ Ν Π ϧ Λ ύ ʔ ε ͠ ͯ ͍ Δ π ʔ ϧ • · ͱ Ί
  43. 43 Ԡ༻ฤ w Ԡ༻ฤHPPHMFBQJ)UUQ w Ԡ༻ฤQSPUP͔ΒKTPOΛੜ੒

  44. 44 Ԡ༻ฤ w QSPUPͷύʔεΛ͔ͯͦ͜͠Β)551ΫϥΠΞϯτΛੜ੒͠·͕ͨ͠ɺ ࣮͸QSPUP͔Β)551ͷม׵ʹ͸࢓༷͕ࡦఆ͞Ε͓ͯΓɺઌ΄Ͳͷ࣮૷ ͸ͦͷ࢓༷ʹଇ͍ͬͯΔΘ͚Ͱ͸͋Γ·ͤΜɻ w ࣾ಺πʔϧͰಛఆ༻్ʹ࢖͏ͷʹ͸े෼Ͱ͕͢ɺ֎෦πʔϧͱ͠ ͯެ։͢ΔͳΒۃྗ࢓༷ʹै͏΂͖Ͱ͢ w

    HPPHMFBQJ)UUQ3VMF w (31$ͱ)551ϝιουͷม׵͸ɺ(PPHMF͕نఆ͍ͯ͠Δ w ͜Ε͸༗໊ͳHSQDHBUFXBZͰ΋ར༻͍ͯ͠Δ࢓༷ w IUUQTDMPVEHPPHMFDPNFOEQPJOUTEPDTHSQDTFSWJDFDPOpH SFGFSFODFSQDHPPHMFBQJIUUQSVMF w ͜ͷ࢓༷ʹਖ਼֬ʹै͏ͱ޻਺͕େ෯ʹ૿Ճ͠·͢
  45. 45 Ԡ༻ฤHPPHMFBQJ)UUQ3VMF w HPPHMFBQJ)UUQ3VMFͰ͸31$ΛͲͷΑ͏ͳ)551ͷϦΫΤετʹରԠ ͤ͞Δ͔Λॻ͘͜ͱ͕Ͱ͖·͢ w HSQDHBUFXBZͳͲ΋͜ͷ࢓༷Λ࠾༻͍ͯ͠·͢ w ઌ΄Ͳ࡞੒ͨ͠πʔϧ͸ɺҎԼͷΑ͏ʹඞͣQPTUੜ੒͞Ε·͢ɻ w

    ্هͷΑ͏ʹɺQPTUͱͳ͍ͬͯΕ͹໰୊͋Γ·ͤΜ͕ɺ΋͠HFUͱ ͳ͍ͬͯΔͱؒҧͬͨίʔυΛग़ྗͯ͠͠·͍·͢
  46. 46 Ԡ༻ฤHPPHMFBQJ)UUQ3VMF w HPPHMFBQJ)UUQ3VMF͸ɺ1SPUPDPM#V⒎FSTͷPQUJPOͱ͍͏࢓༷ʹجͮ ͖ఆٛ͞Ε͍ͯ·͢ɻ w ͜ͷPQUJPOͷ࢓༷΋QSPUPϑΝΠϧͰఆٛ͞Ε͓ͯΓɺͦͷQSPUP͔Β ੜ੒͞ΕͨίʔυΛར༻͢Δ͜ͱͰύʔε͕ՄೳʹͳΓ·͢ɻ w ఆٛ͞ΕͨQSPUPϑΝΠϧ͸ҎԼʹଘࡏ͠·͢

    w IUUQTHJUIVCDPNHPPHMFBQJTHPPHMFBQJTCMPCNBTUFS HPPHMFBQJBOOPUBUJPOTQSPUP w QSPUPϑΝΠϧ͔Βੜ੒͞Εͨ(Pͷιʔείʔυ͸ҎԼʹଘࡏ͠·͢ w IUUQHPPHMFHPMBOHPSHHFOQSPUPHPPHMFBQJTBQJBOOPUBUJPOT
  47. 47 Ԡ༻ฤHPPHMFBQJ)UUQ3VMF w HPPHMFBQJ)UUQ3VMFʹج͖ͮQSPUPϑΝΠϧΛมߋ͠·͢ JNQPSUͷ௥Ճ PQUJPOͷ௥Ճ HFUΛࢦఆ

  48. 48 Ԡ༻ฤHPPHMFBQJ)UUQ3VMF w HPPHMFBQJ)UUQ3VMFʹج͖ͮύʔε͢ΔίʔυΛมߋ͠·͢ NFUIPEΛՄมʹ͢Δ NFUIPE͔ΒIUUQ.FUIPEΛ औಘͯ͠DSFBUF.FUIPEʹ౉͢

  49. 49 Ԡ༻ฤHPPHMFBQJ)UUQ3VMF w QSPUPͷNFUIPE͔Β)551ͷϝιου໊Λऔಘ PQUJPOΛऔಘͯ͠ɺ BOOPUBUJPOT&@)UUQΛ ࣋ͭ͜ͱΛ֬ೝ BOOPUBUJPOT&@)UUQͷ FYUFOTJPOΛऔಘ FYUFOTJPOΛ

    BOOPUBUJPOT)UUQͷܕʹม׵ IUUQ3VMF͔Β )551ϝιου໊Λऔಘ
  50. 50 Ԡ༻ฤHPPHMFBQJ)UUQ3VMF w )5513VMFͷܕ͔Β)551ϝιουͷ໊લΛऔಘ IUUQ3VMF͔Βϝιου໊Λฦ͢

  51. 51 Ԡ༻ฤHPPHMFBQJ)UUQ3VMF w HPPHMFBQJ)UUQ3VMFʹج͖ͮύʔε͢ΔίʔυΛ࣮ߦ ϝιου͕QSPUPͷࢦఆͨ͠௨Γ HFUʹͳ͍ͬͯΔ

  52. 52 Ԡ༻ฤHPPHMFBQJ)UUQ3VMF w ޻਺͕େ෯ʹ૿͑Δͱݴ͏ׂʹࢥͬͨΑΓେมͰ͸ͳ͔ͬͨ  w )UUQ3VMFͷ࢓༷͸͜Ε͚ͩͰ͸ͳ͍ w ͜ΜͳPQUJPO΋ॻ͚ͯ͠·͏ʜ w

    ະରԠͳ࢓༷͸υΩϡϝϯτʹهࡌ͠·͠ΐ͏ ͭͷ31$ʹෳ਺ͷ)551ϦΫΤετ CPEZͷํΛϦΫΤετͷ ಛఆͷϑΟʔϧυʹ௚઀Ϛοϐϯά ͦͷଞʹ΋ύεύϥϝʔλɺ ΫΤϦʔετϦϯάͳͲ
  53. 53 Ԡ༻ฤ w Ԡ༻ฤHPPHMFBQJ)UUQ w Ԡ༻ฤQSPUP͔ΒKTPOΛੜ੒

  54. 54 Ԡ༻ฤ w QSPUP͔Β1PTUNBOͷKTPOͷϦΫΤετύϥϝʔλΛੜ੒͢Δ w ؆୯ʹͰ͖ͦ͏ͰɺͰ͖ͳ͍ύλʔϯ w ՝୊ w (Pͷ$SFBUF6TFS3FRVTUߏ଄ମ͕͋Ε͹ɺ+40/͸ੜ੒Ͱ͖Δ

    w ύʔεͨ࣌͠఺Ͱ͸(Pͷߏ଄ମͱͯ͠$SFBUF6TFS3FRVFTU͸ੜ੒ ͞Ε͍ͯͳ͍ɻී௨͸ҎԼͷϑϩʔ͕ඞཁʹͳΔ w ύʔεɺ(PͷϑΝΠϧग़ྗɺग़ྗͨ͠ϑΝΠϧͷϏϧυ͢Δ w ͭ·Γύʔεͨ͠ஈ֊Ͱ͸ɺ+40/Λ࡞Δ͜ͱ͸೉͍͠
  55. 55 Ԡ༻ฤ w KIVNQQSPUPSFqFDUͷEZOBNJDύοέʔδͰղܾ w EZOBNJDύοέʔδ͸ɺQSPUPΛύʔεͨ͠৘ใ͔Βಈతʹ .FTBTHFΛੜ੒Ͱ͖Δ Ҿ਺ͷܕ͔Βಈతʹ.FTTBHFΛ࡞੒ .FTTBHFΛNBSTIBMՄೳ ࣮ߦ݁Ռ

  56. 56 Ԡ༻ฤ w DSFBUF3FRVFTU.FTTBHFʹ͸໰୊͕࢒͍ͬͯΔ w .FTTBHF͕.FTTBHFΛؚΜͰ͍Δ৔߹ʹOVMMʹͳͬͯ͠·͏ ࣮ߦ݁Ռ͕OVMM .FTTBHFͷதʹ.FTTBHF͕͋Δ৔߹

  57. 57 Ԡ༻ฤ w .FTBTHFΛ࠶ؼతʹੜ੒͢Δ ࣮ߦ݁Ռ͕ద੾ʹදࣔ ͢΂ͯͷϑΟʔϧυΛνΣοΫ ϑΟʔϧυ͕ .FTTBHFͳΒ࠶ؼͰɺ .FTTBHFΛ࡞੒ ࡞੒ͨ͠ϑΟʔϧυͷ.FTTBHF

    Λ਌ͷ.FTTBHFʹઃఆ
  58. • ͸ ͡ Ί ʹ • . p r o

    t o ϑ Ν Π ϧ ͷ ύ ʔ ε ͱ ར ༻ • Ԡ ༻ ฤ • p r o t o ϑ Ν Π ϧ Λ ύ ʔ ε ͠ ͯ ͍ Δ π ʔ ϧ • · ͱ Ί
  59. 59 1SPUPDPM#V⒎FSTΛύʔε͍ͯ͠Δπʔϧ঺հ w HSQDHBUFXBZIUUQTHJUIVCDPNHSQDFDPTZTUFNHSQDHBUFXBZCZZVHVJ͞Μ w HPPHMFBQJ)UUQ3VMFΛ࢓༷௨Γʹύʔε͢Δؾ֓͋Δํ͸ࢀߟʹͳΔ w FWBOTIUUQTHJUIVCDPNLUSFWBOTCZLUS͞Μ w (31$DMJFOU

    w $-*Ϟʔυͱ3&1-Ϟʔυ͕͋Δɺ3&1-ϞʔυͰ͸ಈతʹิ׬͕ޮ͘ w KIVNQQSPUPSFqFDUΛ࠾༻ w QSPUPDHFOHPIUUQIUUQTHJUIVCDPNOBNFUBLFQSPUPDHFOHPIUUQCZOBNFUBLF ͞Μ w (31$ͱಉ͡ίʔυࣗಈੜ੒Λ)551Ͱ΋࣮ݱ͢ΔQSPUPDϓϥάΠϯ w $POUFOU5ZQFʹ͋Θͤͯ+40/PS1SPUP͔൑ఆͯ͠σγϦΞϥΠζ͢Δ w IUUQTHJUIVCDPNQTFVEPNVUPQSPUPLJUΛ࠾༻ w QSPUPUPQPTUNBOIUUQTHJUIVCDPNTPOBUBSEQSPUPUPQPTUNBOCZTPOBUBSE w QSPUP͔ΒQPTUNBOͷઃఆΛɺJNQPSUՄೳͳKTPOܗࣜͰग़ྗ͢Δ w KIVNQQSPUPSFqFDUΛ࠾༻
  60. 60 QSPUPDϓϥάΠϯࢀߟ w QSPUPDϓϥάΠϯͷॻ͖ํ w IUUQTRJJUBDPNZVHVJJUFNTEEEFFF w QSPUPDϓϥάΠϯͱΧελϜΦϓγϣϯ w IUUQTRJJUBDPNZVHVJJUFNT

    BEFGBCGGBDD@SFGFSFODFFCBDDBD
  61. • ͸ ͡ Ί ʹ • . p r o

    t o ϑ Ν Π ϧ ͷ ύ ʔ ε ͱ ར ༻ • Ԡ ༻ ฤ • p r o t o ϑ Ν Π ϧ Λ ύ ʔ ε ͠ ͯ ͍ Δ π ʔ ϧ • · ͱ Ί
  62. 62 ·ͱΊ w 1SPUPDPM#V⒎FST͸͸γϦΞϥΠθʔγϣϯπʔϧͰ͋Γ*%-Ͱ΋͋Δ w (31$ʹґଘͤͣʹར༻Ͱ͖Δ w ύʔε͢Δํ๏͸ෳ਺͋Δ͕ɺ͓͢͢Ί͸KIVNQQSPUPSFqFDU w (PͷQSPUPCVGͷ࣮૷͸Wͷ։ൃ͕ਐΊΒΕ͓ͯΓKIVNQQSPUPSFqFDUͷ

    ӨڹΛड͚͍ͯΔ w ࣾ಺༻Ͱ͋Ε͹ɺؾܰʹίʔυੜ੒Ͱ͖Δ w πʔϧΛ֎෦ͱͯ͠ެ։ͯ͠ɺ͢΂ͯͷ࢓༷ʹରԠ͠Α͏ͱ͢Δͱ೉қ ౓্͕͕Δ