Intro to GraphQL
GraphQL ์์ํ๊ธฐ!
https://tech.kakao.com/2019/08/01/graphql-basic/
https://www.slideshare.net/shilpe34/typescript-200-graphql-179690400
GraphQL ์ด๋?
API๋ฅผ ์ํ Query Language!
SQL (Structured Query Language) ์ ๋ง์ฐฌ๊ฐ์ง๋ก Query Language
but, ์ธ์ด์ ๊ตฌ์กฐ ์ฐจ์ด๊ฐ ํฌ๋ค
๊ทธ ๊ฒฐ๊ณผ ์ด ๋์ ๋ํ ํ์ฉ์ ๋ค๋ฅด๊ฒ ํ๊ฒ ๋จ
์ฌ์ฉ ๋ชฉ์
sql
: DB ์ ์ ์ฅ๋ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๋ชฉ์ gql
: Web Client ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์๋ฒ๋ก๋ถํฐ ํจ์จ์ ์ผ๋ก ๊ฐ์ ธ์ค๋ ๊ฒ์ด ๋ชฉ์
ํธ์ถ
sql
: Backend system ์์ ์์ฑํ๊ณ ํธ์ถgql
: Client system ์์ ์์ฑํ๊ณ ํ์ถ
๋จ์ผ ์์ฒญ์ผ๋ก ๋ง์ ๋ฐ์ดํฐ๋ฅผ ๋ถ๋ฌ ์ฌ ์ ์๋ค
ํ์ ์์คํ
๊ฐ๋ ฅํ ๊ฐ๋ฐ์ ๋๊ตฌ ์ ๊ณต
Serverside GraphQL application
gql
๋ก ์์ฑ๋ ์ฟผ๋ฆฌ๋ฅผ ์ ๋ ฅ์ผ๋ก ๋ฐ์, ์ฟผ๋ฆฌ๋ฅผ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ ๋ค์ client ๋ก ๋๋ ค์คGraphQL ์๋ฒ
REST API ์ GraphQL API ์ ์ฐจ์ด์
REST API
URL
,METHOD
๋ฑ์ผ๋ก ์กฐํฉํ๊ธฐ ๋๋ฌธ์ ๋ค์ํ Endpoint ๊ฐ ์กด์ฌ๊ฐ Endpoint ๋ง๋ค Database SQL query๊ฐ ๋ฌ๋ผ์ง
gql API
๋จ ํ๋์ Endpoint๊ฐ ์กด์ฌ
๋ถ๋ฌ์ค๋ ๋ฐ์ดํฐ์ ์ข ๋ฅ๋ฅผ ์ฟผ๋ฆฌ์ ์กฐํฉ์ ํตํด ๊ฒฐ์
gql schema type ๋ง๋ค Database SQL query๊ฐ ๋ฌ๋ผ์ง
๊ตฌ์ฑ๋ ์ธํ๋ผ, ๋น์ฆ๋์ค ๋ชจ๋ธ, ์ฌ์ฉํ๋ ๋ชฉ์ ์ ๋ฐ๋ผ ๊ฐ๊ฐ์ ์ฅ๋จ์ ์ด ๋ฐ๋๋ค!
schema / type
ex)
Object type
: CharacterField
: name, appearInScala type
: String, Id, Int ๋ฑ!
: ํ์ ๊ฐ (non-nullable)[ ,]
: ๋ฐฐ์ด (array)
Resolver
gql ์ฟผ๋ฆฌ๋ฌธ ํ์ฑ์ ๋๋ถ๋ถ์ gql ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ฒ๋ฆฌํจ
but, data๋ฅผ ๊ฐ์ ธ์ค๋ ๊ตฌ์ฒด์ ์ธ ๊ณผ์ ์
resolver
๊ฐ ๋ด๋นํ๊ณ , ์ง์ ๊ตฌํํด์ผ ํจ!
๋ง์ฝ field๊ฐ
์ค์นผ๋ผ ๊ฐ
(๋ฌธ์์ด์ด๋ ์ซ์ ๊ฐ์ primitive type) ์ธ ๊ฒฝ์ฐ ์คํ์ด ์ข ๋ฃ๋จ์ฆ, ๋ ์ด์์ ์ฐ์์ ์ธ resolver ํธ์ถ์ด ์ผ์ด๋์ง ์์
Last updated