Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ScalazでウェブアプリもCHA-LA HEAD-CHA-LA

ScalazでウェブアプリもCHA-LA HEAD-CHA-LA

2016/12/02に開催された「Better Javaの一歩先へ! Scalaリファクタリング入門」で使用された発表資料です。

Tatsuya Iwamatsu

December 02, 2016
Tweet

More Decks by Tatsuya Iwamatsu

Other Decks in Programming

Transcript

  1. )3.04࠾༻؅ཧ ٕज़ελοΫ ٻਓ࡞੒ Ԡืऀ؅ཧ ίϛϡχέʔγϣϯ ਐḿ؅ཧ ΞφϦςΟΫε 4DBMB 1ZUIPO 3FBDU

    4MJDL 4DBMB[ /HJOY &MBTUJDTFBSDI 3FEJT "OTJCMF -BNCEB 4MBDL $IBU0QT  .BDLFSFM 'MVFOUE (JU)VC $POqVFODF 5ZQFTDSJQU 1MBZGSBNFXPSL "OHVMBS 4DBMJLF+%#$ "LLB .Z42- .FNDBDIFE %PDLFS $MPVE'SPOU +FOLJOT /FX3FMJD 4FOUSZ ,JCBOB +*3" (PPHMF%SJWF
  2. ແҹ࣌୅ͷ஥ؒͨͪ DBTFDMBTT-PHJO  FNBJM4USJOH  QBTTXPSE4USJOH  MPHJO'PSN0QU0QUJPO<-PHJO> MPHJO'PSN0QUNBUDI\ DBTF4PNF

    MPHJO'PSN  ϩάΠϯॲཧ DBTF@ 501ϖʔδʹ໭͢ ^ ΫϥΠΞϯτ͔Βͷύϥϝʔλ͕ଘࡏ͠ͳ͍͔΋
  3. ແҹ࣌୅ͷ஥ؒͨͪ ͋ΒΏΔૢ࡞͕͜ͳͤΔٕͷσύʔτ 4FR       

    HSPVQ#Z @ ح਺ɺۮ਺Ͱάϧʔϓ෼͚ qBU.BQ\ϦετΛ৞ΈࠐΈ DBTF @ MJTU MJTUNBQ @UP4USJOH จࣈྻͷϦετ΁ม׵ ^ NL4USJOH <  l>z ϦετΛจࣈྻ݁߹ <>
  4. ແҹ࣌୅ͷ஥ؒͨͪ ൺֱత࣌ؒͷ͔͔Δॲཧ͸/PO#MPDLJOHʹ ͜ͷॲཧ͸ผεϨουͰ࣮ߦ͞ΕΔ WBMVTFS''VUVSF<0QUJPO<6TFS>> SECpOE6TFS#Z/BNF lؠদཽ໵z  WBMMPHT''VUVSF<4FR<-PH>> LWTHFU-PHT 

    ࣮ߦॲཧ݁ՌΛ଴ͨͳ͍ MPHT'GPSFBDI MPHQSJOUMO MPH  ࣮ߦॲཧ݁ՌΛ଴ͭ WBMVTFS/BNF0QU0QUJPO<4USJOH> "XBJUSFTVMU VTFS' %VSBUJPO*OG NBQ @VTFS/BNF
  5. ແҹ࣌୅ͷ஥ؒͨͪ ੒ޭ΋͘͠͸ࣦഊͷঢ়ଶΛ࣋ͭ͜ͱ͕Ͱ͖Δ 'VUVSFBQQMZ 'VUVSFTVDDFTTGVM NBQ @  WBMG'VUVSF<*OU>'VUVSFTVDDFTTGVM  

    GBJMFE͕࣋ͯΔͷ͸5ISPXBCMFͷΈ WBMG'VUVSF<*OU>'VUVSFGBJMFE OFX&SSPS  GGPSFBDI FQSJOUMO F QSJOUMO͸࣮ߦ͞Εͳ͍ GPO$PNQMFUF\ DBTF4VDDFTT O ͪ͜Β͸࣮ߦ͞Εͳ͍ DBTF'BJMVSF F ͪ͜Β͸࣮ߦ͞ΕΔ ^
  6. ͦΕͧΕ͸ศར͕ͩʜ ͜͏͍͏ͱ͖Ͳ͏͢Δʁ ᶃ4FR<0QUJPO<*OU>>Λ4FR<*OU>ʹ͍ͨ͠ʂ ᶄ0QUJPO<4FR<*OU>>Λ4FR<*OU>ʹ͍ͨ͠ʂ ᶆ'VUVSF<4FR<*OU>>ͱ4FR<'VUVSF<*OU>>Λ߹Θͤͯ ɹ'VUVSF<4FR<*OU>>ʹ͍ͨ͠ʂ ᶅ0QUJPO<*OU>ͱ0QUJPO<*OU>Λ଍͠߹Θͤͯ ɹ0QUJPO<*OU>ʹ͍ͨ͠ʂ ᶇ&JUIFS<&SSPS *OU>ͱ&JUIFS<&SSPS

    *OU>Λ଍͠߹Θͤͯ ɹ&JUIFS<&SSPS *OU>ʹ͍ͨ͠ʂ ᶇ'VUVSF<&JUIFS<&SSPS *OU>>ͱ'VUVSF<&JUIFS<&SSPS 'VUVSF<*OU>>> ɹΛ߹Θͤͯ'VUVSF<&JUIFS<&SSPS *OU>>ʹ͍ͨ͠ʂ ఱԼҰܕήʔձ ఱԼҰܕΛ߹ΘͤΔήʔϜձ
  7. ఱԼҰܕήʔձ ୈ࢛ճઓ ᶆ&JUIFS<&SSPS *OU> &JUIFS<&SSPS *OU> ɹ&JUIFS<&SSPS *OU> WBMB&JUIFS<&SSPS *OU>3JHIU

      WBMC&JUIFS<&SSPS *OU>3JHIU   WBMD&JUIFS<&SSPS *OU>BSJHIUqBU.BQ\B7BMVF CSJHIUNBQ @ B7BMVF  ^ SJHIU͸TDBMBͰෆཁʹͳΔ༧ఆ
  8. ఱԼҰܕήʔձ ᶇ'VUVSF<4FR<*OU>> 4FR<'VUVSF<*OU>>'VUVSF<4FR<*OU>> WBMB'VUVSF<4FR<*OU>>'VUVSFTVDDFTTGVM 4FR     WBMC4FR<'VUVSF<*OU>>4FR

    'VUVSFTVDDFTTGVM   WBMD'VUVSF<4FR<*OU>>'VUVSFTFRVFODF B qBU.BQ\B4FR CNBQ B4FR @  ^ ୈޒճઓ 'VUVSFTFRVFODF͕ศར
  9. WBMB'VUVSF<&JUIFS<&SSPS *OU>>'VUVSFTVDDFTTGVM 3JHIU   WBMC'VUVSF<&JUIFS<&SSPS 'VUVSF<*OU>>> 'VUVSFTVDDFTTGVM 3JHIU 'VUVSFTVDDFTTGVM

     ఱԼҰܕήʔձ ᶈ'VUVSF<&JUIFS<&SSPS *OU>> 'VUVSF<&JUIFS<&SSPS 'VUVSF<*OU>>> ɹ'VUVSF<&JUIFS<&SSPS *OU>> ܾউઓ ͓·͚
  10. WBMD'VUVSF<&JUIFS<&SSPS *OU>>BqBU.BQ\B&JUIFS CqBU.BQ\C&JUIFS 'VUVSFTFRVFODF C&JUIFSSJHIUUP4FR NBQ\C4FR B&JUIFSSJHIUqBU.BQ\B7BMVF C4FRIFBE0QUJPOUP3JHIU OFX&SSPS SJHIUNBQ

    @ B7BMVF  ^ ^ ^ ^ ఱԼҰܕήʔձ ᶈ'VUVSF<&JUIFS<&SSPS *OU>> 'VUVSF<&JUIFS<&SSPS 'VUVSF<*OU>>> ɹ'VUVSF<&JUIFS<&SSPS *OU>> ܾউઓ ͓·͚
  11. ࣮ࡍͷ։ൃͱͳΔͱʜ ᶅᶆͷΑ͏ͳύλʔϯ͕ొ৔͕ͪ͠ WBMB0QUJPO<*OU>0QUJPO   WBMC0QUJPO<*OU>0QUJPO   WBMD0QUJPO<*OU>0QUJPO 

     WBME0QUJPO<*OU>0QUJPO   WBMF0QUJPO<*OU>0QUJPO   BqBU.BQ\B7BMVF CqBU.BQ\C7BMVF DqBU.BQ\D7BMVF EqBU.BQ\E7BMVF FNBQ B7BMVF C7BMVF D7BMVF E7BMVF @  ^ ^ ^ ^ DBTFDMBTT6TFS JE-POH OBNF4USJOH  EFGpOE6TFS#Z/BNF OBNF4USJOH 'VUVSF<6TFS>3%#͔Βऔಘ EFGHFU6TFS*NBHF6SM JE-POH 'VUVSF<4USJOH>֎෦αΠτ͔Βऔಘ EFGpOE6TFS-PHT JE-POH ,FZ7BMVF4UPSF͔Βऔಘ pOE6TFS#Z/BNF ؠদཽ໵ qBU.BQ\VTFS HFU6TFS*NBHF6SM VTFSJE qBU.BQ\JNBHF6SM pOE6TFS-PHT VTFSJE NBQ\MPHT  औಘͨ͠஋Λ߹੒ ^ ^ ^ ωετ஍ࠈ
  12. ΦοεʂΦϥGPSࣜʂ WBMB0QUJPO<*OU>0QUJPO   WBMC0QUJPO<*OU>0QUJPO   WBMD0QUJPO<*OU>0QUJPO  

    WBME0QUJPO<*OU>0QUJPO   WBMF0QUJPO<*OU>0QUJPO   BqBU.BQ\B7BMVF CqBU.BQ\C7BMVF DqBU.BQ\D7BMVF EqBU.BQ\E7BMVF FNBQ B7BMVF C7BMVF D7BMVF E7BMVF @  ^ ^ ^ ^
  13. ΦοεʂΦϥGPSࣜʂ WBMB0QUJPO<*OU>0QUJPO   WBMC0QUJPO<*OU>0QUJPO   WBMD0QUJPO<*OU>0QUJPO  

    WBME0QUJPO<*OU>0QUJPO   WBMF0QUJPO<*OU>0QUJPO   GPS\ B7BMVFB C7BMVFC D7BMVFD E7BMVFE F7BMVFF ^ZJFME\ B7BMVF C7BMVF D7BMVF E7BMVF F7BMVF ^
  14. ΦοεʂΦϥGPSࣜʂ DBTFDMBTT6TFS JE-POH OBNF4USJOH  EFGpOE6TFS#Z/BNF OBNF4USJOH 'VUVSF<6TFS>3%#͔Βऔಘ EFGHFU6TFS*NBHF6SM JE-POH

    'VUVSF<4USJOH>֎෦αΠτ͔Βऔಘ EFGpOE6TFS-PHT JE-POH ,FZ7BMVF4UPSF͔Βऔಘ pOE6TFS#Z/BNF ؠদཽ໵ qBU.BQ\VTFS HFU6TFS*NBHF6SM VTFSJE qBU.BQ\JNBHF6SM pOE6TFS-PHT VTFSJE NBQ\MPHT  औಘͨ͠஋Λ߹੒ ^ ^ ^
  15. ΦοεʂΦϥGPSࣜʂ DBTFDMBTT6TFS JE-POH OBNF4USJOH  EFGpOE6TFS#Z/BNF OBNF4USJOH 'VUVSF<6TFS>3%#͔Βऔಘ EFGHFU6TFS*NBHF6SM JE-POH

    'VUVSF<4USJOH>֎෦αΠτ͔Βऔಘ EFGpOE6TFS-PHT JE-POH ,FZ7BMVF4UPSF͔Βऔಘ GPS\ VTFSpOE6TFS#Z/BNF ؠদཽ໵  JNBHF6SMHFU6TFS*NBHF6SM VTFSJE  MPHTpOE6TFS-PHT VTFSJE  ^ZJFME औಘͨ͠஋Λ߹੒
  16. aͷ౗͠ํʢ࢖͍ํʣ JNQPSUTDBMB[\a a a^ <-FGUͷܕ>a<3JHIUͷܕ> WBMES&SSPSa*OUa   WBMEM&SSPSa*OUa OFX&SSPS

     ͍͖ͳΓNBQ qBU.BQ͕࢖͑Δʂ 3JHIU༏ઌ  WBMSFVTMUGPS\ ES7BMVFES EM7BMVFEM ^ZJFMEES7BMVF EM7BMVF
  17. ͳΜͱ͔উͯΔ ࢖͑Δ ͚Ͳʜ JNQPSUTDBMB[a DBTFDMBTT6TFS VTFS*E-POH VTFS/BNF4USJOH  WBMVTFS*E&''VUVSF<&SSPSa-POH> 

    WBMVTFS/BNF&''VUVSF<&SSPSa4USJOH>  WBMVTFS&''VUVSF<&SSPSa6TFS>GPS\ VTFS*E&VTFS*E&' VTFS/BNF&VTFS/BNF&' ^ZJFMEGPS\ VTFS*EVTFS*E& VTFS/BNFVTFS/BNF& ^ZJFME6TFS VTFS*E VTFS/BNF
  18. ͓෼͔Γ͍͚ͨͩͨͩΖ͏͔ʜ JNQPSUTDBMB[a DBTFDMBTT6TFS VTFS*E-POH VTFS/BNF4USJOH  WBMVTFS*E&''VUVSF<&SSPSa-POH>  WBMVTFS/BNF&''VUVSF<&SSPSa4USJOH> 

    WBMVTFS&''VUVSF<&SSPSa6TFS>GPS\ VTFS*E&VTFS*E&' VTFS/BNF&VTFS/BNF&' ^ZJFMEGPS\ VTFS*EVTFS*E& VTFS/BNFVTFS/BNF& ^ZJFME6TFS VTFS*E VTFS/BNF
  19. ͳΜ͔GPS͕ࣜΩϞ͍ JNQPSUTDBMB[a DBTFDMBTT6TFS VTFS*E-POH VTFS/BNF4USJOH  WBMVTFS*E&''VUVSF<&SSPSa-POH>  WBMVTFS/BNF&''VUVSF<&SSPSa4USJOH> 

    WBMVTFS&''VUVSF<&SSPSa6TFS>GPS\ VTFS*E&VTFS*E&' VTFS/BNF&VTFS/BNF&' ^ZJFMEGPS\ VTFS*EVTFS*E& VTFS/BNFVTFS/BNF& ^ZJFME6TFS VTFS*E VTFS/BNF 'VUVSF &JUIFS΍&JUIFS 0QUJPOͰ΋ಉ͡ࣄʹͳΓ·͢
  20. &JUIFS5Λ࢖͑͹ʜ JNQPSUTDBMB[a DBTFDMBTT6TFS VTFS*E-POH VTFS/BNF4USJOH  WBMVTFS*E&''VUVSF<&SSPSa-POH>  WBMVTFS/BNF&''VUVSF<&SSPSa4USJOH> 

    WBMVTFS&''VUVSF<&SSPSa6TFS>GPS\ VTFS*E&VTFS*E&' VTFS/BNF&VTFS/BNF&' ^ZJFMEGPS\ VTFS*EVTFS*E& VTFS/BNFVTFS/BNF& ^ZJFME6TFS VTFS*E VTFS/BNF
  21. &JUIFS5Λ࢖͑͹ʜ JNQPSUTDBMB[TUETDBMB'VUVSFGVUVSF*OTUBODF JNQPSUTDBMB[\&JUIFS5 a^ DBTFDMBTT6TFS VTFS*E-POH VTFS/BNF4USJOH  WBMVTFS*E&''VUVSF<&SSPSa-POH> 

    WBMVTFS/BNF&''VUVSF<&SSPSa4USJOH>  WBMVTFS*E&5&JUIFS5<'VUVSF &SSPS -POH>&JUIFS5 VTFS*E&'  WBMVTFS/BNF&5&JUIFS5<'VUVSF &SSPS 4USJOH>&JUIFS5 VTFS/BNF&'  WBMVTFS&5&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5 VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS VTFS*E VTFS/BNF
  22. &JUIFS5Λ࢖͑͹ʜ JNQPSUTDBMB[TUETDBMB'VUVSFGVUVSF*OTUBODF JNQPSUTDBMB[\&JUIFS5 a^ DBTFDMBTT6TFS VTFS*E-POH VTFS/BNF4USJOH  WBMVTFS*E&''VUVSF<&SSPSa-POH> 

    WBMVTFS/BNF&''VUVSF<&SSPSa4USJOH>  WBMVTFS*E&5&JUIFS5<'VUVSF &SSPS -POH>&JUIFS5 VTFS*E&'  WBMVTFS/BNF&5&JUIFS5<'VUVSF &SSPS 4USJOH>&JUIFS5 VTFS/BNF&'  WBMVTFS&5&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5 VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS VTFS*E VTFS/BNF ҰͭͷGPSࣜͰ·ͱ·ͬͨʂ
  23. &JUIFS5Λ࢖͏ͨΊʹ EFGNBQ<$> G#$ JNQMJDJU''VODUPS<'> &JUIFS5<' " $> &JUIFS5 'NBQ SVO

    @NBQ G 'VODUPS<'VUVSF>Λ༻ҙ͠Α͏ʂ JNQMJDJUQBSBNFUFSΛ༻ҙ͠ͳ͍ͱ͍͚ͳ͍
  24. 'VODUPSΛ࣮૷ ࣮͸NBQΛ࣮૷͢Δ͚ͩʂ JNQPSUTDBMB[\a &JUIFS5 'VODUPS^  DMBTT'VUVSF'VODUPSFYUFOET'VODUPS<'VUVSF>\ EFGNBQ<" #> GB'VUVSF<">

    G"# 'VUVSF<#>GBNBQ G  ^ JNQMJDJUWBMGVODUPSOFX'VUVSF'VODUPS WBMF&JUIFS5 'VUVSFTVDDFTTGVM aSJHIU   WBMFFNBQ @ 
  25. ϞφυͷྗͰԥΔ ࣮͸NBQΛ࣮૷͢Δ͚ͩʂ JNQPSUTDBMB[\a &JUIFS5 'VODUPS^  DMBTT'VUVSF'VODUPSFYUFOET'VODUPS<'VUVSF>\ EFGNBQ<" #> GB'VUVSF<">

    G"# 'VUVSF<#>GBNBQ G  ^ JNQMJDJUWBMGVODUPSOFX'VUVSF'VODUPS WBMF&JUIFS5 'VUVSFTVDDFTTGVM aSJHIU   WBMFFNBQ @  Ͱ͖ͨ ΋Χ ͬϥ ͯμ ͘ Ε Α ʂ 'VODUPS  &JUIFS5 ͩ ͬ 
  26. qBU.BQ΋࢖͍͍ͨʂ ݩؾۄ .POBE*OTUBODF Λ࡞Δඞཁ͕͋Δʂ EFGqBU.BQ<$> G#&JUIFS5<' " $> JNQMJDJU'.POBE<'> 

    &JUIFS5<' " $> &JUIFS5 'CJOE SVO @GPME B'QPJOU a B  "a$ CG C SVO ࡞ͬͯΈΑ͏ʂ
  27. qBU.BQ΋࢖͍͍ͨʂ .POBE͸৭ʑͳػೳΛ෼͚ͯ΋Β͍ͬͯΔݩؾۄతଘࡏ EFGqBU.BQ<$> G#&JUIFS5<' " $> JNQMJDJU'.POBE<'>  &JUIFS5<' "

    $> &JUIFS5 'CJOE SVO @GPME B'QPJOU a B  "a$ CG C SVO ࡞ͬͯΈΑ͏ʂ .POBE "QQMJDBUJWF #JOE "QQMZ 'VODUPS *OWBSJBOU'VODUPS
  28. .POBE*OTUBODFͷ࣮૷ 'VUVSFͰ͋Ε͹͜͏͍͏ࣄ EFGQPJOU<"> B" 'VUVSF<">\ 'VUVSFTVDDFTTGVM B  ^ EFGCJOE<"

    #> GB'VUVSF<"> G"'VUVSF<#> 'VUVSF<#>\ GBqBU.BQ G  ^ ࣮͸͜͏͍͏ࣄͰͨ͠☺
  29. .POBE*OTUBODFͷ࣮૷ DMBTT'VUVSF.POBEFYUFOET.POBE<'VUVSF>\ EFGQPJOU<"> B" 'VUVSF<">\ 'VUVSFTVDDFTTGVM B  ^ EFGCJOE<"

    #> GB'VUVSF<"> G"'VUVSF<#> 'VUVSF<#>\ GBqBU.BQ G  ^ ^ JNQMJDJUWBMNPOBEOFX'VUVSF.POBE
  30. .POBE*OTUBODFͷ࣮૷ DBTFDMBTT6TFS VTFS*E-POH VTFS/BNF4USJOH  WBMVTFS*E&''VUVSF<&SSPSa-POH>  WBMVTFS/BNF&''VUVSF<&SSPSa4USJOH>  WBMVTFS*E&5&JUIFS5<'VUVSF

    &SSPS -POH>&JUIFS5 VTFS*E&'  WBMVTFS/BNF&5&JUIFS5<'VUVSF &SSPS 4USJOH>&JUIFS5 VTFS/BNF&'  WBMVTFS&'&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5 VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS VTFS*E VTFS/BNF
  31. [FSPʜ GPSࣜ XJUI'JMUFS ͰͲ͏࢖ΘΕΔ͔ WBMVTFS&'&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5JGVTFS*E VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS

    VTFS*E VTFS/BNF GBMTFͷͱ͖Ͳ͏͢Ε͹ ͑͑Μ΍ʜ ܕ͝ͱͷॳظ஋Λ ઃఆ͓ͯ͘͜͠ͱͰ -FGUʹ΋ରԠͰ͖Δ
  32. ࣮૷ͯ͠ΈΔ DMBTT&SSPS.POPJEFYUFOET.POPJE<&SSPS>\ EFG[FSP&SSPSOFX&SSPS EFGBQQFOE G&SSPS G&SSPS &SSPS BQQFOE͸ͳͯ͘΋0, ^ JNQMJDJUWBMFSSPS.POPJEOFX&SSPS.POPJE

    WBMVTFS&'&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5JGVTFS*E- VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS VTFS*E VTFS/BNF
  33. ࣮૷ͯ͠ΈΔ DMBTT&SSPS.POPJEFYUFOET.POPJE<&SSPS>\ EFG[FSP&SSPSOFX&SSPS EFGBQQFOE G&SSPS G&SSPS &SSPS BQQFOE͸ͳͯ͘΋0, ^ JNQMJDJUWBMFSSPS.POPJEOFX&SSPS.POPJE

    WBMVTFS&'&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5JGVTFS*E- VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS VTFS*E VTFS/BNF .POPJE΋Ͱ͖ͨʂ
  34. ࣮૷ͯ͠ΈΔ DMBTT&SSPS.POPJEFYUFOET.POPJE<&SSPS>\ EFG[FSP&SSPSOFX&SSPS EFGBQQFOE G&SSPS G&SSPS &SSPS BQQFOE͸ͳͯ͘΋0, ^ JNQMJDJUWBMFSSPS.POPJEOFX&SSPS.POPJE

    WBMVTFS&'&JUIFS5<'VUVSF &SSPS 6TFS>GPS\ VTFS*EVTFS*E&5JGVTFS*E- VTFS/BNFVTFS/BNF&5 ^ZJFME6TFS VTFS*E VTFS/BNF -FGUͷύϥϝʔλ͕ ઃఆ͠ʹ͍͘ͷͰ ⚠΍Γ͗͢ʹ͸஫ҙʁ⚠ ʢҧ͏৔߹͸ɹ͍ͩ͘͞ʣ
  35. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ Ϧετ͕ۭͰ͸ͳ͍ͱ͖ʹॲཧ࣮ߦ -JTU    ?\MJTU QSJOUMO TGPPMJTU

     ^GPP/PO&NQUZ-JTU     OJM<*OU>?\MJTU QSJOUMO TCBSMJTU  ^Կ΋දࣔ͞Εͳ͍
  36. ҰํφϝοΫ੕Ͱ͸ 4DBMB[ͷྗͰજࡏೳྗΛҾ͖ग़͞Ε͍ͯͨʜʂ ৭Μͳू߹Λฦ͢ -JTU    UBJM[-JTU -JTU 

      -JTU   -JTU  -JTU  -JTU    BMM1BJST-JTU          -JTU     BEKBDFOU1BJST-JTU