GraphQL Korea Meetup (06/13/2020)
1. Relay with Python
๋ฐํ์: ์ฌํ๋~~~~!!! ใ _ใ
"์์ธก๊ฐ๋ฅํ ์ผ๊ด์ฑ์ด ์ฃผ๋ ๋ป๋ฐ์ ํจ์จ์ฑ"
Graphene
ORM ๋ฐฉ์์ผ๋ก ์ ์ํ๋ฉด GraphQL Schema๋ก ๋ฐ๊พธ์ด ์ค
GraphQL ์ ๊ฐ์ฒดํํด์ ์ ๋ง๋ค์ด์ค๋ค!
Relay
Graphene ์
Relay
๋ฅผ ์ง์ํ๋คRelay
: GraphQL ๊ธฐ๋ฐ ๋ฐ์ดํฐ ์ค์ฌ React application์ ๊ตฌ์ถํ๊ธฐ ์ํ JavaScript framework
Node
graphene.relay
์์ ์ ๊ณตํ๋ interfaceID!
field ํ๋๋ง์ ๊ฐ๋๋ค
Connection
slicing๊ณผ pagination์ ์ ๊ณตํ๋ ํฅ์๋ ๋ฒ์ ์ ๋ฆฌ์คํธ
Graph์ ๋ถ์ฐ๋์ด ์๋ ๊ฐ ์ ์ Node๋ผ๊ณ ํ๋ฉฐ, ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ฑํ๋ ํ๋์ ๊ฐ์ฒด๋ฅผ ์๋ฏธํ๊ณ ,
์๋ก ์ฐ๊ด๋ Node ๋ฅผ ์ฐ๊ฒฐํ๋ ์ ์ Edge ๋ผ๊ณ ํ๋ค
GraphQL์์ ๊ฐ Node ์ ์ฃผ์๋ฅผ Cursor๋ผ๊ณ ํ๊ณ ,
Connection์ Cursor๋ฅผ ๊ธฐ๋ฐ์ผ๋กํ
pagination
design pattern
ex)
relay.Connection
relay.ConnectionField
Mutations
๋ฐ์ดํฐ ์์ ์์ ์ ํ๋ Mutation์ Graphene์์๋ subclass
relay.ClientIDMutation
์ ํตํด ์ฝ๊ฒ ๊ด๋ฆฌํ ์ ์๋ค
Graphene-Django
GraphQL์ Django ์์ ์ฝ๊ฒ ์ ์ฉ ๊ฐ๋ฅํ๋๋ก ๋์์ค
2. GraphQL์ ์ธ์ด๋ก์จ ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ
๋ฐํ์: ๊นํ์ฑ๋
"์ค๋ ๋ GraphQL์ API ๊ตฌํ ๋ฟ ์๋๋ผ ๊ฐ๋ ฅํ "๋ชจ๋ธ๋ง ์ธ์ด"๋ก์จ ํ์ฝํ๊ณ ์์ต๋๋ค. GraphQL ์ธ์ด๋ฅผ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ๋ค๋ฃจ๋ ๋ฐฉ๋ฒ๊ณผ ์ด๋ฅผ ํ์ฅํ๋ ๋ค์ํ ์ฌ๋ก๋ค์ ์๊ฐํฉ๋๋ค."
Document
GraphQL AST ์ ์ต์์ ๋ ธ๋
ํ์์ ๋ํ ๋ค์ํ Definition์ ํฌํจํ๊ณ ์์
Definition
Executable Definition
Query / Mutation / Fragment etc.
Other Definition
Client ๊ฐ๋ฐ์์๊ฒ ์น์ํ ๊ทธ ๋ถ๋ถ..ใ
SDL (Schema Definition Language)
๊ฐ๋ ฅํ ๋ฒ์ฉ ๋ชจ๋ธ๋ง ์ธ์ด
๋ฐฉํฅ์ฑ ์ํ ๊ทธ๋ํ
ํ์ ์์คํ ๊ธฐ๋ฐ ๊ฒ์ฆ
Interface / Union ์ ํตํ ๋คํ์ฑ ์ง์
ํ์ฅ ๊ฐ๋ฅ์ฑ
๋งคํฌ๋ก
Schema vs ExecutableSchema
๋ช ๊ฐ์ง ์ ์ฒ๋ฆฌ ์์ ์ ๊ฑฐ์ณ
๋ฐํ์
์ ์ถ๊ฐํจResolvers
Directives
GraphQL Document ์ฒ๋ฆฌ๊ธฐ์ ์ถ๊ฐ์ ์ธ ์ ๋ณด๋ฅผ ์ ๊ณตํ ์ ์๋ ์ง์์
Standard (
@deprecated
,@include
,@skip
)Schema Directive
ex)
@deprecated
Operational Directive
ex)
@include
,@skip
+
๋๋์
GraphQL ์ ๊ด์ฌ์ด ๋ ์๊ฒผ๋ค!!!!!!
๋ ๊น๊ฒ ๊ณต๋ถํด๋ด์ผ๊ฒ ๋ค ๋ ์ฌ๋ฐ๋ค!
Last updated