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

GraphQLはどんな時に使うか

 GraphQLはどんな時に使うか

@saboyutaka
合同会社春秋
Tech Base Okinawa 2023

Yutaka Tachibana

September 23, 2023
Tweet

More Decks by Yutaka Tachibana

Other Decks in Technology

Transcript

  1. ࣗݾ঺հ w !TBCPZVUBLB ͞΅ ཱՖ๛ w ߹ಉձࣾय़ळڞಉ୅දΞʔΩςΫτ w $0%&#"4&ϓϩάϥϛϯάߨ࠲ߨࢣ w

    ෱Ԭ d ˠ౦ژ d ˠԭೄ d ೥໨  w 3VCZ 1)1 5ZQF4DSJQU 1ZUIPO w (SBQI2-3BJMT-BSBWFM5ZQF4DSJQU3FBDUKT7VFKT"[VSF "844FSWFMTTσʔλج൫
  2. ߹ಉձࣾय़ळ w ೥݄ ໊Ͱ૑ۀ w ݱࡏ໊ શһ*5ΤϯδχΞ ໊͸*5ΤϯδχΞະܦݧ͔Β࠾༻  w

    डୗ։ൃϝΠϯ 3BJMT -BSBWFM 3FBDU 7VF य़ळ w ԭೄʹ*5ΤϯδχΞΛ૿΍͢ w ਓࡐڭҭʹྗೖΕͯ·͢ w ݝ಺Ͱҟۀछ͔Βͷస৬͔Βͷ࠾༻Λ࣠ w ౦ژਫ४ͷ࢓ࣄɾڅ༩ɾ࿑ಇ؀ڥ ˞ԭೄͷڅ༩ͷதԝ஋͸ສԁ 💡 ཪͷτʔΫͰฐࣾͷ৽֞͞Μ͕ະܦݧ͔Β*5ΤϯδχΞʹస਎ͨ͠࿩ͯ͠·͢
  3. NFBOE(SBQI2- w 4PGUXBSF%FTJHO w ೥݄߸ୈಛू(SBQI2-Ͱ͔ͳ͑Δޮ཰తͳσʔλ௨৴ w ;FOO w (SBQI2-͕ղܾ͢Δ໰୊ͱͦͷઌͷϢʔεέʔε w

    2JJUB w (SBQI2-ͷಛ௃Λ෼ղ͢Δd"1*ΠϯλʔϑΣʔεɾ6OJWFSTBM#''ɾ"1* (BUFXBZd w (SBQI2-͸αʔόʔαΠυ࣮૷ͷϕετϓϥΫςΟεͱͳΔ͔ w (SBQI2-ͷશମ૾ͱ8FC"QQ։ൃͷ͜Ε͔Β w ొஃ w άϥϑϞσϧͱ4P&ͱ(SBQI2-!5&$)45"/% w αʔόʔαΠυ͔ΒݟΔ(SBQI2-!4FSWFMTT.FFUVQ
  4. ࠷ۙͷ8FCΞϓϦέʔγϣϯ w ૚ΞʔΩςΫνϟ ϨΠϠʔυΞʔΩςΫνϟ  w ࠷ۙ͸ΫϥΠΞϯτ"QQͱαʔόʔ"QQΛ෼͚࣮ͯ૷͢Δࣄ͕૿͖͑ͯͨ w ΫϥΠΞϯτͱαʔόʔ͸8FC"1*Λ௨ͯ͡σʔλͷऔಘ΍ૢ࡞Λߦ͏ ΫϥΠΞϯταʔόʔγεςϜ

    ΫϥΠΞϯτ w ར༻ऀͷ໨తΛୡ੒͢ΔͨΊͷࢧԉΛߦ͏ΞϓϦέʔγϣϯ w 1$ͷϒϥ΢β εϚʔτϑΥϯͷ"QQ εϚʔτ΢Υον౳ͷ୺຤্Ͱಈ࡞͢Δ w αʔϏεͷར༻ऀͱͷ઀఺ͱͳΔ෦෼ w ΫϥΠΞϯτ͔ΒͷϦΫΤετΛड͚औΓɺॲཧΛߦ͍ɺϨεϙϯεΛฦ͢ w ओʹ ۀ຿ υϝΠϯϩδοΫͱσʔλϕʔεͱͷ΍ΓͱΓΛ୲౰͢Δ w ϓϨθϯςʔγϣϯ૚"1*͸αʔόʔʹͱͬͯϓϨθϯςʔγϣϯ૚ʹ૬౰ αʔόʔ
  5. )551͔Βݟͨ(SBQI2- w ϦΫΤετ w 1BUIHSBQIRM w .FUIPE1045 w $POUFOU5ZQFBQQMJDBUJPOKTPO w

    Ϩεϙϯε w $POUFOU5ZQFBQQMJDBUJPOKTPO 1045HSBQIRM +40/ Ϩεϙϯε
  6. εΩʔϚͱΫΤϦ w εΩʔϚ w σʔλͷߏ଄ͱؔ࿈ɺૢ࡞Λදݱ w άϥϑߏ଄ w ΫΤϦ w

    εΩʔϚͰදݱ͞Εͨσʔλͷ෦෼Λऔಘ͢Δ w ΫϥΠΞϯτ͸ඞཁͳσʔλΛࣗ༝ʹબ୒ग़དྷΔ εΩʔϚ ΫΤϦ Ϩεϙϯε
  7. αʔϏε͕ෳࡶԽ͢Δͱ͸Ͳ͏͍͏͜ͱ͔ w ར༻ऀ͕૿͑Δ w ച্͕૿͑Δ💰 w ఏڙ͢Δػೳ͕૿͑Δ w ίʔυ͕૿͑Δ w

    σʔλ΍ૢ࡞ͷछྨ͕૿͑Δ w ωοτϫʔΫτϥϑΟοΫ͕૿͑Δ w ίϯϐϡʔςΟϯάϦιʔεͷফඅ͕૿͑Δ w ։ൃ૊৫͕େ͖͘ͳΔ w ίϛϡχέʔγϣϯͷྔ͕૿͑Δ
  8. (SBQI2-ͷλʔήοτ 8FCΫϥΠΞϯτͱαʔόʔͷ΍ΓͱΓ "1* Λޮ཰Խ͢Δ w ϒϥ΢β ωΠςΟϒΞϓϦ w ಛʹΤϯήʔδϝϯτ͕ॏཁͳ৔߹ w

    ಉظతɾΦϯϥΠϯ w ௿ϨΠςϯγ w ෆಛఆଟ਺ͷར༻ऀ ओʹ8FCΫϥΠΞϯτ λʔήοτͰ͸ͳ͍ w ඇಉظɾΦϑϥΠϯ w όονॲཧ w αʔόʔؒ࿈ܞ w ϨΠςϯγ͕͋·Γߟྀ͞Εͳ͍
  9. ωοτϫʔΫτϥϑΟοΫͷ࠷దԽ ωοτϫʔΫτϥϑΟοΫ΋๲େͳྔʹͳΔͱ͓͕͔͔ۚΔ😭 w ϦΫΤετɾϨεϙϯεͷूੵ౓Λ্͛ΔΞϓϩʔν w ΫϥΠΞϯτ͕ΫΤϦΛ༻͍ͯཁٻग़དྷΔͨΊճͷϦΫΤετͰඞཁͳσʔλ͕ औಘग़དྷΔ w ඞཁҎ্ͷσʔλΛཁٻͤͣʹ͢Ή ΦʔόʔϑΣον໰୊

     w ϦΫΤετͷ/ ͕ൃੜ͠ͳ͍ ΞϯμʔϑΣον໰୊  w ԟ෮ճ਺͕ݮΔ w σʔλͷ༗ޮ཰্͕͕Δ 💡 άϩʔόϧʹల։͢ΔαʔϏεͩͱϨΠςϯγ͕ϘτϧωοΫʹͳΔࣄ΋ 42-Ͱݴ͏ͱ 4FMFDU  +0*/ͳ͠
  10. ΫϥΠΞϯτ"QQ΁ͷԸܙ w ڧ͍ܕγεςϜ w ૢ࡞΍σʔλʹܕ͕͋Δ w 5ZQF4DSJQUͷܕੜ੒͕͠΍͍͢ w ΫϥΠΞϯτʹͱͬͯ࢖͍΍͍͢σʔλߏ଄Ͱ͋Δ৔߹ʹՃ޻͕ෆཁʹͳΔ w

    ௨৴͢Δαʔόʔ͕୆ʹͳΔ͜ͱͰ௨৴ͷ൥ࡶ͕͞ͳ͘ͳΔ w $PNQPOFOUͱ'SBHNFOUͷ૬ੑ͕ྑ͍ 'SBHNFOU$PMPDBUJPO  w ΫϥΠΞϯτͰͷঢ়ଶಉظ͕༰қ w (SBQI2-ΫϥΠΞϯτ͕ঢ়ଶ؅ཧ·Ͱߦ͏ w 4VCTDSJCF 8FCTPDLFU  w ͦͷαʔϏεͰར༻Ͱ͖Δૢ࡞ɾσʔλ͕ҰཡͰ͖Δ
  11. αʔόʔ"QQ΁ͷԸܙ w 4DIFNB%SJWFO%FWFMPQNFOU w υΩϡϝϯτͱͯ͠ͷίʔυ w ϑΟʔϧυͷมߋͰͷCSFBLJOHDIBOHF͕ݕ஌ग़དྷΔ w Ϣʔεέʔεຖͷ࣮૷͕ݮΔ w

    ֦ு͢Δ৔߹ʹ࣮૷޻਺͕ϦχΞ w 3&45ʹൺ΂ͯσʔλιʔεͷݺͼग़͠Օॴ͕ݮΔ w ϚΠΫϩαʔϏεԽ͠΍͍͢
  12. σʔλϞσϦϯά σʔλϕʔε αʔόʔ ΫϥΠΞϯτ υϝΠϯϩδοΫ ۀ຿ σʔλͷอ࣋ɾॻ͖ࠐΈ ར༻ऀͷ໨తͷୡ੒ͷࢧԉ Τϯήʔδϝϯτ 8FC"1*

    42- ˞ w ϦϨʔγϣφϧ%# w ΦϒδΣΫτ%# w άϥϑ%# "DUJWF3FDPSE &OUJUZ  
 %BUB.BQQFS ૄ ີ 03. "1* ີ ૄ PS σʔλ૚
  13. σʔλϞσϦϯάͱ݁߹ ີ݁߹ ૄ݁߹ w %3:ݪଇͱ૬ੑ͕ྑ͍ w ߴ଎ʹߏஙͰ͖ΔՄೳੑ͕͋Δ w େن໛ʹͳΔͱ଍͔ͤʹͳΓ͕ͪ w

    ҟͳΔίϯςΩετͰ༻్ͷࠩҟ͕͋Δͱม׵ίετ͕͔͔Δ w 40-*%ݪଇͱ૬ੑ͕ྑ͍ w ଞํͷ࢓༷ʹґଘ͠ͳ͍࣮૷ɾϞσϦϯά͕Ͱ͖Δ w ಛఆͷίϯςΩετ͚ͩͰ࡞ۀ͕Ͱ͖ͯೝ஌ίετ͕Լ͕Δ w ن໛͕খ͍͞ͱϝϦοτΛಘΒΕͮΒ͍ w ίʔυͷྔ΍ઃఆ͕૿͑Δ w ଞํΛมߋͰ͖ͳ͍৔߹ʹ৽ͨͳ૚ͱͯ͠ϞσϦϯά͢Δ ෗ഊ๷ࢭ૚
  14. σʔλϞσϦϯάͱ3&45ͱ(SBQI2- w ϢʔεέʔεͱσʔλϞσϦϯάͱܭࢉίετ͕ηοτ ݻఆ  w มߋ͸όʔδϣχϯά͢Δ͜ͱͰରԠ͢Δ w ະདྷʹ͓͍ͯมߋ͕ͣ͠Β͍ w

    ࡞੒࣌ʹݱࡏ͔Βݟ͑Δ࠷௕ͷείʔϓͰઃܭ͢Δඞཁ͕͋Δ 3&45 (SBQI2- w εΩʔϚͷϞσϦϯά͔ΒϢʔεέʔεΛ෼཭Ͱ͖Δ w Ϣʔεέʔε͸ΫΤϦ͕୲౰ w ࠷େͰϞσϦϯά͠ɺ࠷খͰར༻Ͱ͖Δ w ະདྷʹ͓͍ͯมߋ͠΍͍͢ w Ϟσϧͷมߋ͕ඞཁʹͳͬͨ࣌ʹ௥Ճɾ࡟আग़དྷΔ 💡 ͲͪΒͰ΋υϝΠϯͷσʔλϞσϧͱີ݁߹ɾૄ݁߹ͳσʔλϞσϦϯά͕ग़དྷΔ
  15. (SBQI2-ͷΞʔΩςΫνϟಛੑ ॻ੶ιϑτ΢ΣΞΞʔΩςΫνϟͷجૅ͔ΒҾ༻͢Δ ӡ༻ಛੑ ߏ଄ಛੑ ԣஅతಛੑ Մ༻ੑ ܧଓੑ ύϑΥʔϚϯε ճ෮ੑ ৴པੑɾ҆શੑ

    ݎ࿚ੑ εέʔϥϏϦςΟ ߏ੒༰қੑ ֦ுੑ ׆༻ੑɾ࠶ར༻ੑ ϩʔΧϥΠθʔγϣϯ ϝϯςφϯε༰қੑ Մൖੑ ΞοϓάϨʔυ༰қੑ ΞΫηγϏϦςΟ ௕ظอଘੑ ೝূɾೝՄ ߹๏ੑ ϓϥΠόγʔ ηΩϡϦςΟ αϙʔτ༰қੑ ϢʔβϏϦςΟ
  16. (SBQI2-ͱύϑΥʔϚϯε ωοτϫʔΫϨΠςϯγ w ϦΫΤετΛूੵ͢ΔࣄͰϨΠςϯγ͕࠷খԽ͢Δ w ˞͔͠͠೔ຊࠃ಺޲͚αʔϏεͩͱϨΠςϯγ͕໰୊ͱͯ͠ද໘Խ͠ʹ͘ wΫΤϦͰඞཁͳσʔλ͚ͩऔಘ͢ΔͨΊτϥϑΟοΫྔɾ௨৴͕࣌ؒ࠷খԽ͢Δ ωοτϫʔΫΩϟογϡ w )551ͷϨεϙϯεΩϟογϡΛ࢖͑ͳ͍˞ҰԠ(&5Ͱ΋ϦΫΤετग़དྷͯΩϟογϡ΋ग़དྷΔ

     w 3&45Ͱ͸Ͱ͖Δ෦෼తͳΩϟογϡ͕Ͱ͖ͳ͍ αʔόʔϩδοΫ w ϦΫΤετ͕ूੵ͢ΔͨΊɺσʔλͷΞΫηεճ਺͕࠷খԽ͢ΔՄೳੑ͕͋Δ w ໦ߏ଄ͷ fi FMEͷղܾΛಉ͡ߴ͞Ͱฒߦॲཧग़དྷΔ wશͯͷϑΟʔϧυͷղܾ͕ऴΘΔ·ͰϨεϙϯε͕ฦͤͳ͍ͨΊɺ஗͍ϑΟʔϧυʹґଘ͢Δ 😊 😊 😢 😊 😢 😢 😊 (SBQI2-JT'BTU ⚒ w ಛఆগ਺ͷΫϥΠΞϯτͱͷϦΫΤετฒྻ౓Λ্͛ΔɾΦʔόʔϔουΛݮΒ͢ΞϓϩʔνͩͱH31$ w େྔͷॻ͖ࠐΈͩͱετϦʔϜॲཧͳͲͷผղ๏͕͋Δ
  17. (SBQI2-ͱ3&45ͷൺֱ (SBQI2- 3&45 ઃܭࢥ૝ શମɾՄม ෦෼ɾ੍໿ ΫϥΠΞϯτͷར༻༰қੑ Ұఆ FOEQPJOUͷ૿Ճʹ൐ͬͯࢦ਺ؔ਺త૿Ճ ࣮૷ίετ

    fi FMEͷ࣮૷ίετ͸Ұఆ पลπʔϧͷ࣮૷ɾӡ༻ʹίετ͕͋Δ FOEQPJOUΛ࣮૷͢Δͷ͸༰қ ༻్ຖͷFOEQPJOU͕૿͑ͯ͘Δͱࠔ೉ ֶशίετ େ͖͍ খ͍͞ ܭࢉྔ Մม ݻఆ ೝূ )551 ΞϓϦ )551 ΞϓϦ ೝՄ ΞϓϦ )551 ΞϓϦ Ωϟογϡ ΞϓϦ )551 ΞϓϦ ϩάɾ؂ࢹ (SBQI2-༻ͷ؂ࢹ͕ඞཁ ϦΫΤετϕʔε ϞσϦϯάͷ͠΍͢͞ ˕ ˚ σʔλϞσϧͷਐԽՄೳੑ ˕ ˚ ഁյతมߋͷݕ஌ Մೳ ೉͍͠ ޲͍ͯΔ"QQ ෳࡶɾมԽ͕େ͖͍ɾݟͨ໨ͷཁٻ͕ߴ͍ 
 1SJWBUF"1* γϯϓϧɾมԽ͕গͳ͍ 
 1BSUOFS"1*ɾ1VCMJD"1* 😊 😢 🤔 🤔 🤔 😊 😊 😢 🤔 🤔 🥰 🥰
  18. ࠓ೔ͷ͓͞Β͍ w (SBQI2-ͷλʔήοτ͸8FCΫϥΠϯτ w σʔλ΍ૢ࡞ͷҰݩԽ w ࠷େͰఆٛ͠ɺ࠷খͰར༻͢Δ w ωοτϫʔΫτϥϑΟοΫͷ࠷దԽ w

    ूੵ͢ΔΞϓϩʔν w ΞʔΩςΫνϟτϙϩδʔͷ੔ཧ ίΞίϯηϓτ w ڧ͍ܕγεςϜ w ΫϥΠΞϯτʹͱͬͯ࢖͍΍͍͢σʔλϞσϧ w ௨৴͢Δαʔόʔ͕୆ʹͳΔ w $PNQPOFOUͱ'SBHNFOUͷ૬ੑ͕ྑ͍ 'SBHNFOU$PMPDBUJPO  w ΫϥΠΞϯτͰͷঢ়ଶಉظ͕༰қ w (SBQI2-ΫϥΠΞϯτ͕ঢ়ଶ؅ཧ·Ͱߦ͏ w 4VCTDSJCF 8FCTPDLFU  w ͦͷαʔϏεͰར༻Ͱ͖Δૢ࡞ɾσʔλ͕ҰཡͰ͖Δ ΫϥΠΞϯτ w 4DIFNB%SJWFO%FWFMPQNFOU w υΩϡϝϯτͱͯ͠ͷίʔυ w ϑΟʔϧυͷมߋͰͷCSFBLJOHDIBOHF͕ݕ஌ग़དྷΔ w Ϣʔεέʔεຖͷ࣮૷͕ݮΔ w ϚΠΫϩαʔϏεԽ͠΍͍͢ αʔόʔ (SBQI2-ͷԸܙ σʔλϞσϦϯά w υϝΠϯͱΫϥΠΞϯτͰͷີ݁߹ͱૄ݁߹ w 3&45ͱ(SBQI2-ͷϞσϦϯάͷ͠΍͢͞ ⚒ w (SBQI2-ͷઓུతར༻ίΞίϯηϓτ΍σʔλϞσϦϯάͷ෦෼͕ ඇ ػೳཁ݅ͱͯ͠ΫϦςΟΧϧͳ࣌ w (SBQI2-ͷઓज़ར༻ԸܙΛಘΔखஈͱͯ͠࠾༻͢Δ
  19. (SBQI2-Λݕ౼͢Δ࣌ͷ࣭໰߲໨ w αʔϏε w αʔϏεఏڙʹ͓͍ͯΤϯήʔδϝϯτ͕઎ΊΔൺॏ͕େ͖͍͔ w αʔϏεͷਐԽ଎౓͕଎͍͔ɺࠓޙ΋มԽ͠ଓ͚Δ͔ w ։ൃ૊৫͕֦େ͠ଓ͚Δ͔ w

    σʔλϞσϧɾεΩʔϚ w ΫϥαόͰҟͳΔσʔλϞσϦϯά͍͔ͨ͠ w ѻ͏σʔλɾૢ࡞ͷؔ࿈͕ෳࡶ͔ w ωοτϫʔΫ w ϨΠςϯγ΍τϥϑΟοΫྔ΍Φʔόʔϔουͷཁٻ͕ߴ͍͔ w ΫϥΠΞϯτͷੑ࣭ w "1*ίʔϧͱঢ়ଶ؅ཧ͕൥ࡶ͔ w ΫϥΠΞϯτ࣮૷Ͱ%%%Λߟ͑ͨࣄ͕͋Δ  w ΫϥαόؒͰͷσʔλߋ৽ɾಉظ͕සൟʹى͖Δ͔ ಛʹॻ͖ࠐΈ͕ଟ͍  w 3FEVY౳Ͱͷσʔλ؅ཧʹർΕͨʁ w ΞʔΩςΫνϟ w ϚϧνΫϥΠΞϯτ͔Ͳ͏͔ w ෳ਺ͷσʔλιʔε͕͋Δ͔Ͳ͏͔ w ϨΨγʔͳγεςϜɾσʔλϕʔεΛར༻͢Δ"1*Λ࡞Δඞཁ͕͋Δ