만일 GraphQL의 개념과 특징에 대해서 궁금하면 아래 링크를 누르시면 됩니다.
https://zeuskwon-ds.tistory.com/72?category=1033905
[GraphQL]GraphQL의 개념과 장단점 1
이번 포스팅에서는 GraphQL에 대해서 알아보기전에 GraphQL은 새로운 프레임워크, 라이브러리가 아니라, 전혀 새로운 개념이라는 사실을 알기. 그럼 GraphQL에 대해서 알아보자 GraphQL이란? 이름에 왜
zeuskwon-ds.tistory.com
GraphQL의 구조
아래 이미지는 Python Flask를 활용한 GraphQL 구조도를 그려보았다.
- Resolver : 데이터 엑세스 및 조작을 위한 임의의 함수
- Ariadne : GraphQL 쿼리언어를 구체화해주는 파이썬 라이브러리

클라이언트가 GraphQL쿼리를 통해서 데이터를 POST로 요청하면 API에서 쿼리를 받는다.
그리고 그 쿼리를 Ariadne라는 라이브러리로 컴파일한 후 Resolver로 보내준다.
Resolver는 DB에 접근해서 클라이언트가 요청한 데이터를 가져와서 Return 해주는 구조로 되어있다.
GraphQL의 조회, 생성, 삭제, 수정 등 모든 요청은 POST로 처리함( 그 이유는 아래에서 설명)
GraphQL 쿼리

GraphQL은 SQL을 바탕으로 만들어진 쿼리언어이기 때문에 SQL 문법과 비교학습을 통해 보다 쉽게 이해할 수 있다. 위 그림처럼 원하는 테이블을 설정하고 가져올 데이터를 GraphQL쿼리로 작성하면 됨
* GraphQL이 POST 요청만 하는 이유
REST API에서는 수정, 조회가 필요할 때 여러번 요청해야 한다. 하지만 GraphQL은 한번의 쿼리 요청으로 REST의 여러번 요청했을때와 같은 효과를 얻을 수 있다.

위 그림을 보면 여러 REST API(수정, 조회) SQL요청을 오른쪽 GraphQL에서는 한번에 처리하는 것을 볼 수 있다. GraphQL이 만약 GET, POST, DELETE를 모두 쓴다면 이러한 장점을 살릴 수 없게 된다.
그래서 GraphQL은 통상적으로 POST로 모든 조회, 수정, 삭제를 요청한다.
다음 포스팅에서는 실제로 GraphQL을 구현하는 예시를 작성
https://zeuskwon-ds.tistory.com/75
[GraphQL] GraphQL로 API구현(조회)
GraphQL 라이브러리 GraphQL 자체는 쿼리 언어이기 떄문에 구체화할 수있는 언어와 라이브러리가 필요 GraphQL의 라이브러리는 아래 링크를 참고하면 된다. https://graphql.org/code/ GraphQL Code Libraries, To..
zeuskwon-ds.tistory.com
'BackEnd' 카테고리의 다른 글
[GraphQL] GraphQL로 API 구현 예제 with python - 생성 (0) | 2022.06.30 |
---|---|
[GraphQL] GraphQL로 API 구현 예제 with python - 조회 (0) | 2022.06.30 |
[GraphQL] GraphQL의 개념과 장단점 2 (0) | 2022.06.27 |
[GraphQL] GraphQL의 개념과 장단점 1 (0) | 2022.06.27 |
REST, RESTful API 특징 및 구현 (0) | 2022.05.02 |