🔙뒤로가기

GraphQL의 개념

Facebook에서 개발하고 2015년에 공개한 데이터 질의어이며 API를 위한 쿼리 언어이다. GraphQL은 클라이언트 측에서 필요한 데이터를 정확하게 요청할 수 있도록 해준다. 즉, 클라이언트가 서버로부터 필요한 정보만을 받아올 수 있게 하는 구조를 가지고 있다.

GraphQL의 특징

  1. 데이터 중심적 접근 : GraphQL은 데이터 중심적인 접근을 통해 클라이언트가 필요한 데이터의 구조를 정의하고, 그에 따른 데이터를 받아올 수 있다.
  2. 타입 시스템 : GraphQL은 강력한 타입 시스템을 가지고 있어, 요청의 형태와 반환되는 데이터의 형태를 정확하게 지정할 수 있다.
  3. 하나의 요청 : 클라이언트는 하나의 요청으로 필요한 모든 정보를 가져올 수 있다. 즉, 복잡한 데이터 구조를 요청할 때, 여러 API 요청 대신 하나의 GraphQL 쿼리로 충분하다.
  4. 클라이언트 주도 : GraphQL은 클라이언트 주도형 아키텍처이기 때문에 클라이언트에서 필요한 데이터를 지정하고, 그에 따라 서버가 응답한다. 이로 인해 데이터 오버페치와 언더페치 문제를 효과적으로 해결한다.
  5. 실시간 업데이터 : GraphQL의 Subscription 기능을 통해 서버에서 클라이언트로 실시간 데이터를 전달하는 것이 가능하다.
  6. API 버전 관리 필요 없음 : 필요한 정보를 정확하게 요청할 수 있기 때문에, 기존의 REST API에서 발생하는 여러 버전의 API를 관리하는 문제가 발생하지 않는다.

<aside> 💡 데이터 오버페칭(Over-fetching)과 언더페칭(Under-fetching이란?