본문 바로가기

REST

[GraphQL] 1. 파이썬과 플라스크로 기본적인 GraphQL 서버 만들어보기 // GraphQL with Flask(Python) GraphQL 시스템 알아보기 GraphQL 서버를 만들려면 GraphQL API를 구성하는 요소들에 대해 알아볼 필요가 있다. GraphQL API는 다음의 요소로 이루어진다. 스키마: DB 스키마가 테이블과 릴레이션을 정의하는 것처럼 GraphQL 스키마는 뮤테이션, 쿼리, 타입과 Enum 등 GraphQL 시스템을 정의한다. 쿼리: CRUD의 Read를 담당하는 부분이다 필드: 쿼리의 속성, DB의 테이블 역할을 수행하고 반환값을 결정한다. 뮤테이션: CRUD의 Create, Update, Delete를 담당한다 리솔버: 쿼리나 뮤테이션 요청이 들어올 때마다 요청에 맞게 리턴값을 만들어 내는 로직 부분이다. 즉, GraphQL 시스템은 스키마로 시스템의 구조를 정의하고, 리솔버에서 행동을 정의한다... 더보기
[GraphQL] 0. 왜 GraphQL을 쓸까? // Why GraphQL? 현재 수많은 웹 서비스와 API들은 REST API를 사용하여 클라이언트-서버 간 통신을 수행한다. 물론 REST API는 좋은 방식이지만 다음과 같은 문제점이 생긴다. 첫번째, 수많은 양의 엔드포인트들 두번째, 데이터가 원한것보다 너무 많음 세번째, 여러가지 데이터를 사용하기 위해 요청을 여러번 해서 데이터를 받아와야 함 (N+1 문제) 네번쨰, 응답 데이터의 구조를 API 도큐멘트 없이 알 수 없다. 그러나 ✨GraphQL✨이란게 있다! GraphQL을 간단히 설명해 보자면 클라이언트-서버 간 통신을 위해 기존 REST에서 사용하는 엔드포인트 방식 대신 DB에 날리는 SQL 쿼리처럼 API 서버를 대상으로 하는 쿼리 언어(Application Query Language)를 사용하는 방식이다. Grap.. 더보기