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
GraphQL DataLoader 적용하기
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
angelxtry
February 08, 2020
Programming
0
99
GraphQL DataLoader 적용하기
angelxtry
February 08, 2020
Tweet
Share
Other Decks in Programming
See All in Programming
SourceGeneratorのススメ
htkym
0
200
組織で育むオブザーバビリティ
ryota_hnk
0
170
AI巻き込み型コードレビューのススメ
nealle
1
230
CSC307 Lecture 09
javiergs
PRO
1
840
2026年 エンジニアリング自己学習法
yumechi
0
130
CSC307 Lecture 05
javiergs
PRO
0
500
CSC307 Lecture 01
javiergs
PRO
0
690
今から始めるClaude Code超入門
448jp
8
8.7k
AIによる高速開発をどう制御するか? ガードレール設置で開発速度と品質を両立させたチームの事例
tonkotsuboy_com
7
2.3k
AIで開発はどれくらい加速したのか?AIエージェントによるコード生成を、現場の評価と研究開発の評価の両面からdeep diveしてみる
daisuketakeda
1
2.5k
Data-Centric Kaggle
isax1015
2
770
LLM Observabilityによる 対話型音声AIアプリケーションの安定運用
gekko0114
2
430
Featured
See All Featured
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
150
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
280
Code Review Best Practice
trishagee
74
20k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
210
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
120
Java REST API Framework Comparison - PWX 2021
mraible
34
9.1k
Leadership Guide Workshop - DevTernity 2021
reverentgeek
1
200
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
81
Why Mistakes Are the Best Teachers: Turning Failure into a Pathway for Growth
auna
0
51
The Invisible Side of Design
smashingmag
302
51k
Building the Perfect Custom Keyboard
takai
2
680
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
580
Transcript
GraphQL DataLoader 2020.02.08 doit team ࣻഐ https://github.com/angelxtry
TL; DR GraphQLਸ بੑ೮ݶ DataLoaderܳ ਊೞࣁਃ. فߣ ೞࣁਃ.
Teck stack
GraphQL
GraphQL ػ(nested) ࠁܳ োझۣѱ ۽٘ೡ ࣻ .
GraphQL ػ(nested) ࠁܳ োझۣѱ ۽٘ೡ ࣻ .
None
None
GraphQL ػ(nested) ࠁܳ োझۣѱ ۽٘ೡ ࣻ .
None
ޙઁߊࢤ
dummy data 50 user full data
וܻ. ৵? ۽Ӓܳ ࠁ! ۽Ӓܳ!
۽Ӓо ցޖ ݆ই! query query query query query query query
query query query query query query query query query query query query query query
ࠗఠ द! 10 user data + motivations data ઑഥ
۽Ӓܳ ࠁ! ۽Ӓܳ!
য?!?! user * 1 + motivaions * 10 = 11(?)
user * 1 + table 6 * user 50 =
301(!!)
N+1 Problem
users user user user user user Select
users user user user user user m m m m
m Select Select Select Select Select Select
যڌѱ ೧Ѿ೮աਃ?
DataLoader
DataLoader is a generic utility to be used as part
of your application’s data fetching layer to provide a simplified and consistent API over various remote data sources such as databases or web services via batching and caching.
users user user user user user 1 User ప࠶ select
key key key key key DataLoader users user user user
user user 2 DataLoaderী key 1 User ప࠶ select
key key key key key DataLoader val val val val
val users user user user user user Select 3 Motivations table select 2 DataLoaderী key 1 User ప࠶ select
key key key key key DataLoader val val val val
val users user user user user user m m m m m Select 4 User߹ Motivation ೡ 3 Motivations table select 2 DataLoaderী key 1 User ప࠶ select
userSchema.ts
userResolver.ts
DataLoader ਊ!
yarn add dataloader
userResolver.ts
userResolver.ts
userRepository.ts
userRepository.ts
ࢎ೦
ࢎ೦ 1
ࢎ೦ 2
ࢎ೦ 3
ޤо જইաਃ?
Select 2ߣ
500 user full data
Select 2ߣ
Postman 10ഥ ߈ࠂ प೯ റ 10ഥ ಣӐ प೯ ࣘب ஏ
Postman 10ഥ ߈ࠂ प೯ റ 10ഥ ಣӐ प೯ ࣘب ஏ
ਊ : 1318ms ਊ റ: 117ms
Ѿۿ
TL; DR GraphQLਸ بੑ೮ݶ DataLoaderܳ ਊೞࣁਃ. فߣ ೞࣁਃ.
ӟ ߊ ٜয࣊ࢲ хࢎפ! ߊ ղਊਸ ؊ ࠁҊ रਵदݶ? https://blog.doitreviews.com/development/
2020-02-04-graphql-typeorm-dataloader/ ۽ં ٘о ҾӘೞदݶ? https://github.com/codestates/healthFriend-server