타입 시스템이란? 타입 시스템은 GraphQL에서 데이터의 구조를 명확하게 정의해서 서버와 클라이언트 간의 데이터 전달을 일관되고 정확하게 해주는 중요한 개념이다. GraphQL의 타입 시스템은 다음과 같은 요소로 구성된다.Scalar TypeInt, Float, String, Boolean, IDEnum Type미리 정의된 값의 집합을 가지는 타입Object Type여러 필드를 포함하는 복합 타입Input TypeMutation 인수로 사용되는 타입Interface여러 객체 타입이 공통으로 가져야 하는 필드를 정의Union Type여러 객체 타입 중 하나를 반환할 수 있는 타입 타입 시스템은 이런 요소들을 통해 데이터의 구조를 명확하게 정의한다.그리고 이를 통해 인스트로스펙션과 AST기능을 제공할 수 ..
이번엔 GraphQL의 서버 구성요소에 대해 알아보자. GraphQL의 구성요소GraphQL의 구성요소는 크게 4가지로 나눌 수 있다.스키마미들웨어리졸버ASTGraphQL의 구성요소 - Schema먼저 스키마에 대해 알아보자. 스키마는 GraphQL 서버의 데이터 구조와 API 형태를 정의한다.이러한 스키마는 다시 4가지 구성요소로 나눌 수 있는데, 이 요소들을 스키마 정의 언어(SDL)를 통해 스키마로 작성하고 작성된 스키마는 각 타입의 필드와 관계가 어떻게 되는지 명확하게 규정된다. 그리고 이렇게 작성된 스키마는 GraphQL의 인트로스펙션 기능을 통해 Altair나 GraphQL 보이저 같은 도구에서 문서화나 시각화가 된다. 클라이언트에서는 이러한 특징 덕분에 쉽게 다룰 수 있다. GraphQL..
초기 페이스북 앱은 HTML 웹사이트를 웹뷰로 감싼 형태로 개발되었다.그러나 2012년 트래픽 증가와 함께 이런 구조가 성능 저하와 빈번한 크래쉬를 일으키는 문제가 발생했었다. 이에 페이스북 개발팀은 네이티브 앱으로 전환을 시도하게 되었고, 데이터를 HTML 대신 API로 전송해야 했다.하지만 기존의 REST API는 기대만큼의 성능을 보이지 못했고, 이러한 과정에서 페이스북은 모든 기능과 데이터를 다룰수 있고 사용하기 쉬우며 높은 성능을 가진 Data Fetching API를 필요로 했다.이러한 조건을 충족하기 위해 2012년에 개발된 기술이 바로 GraphQL이다. 그리고 3년 뒤인 2015년 GraphQL은 오픈소스화 되었다. GraphQL이란? GraphQL은 API를 위한 쿼리 언어로 여기에서 ..