๐[Django] graphene-django๋?
[๊ณต์ ๋ฌธ์] Graphene?
๊ตฌ๊ธ์ Graphene-django
์ ๋ํด ๊ฒ์ํ๋ฉด ์๋์ ํ์ด์ง๊ฐ ๋์จ๋ค
๐ย Django - Graphene-Python
Introduction
์ ํตํด Graphene
์ด ๋ฌด์์ธ์ง ๋๋ต ์ ์ ์์๋ค.
๊ณต์ ๋ฌธ์๋ Graphene
์ ๋ค์๊ณผ ๊ฐ์ด ์๊ฐํ๊ณ ์๋ค.
What is GraphQL?
Graphene
์ด๋, ์ฝ๋ ์ฐ์ ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ์ฌ Python์์ GraphQL API๋ฅผ ๊ตฌํํ๋ ๋๊ตฌ๋ฅผ ์ ๊ณตํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
์ด๋ค.
Graphene์ ์ฝ๋ ์ฐ์ ์ ๊ทผ ๋ฐฉ์๊ณผ Apllo Server(JavaScript)
๋๋ Ariadne(Python)
๊ณผ ๊ฐ์ ์คํค๋ง ์ฐ์ ์ ๊ทผ ๋ฐฉ์์ ๋น๊ตํ์ฌ Graphene์ GraphQL API ๊ตฌ์ถ ๋ฐฉ์์ ํ์ธํ ์ ์๋ค.
GraphQL ์คํค๋ง ์ ์ ์ธ์ด(SDL)
๋ฅผ ์์ฑํ๋ ๋์ , ์๋ฒ์์ ์ ๊ณตํ๋ ๋ฐ์ดํฐ๋ฅผ ์ค๋ช
ํ๋ Python ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค.
Graphene์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ์น ํ๋ ์์ํฌ ๋ฐ ORM์ ์ํ ํตํฉ ๊ธฐ๋ฅ์ ์๋ฒฝํ๊ฒ ๊ฐ์ถ๊ณ ์๋ค.
Graphene์ GrpahQL ์ฌ์์ ์๋ฒฝํ๊ฒ ์ค์ํ๋ ์คํค๋ง๋ฅผ ์์ฑํ๊ณ ๋ฆด๋ ์ด ํธํ API๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ๋๊ตฌ์ ํจํด ๋ํ ์ ๊ณตํ๊ณ ์๋ค.
Welcome to Graphene-Django
์ ํ์ด์ง์ ๋ค์ด๊ฐ์ ๋๋ฌ๋ณด๋ฉด Django
๋ฟ๋ง ์๋๋ผ Flask
, SQLAlchemy
, FastAPI
๋ฑ๊ณผ ๊ฐ์ ๋ค์ํ ๊ธฐ์ ๋ค๊ณผ ํตํฉ๋ ์์์ ์ ๊ณตํ๊ณ ์์๋ค..!
์ด ์ค์์ Graphene-Django
๋ฅผ ํด๋ฆญํด๋ณด์!
Graphene-Django
๋ Graphene ์์ ๊ตฌ์ถ๋์๋ค.
Graphene-Django๋ Django ํ๋ก์ ํธ์ GraphQL ๊ธฐ๋ฅ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์๋ ๋ช ๊ฐ์ง ์ถ๊ฐ ์ถ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค.
๊ณต์ ๋ฌธ์์์ ์ ๊ณตํ๋ ํํ ๋ฆฌ์ผ๋ค์ ๋ฐ๋์ ๋ฐ๋ผํ๋ฉฐ ์ตํ๋ณด์!
[ChatGPT] Graphene-Django์ ๋ํด ์์ธํ ์ค๋ช ํด์ค
๐ฃ๏ธย Graphene-Django์ ๋ํด ์์ธํ ์ค๋ช ํด์ค
Graphene-Django
๋ Django ์น ํ๋ ์์ํฌ์์ GraphQL API๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ๋๊ตฌ์.
GraphQL์ REST API์ ๋์์ผ๋ก, ํด๋ผ์ด์ธํธ๊ฐ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ํํ ์์ฒญํ๊ณ ๋ฐ์ ์ ์๋๋ก ํ๋ ์ฟผ๋ฆฌ ์ธ์ด
๋ค!
Graphene-Django
๋ GraphQL์ Django์ ํตํฉํ์ฌ ๋ณด๋ค ํจ์จ์ & ์ ์ฐํ APi๋ฅผ ๊ตฌ์ถํ ์ ์๊ฒ ํ๋ค.
์ฃผ์ ํน์ง
1. ๊ฐ๋จํ GraphQL ์คํค๋ง ์ ์
Django์ ๋ชจ๋ธ์ ๊ธฐ๋ฐ์ผ๋ก GraphQL ์คํค๋ง๋ฅผ ์ฝ๊ฒ ์ ์ํ ์ ์๋ค.
model์ ํ๋๊ฐ ์๋์ผ๋ก GraphQL ํ์
์ผ๋ก ๋งคํ๋๊ณ , ์ด๋ฅผ ํตํด ๋ณต์กํ ์ฟผ๋ฆฌ์ mutation
์ ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค!
2. Django ORM๊ณผ์ ํตํฉ
Django ORM๊ณผ ์์ฐ์ค๋ฝ๊ฒ ํตํฉ๋์ด, DB์์ ๋ฐ์ดํฐ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ฐ์ ธ์ค๊ณ ์ฒ๋ฆฌํ ์ ์๋ค.
์ด๋ฅผ ํตํด GraphQL ์ฟผ๋ฆฌ๋ฅผ ํตํด ๋ฐ์ดํฐ๋ฅผ ์กฐํํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ๊ฒ์ด ์ฌ์์ง๋ค!
3. ๊ฐํธํ Mutation ์ฒ๋ฆฌ
DB์ ์ํ๋ฅผ ๋ณ๊ฒฝ(CRUD ๋ฑ)ํ๋ ์์
์ธ Mutation
์ ๊ฐ๋จํ๊ฒ ์ฒ๋ฆฌํ ์ ์๋ค!
Mutation
ํด๋์ค์ ๋ฉ์๋๋ฅผ ์ ์ํ์ฌ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ์์
์ ์์ ํ๊ฒ ์ํํจ.
4. Django ๊ธฐ๋ฅ๊ณผ์ ํตํฉ
Django์ ์ธ์ฆ ์์คํ , ํํฐ๋ง, ํ์ด์ง ๊ธฐ๋ฅ ๋ฑ์ GraphQL API์์ ์ฝ๊ฒ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
์ด์ฒ๋ผ Django์ ๊ธฐ๋ณธ ๊ธฐ๋ฅ๋ค๊ณผ ์ ์ฐ๋๋๋๋ก ์ค๊ณ๋์ด ์์ด, ๊ฐ๋ฐ์์๊ฒ ํธ์์ฑ์ ์ ๊ณตํจ!
5. Relay ์ง์
Relay
๋ ํ์ด์ง, ํํฐ๋ง, ์ฐ๊ฒฐ ๋ฑ์ ์ฒ๋ฆฌํ๋ ๋ฐ ์ ์ฉํ ํ์ค์ด๋ค.
Graphene-Django
๋ Relay
์ฌ์์ ์ง์ํ์ฌ, ๋ณต์กํ ํด๋ผ์ด์ธํธ-์๋ฒ ๊ฐ์ ๋ฐ์ดํฐ ์ํธ์์ฉ์ ๊ด๋ฆฌํ ์ ์๋ค!
์ฐธ๊ณ ์๋ฃ
[Introduction to GraphQL | GraphQL](https://graphql.org/learn/) |
๋๊ธ๋จ๊ธฐ๊ธฐ