Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
GraphQL + Relay + Serverless ߅ഋध @ థ࠶ߢ
Slide 2
Slide 2 text
థ࠶ߢ "#$%&'()*+,-./01234 56
Slide 3
Slide 3 text
ਃೠ ܻࣗझ݅ਸ ਃೞҊ ࢎਊೞח API ٜ݅ӝ I
Slide 4
Slide 4 text
߄ҳפ ߄ҳפীӟ࢚ಿ ࢸݺ оѺ ߓ࣠࠺ ߓ࣠ࣗ 25,000 12,000 2,500 2,500 ࢚ಿ
Slide 5
Slide 5 text
߄ҳפ ߄ҳפীӟ࢚ಿ ࢸݺ оѺ ߓ࣠࠺ ߓ࣠ࣗ 25,000 12,000 2,500 2,500 ࢚ಿ ProductList Cart ShippingAddress ProductData ProductData
Slide 6
Slide 6 text
ProductList Cart ProductData ProductData ShippingAddress /carts/1 /products/1 /products/2 /shippingAddresses/1
Slide 7
Slide 7 text
/carts/1? fields=products,coupons,shipping_addr esses&products[images, descriptions] /carts/1? fields=products,coupons,shipping_addr esses&products[images[high,low]]&prod ucts[descriptions[reviews, contents]]
Slide 8
Slide 8 text
/carts_with_products_shipping_address_coupons /carts_with_products_recommendations /carts_with_products_videos /carts_with_products_newsletter_signups /carts_with_products_for_mobile /carts_with_products_for_tablets
Slide 9
Slide 9 text
No content
Slide 10
Slide 10 text
No content
Slide 11
Slide 11 text
No content
Slide 12
Slide 12 text
No content
Slide 13
Slide 13 text
BFF (soundcloud) Backends for Frontends
Slide 14
Slide 14 text
No content
Slide 15
Slide 15 text
GraphQL A Query Language for API
Slide 16
Slide 16 text
{ me { name company } }
Slide 17
Slide 17 text
{ me { name: "߅ഋध" company: "థ࠶ߢ" } }
Slide 18
Slide 18 text
{ me { name company hobby } }
Slide 19
Slide 19 text
{ me { name: "߅ഋध" company: "థ࠶ߢ" hobby: "୷ҳ" } }
Slide 20
Slide 20 text
Query REST GET method
Slide 21
Slide 21 text
REST GET /me { name: "߅ഋध", company: "థ࠶ߢ", hobby: "୷ҳ", favoriteColor: "ی࢝", country: "ೠҴ", conference: "playnode 2017", cloudProvider: "IBM", age: "?^^^^", address: "??????????", cardNumber: "@#$D@#$#$%#$FD@#$@#" }
Slide 22
Slide 22 text
GraphQL { user (id: "1") { name company } }
Slide 23
Slide 23 text
GraphQL { user { name: "chulsoo" company: "younghee co." } }
Slide 24
Slide 24 text
ProductList Cart ProductData ProductData ShippingAddress /carts/1 /products/1 /products/2 /shippingAddresses/1 REST
Slide 25
Slide 25 text
ProductList Cart ProductData ProductData ShippingAddress { cart { products { imageUrl description price shippingCost } shippingAddress } } POST /graphql GraphQL
Slide 26
Slide 26 text
No content
Slide 27
Slide 27 text
No content
Slide 28
Slide 28 text
No content
Slide 29
Slide 29 text
No content
Slide 30
Slide 30 text
Type System ⚙⚙⚙
Slide 31
Slide 31 text
Types type Query { cart: Cart } type Cart { products: [Product]! shippingAddress: String! } type Product { imageUrl: String! description: String! price: Int! shippingCost: Int! } { cart { products { imageUrl description price shippingCost } shippingAddress } }
Slide 32
Slide 32 text
Types type Query { cart: Cart } type Cart { products: [Product]! shippingAddress: String! } type Product { imageUrl: String! description: String! price: Int! shippingCost: Int! } { cart { products { imageUrl description price shippingCost } shippingAddress } }
Slide 33
Slide 33 text
Types type Query { cart: Cart } type Cart { products: [Product]! shippingAddress: String! } type Product { imageUrl: String! description: String! price: Int! shippingCost: Int! } { cart { products { imageUrl description price shippingCost } shippingAddress } }
Slide 34
Slide 34 text
Types type Query { cart: Cart } type Cart { products: [Product]! shippingAddress: String! } type Product { imageUrl: String! description: String! price: Int! shippingCost: Int! } { cart { products { imageUrl description price shippingCost } shippingAddress } }
Slide 35
Slide 35 text
Types type Query { cart: Cart } type Cart { products: [Product]! shippingAddress: String! } type Product { imageUrl: String! description: String! price: Int! shippingCost: Int! } { cart { products { imageUrl description price shippingCost } shippingAddress } }
Slide 36
Slide 36 text
Mutation REST POST/PUT/PATCH/DELETE Method
Slide 37
Slide 37 text
Mutation mutation { createProduct( input: { description: "ݧ ৩" price: 50000 } ) } { product { Price } }
Slide 38
Slide 38 text
؊ب ݈Ҋ ؏ب ݈Ҋ ٯ ۄо ਗೞח ч݅ NO
Slide 39
Slide 39 text
࠺ऴ ֎ਕ ਃ ୭ࣗച R
Slide 40
Slide 40 text
No content
Slide 41
Slide 41 text
No content
Slide 42
Slide 42 text
Relay
Slide 43
Slide 43 text
Relay
Slide 44
Slide 44 text
Relay
Slide 45
Slide 45 text
Relay
Slide 46
Slide 46 text
Relay
Slide 47
Slide 47 text
Relay
Slide 48
Slide 48 text
Relay
Slide 49
Slide 49 text
id? GraphQL Relay
Slide 50
Slide 50 text
id? id GraphQL Relay
Slide 51
Slide 51 text
GraphQL Relay
Slide 52
Slide 52 text
GraphQL Relay
Slide 53
Slide 53 text
GraphQL Relay 1
Slide 54
Slide 54 text
GraphQL Relay 1 1
Slide 55
Slide 55 text
No content
Slide 56
Slide 56 text
No content
Slide 57
Slide 57 text
Server
Slide 58
Slide 58 text
Serverless
Slide 59
Slide 59 text
f(⚡) Functions ⚡⚡ ⚡⚡
Slide 60
Slide 60 text
Serverless = function-as-a-service?
Slide 61
Slide 61 text
Serverless Pattern / Architecture
Slide 62
Slide 62 text
ࢲߡ ҙܻ ݽٚѦ ۄ٘ীѱ ݐӝ ☁ /provisioning, OS patching/upgrading, scaling, self-healing, … /
Slide 63
Slide 63 text
Pricing • IBM Cloud functions • 500ms प೯ • 512MB @ 5,000,000 ਃ പࣻ • $14.45
Slide 64
Slide 64 text
Pricing • प೯ दр ⏰ • ݫݽܻ ࣗ࠺ • ਃ പࣻ ⚡
Slide 65
Slide 65 text
“ࢲߡ” ೡ ݽٚѦ ۄ٘ীѱ ݐӝ ☁ /API Gateway, Message Queue, Search, Analytics, Authentication, … /
Slide 66
Slide 66 text
“ࢲߡ”ٜਸ ೣࣻ۽ োѾೞ ⚡ ⚡ ⚡ ⚡ ⚡ ⚡
Slide 67
Slide 67 text
No content
Slide 68
Slide 68 text
GraphQL API Gateway Cart Product Search Message Queue Object Storage ⚡ ⚡ ⚡ ⚡ ⚡ ⚡ ⚡ ⚡ ⚡ ⚡ Email Authentication
Slide 69
Slide 69 text
GraphQL + Relay + Serverless
Slide 70
Slide 70 text
tumblbug.workable.com ହઑੋ दب ӝࣿ ӝ߈ਸ ೣԋ ٜ݅ ࣗਝয ূפযܳ णפ.