GraphQL

데이터를 표현하세요

type Project {
  name: String
  tagline: String
  contributors: [User]
}

원하는 것을 요청하세요

{
  project(name: "GraphQL") {
    tagline
  }
}

예측가능한 결과를 얻으세요

{
  "project": {
    "tagline": "A query language for APIs"
  }
}

API를 위한 쿼리 언어

GraphQL은 API를 위한 쿼리 언어이며 이미 존재하는 데이터로 쿼리를 수행하기 위한 런타임 입니다. GraphQL은 API에 있는 데이터에 대한 완벽하고 이해하기 쉬운 설명을 제공하고 클라이언트에게 필요한 것을 정확하게 요청할 수 있는 기능을 제공하며 시간이 지남에 따라 API를 쉽게 진화시키고 강력한 개발자 도구를 지원합니다.

필요한 것을 구체적으로 요청하세요

API에 GraphQL 쿼리를 보내고 필요한 것만 정확히 얻으세요. GraphQL 쿼리는 항상 예측 가능한 결과를 반환합니다. GraphQL을 사용하는 앱은 서버가 아닌 데이터를 제어하기 때문에 빠르며 안정적입니다.

단일 요청으로 많은
데이터를 얻으세요

GraphQL 쿼리는 하나의 리소스 속성에 액세스할 뿐만 아니라 이 리소스 간의 참조를 자연스럽게 이해합니다. 일반적인 REST API는 여러 URL에서 데이터를 받아와야 하지만 GraphQL API는 한번의 요청으로 앱에 필요한 모든 데이터를 가져옵니다. GraphQL을 사용하는 앱은 느린 모바일 네트워크 연결에서도 빠르게 수행할 수 있습니다.

타입 시스템으로
가능한 것을 살펴보세요

GraphQL API는 엔드포인트가 아닌 타입과 필드로 구성됩니다. 단일 엔드포인트에서 데이터의 모든 기능에 접근하세요. GraphQL은 타입 시스템을 사용하여 앱이 가능한 것을 요청하고 명확하고 유용한 오류를 제공하는 것을 보장합니다. 앱은 타입을 사용하여 수동 파싱 코드 작성을 피할 수 있습니다.

강력한 개발자 도구를
사용해보세요

이제 편집기를 벗어나지 않고도 API에서 요청할 수 있는 데이터를 정확히 파악하고, 쿼리를 보내기 전에 잠재적인 문제를 표시해주며, 향상된 코드 인텔리전스를 활용할 수 있습니다. GraphQL을 사용하면 API의 타입 시스템을 활용하여 GraphiQL과 같은 강력한 도구를 쉽게 만들 수 있습니다.

버전 없이 API를
진화시키세요

기존 쿼리에 영향을 주지 않고 GraphQL API에 새로운 필드와 타입을 추가하세요. 오래된 필드는 더이상 사용되지 않도록 도구에서 숨길 수 있습니다. 진화하는 단일 버전을 사용함으로써 GraphQL API는 새로운 기능에 대한 지속적인 엑세스를 제공하고 보다 깨끗하고 유지보수가 쉬운 서버 코드를 작성하도록 도와줍니다.

기존 데이터와
코드를 사용하세요

GraphQL은 특정 데이터베이스에 제한받지 않고 전체 애플리케이션에 걸쳐 균일한 API를 생성합니다. 다양한 언어로 제공되는 GraphQL 엔진으로 기존 데이터 및 코드를 활용하는 GraphQL API를 작성해보세요. 타입 시스템의 각 필드에 대한 함수를 제공하고 GraphQL은 이를 최적, 동시적으로 호출합니다.

GraphQL을 사용하는 회사

Facebook의 모바일 앱은 2012년부터 GraphQL로 제공되었습니다. GraphQL 명세는 2015년부터 제공되었고, 현재 다양한 환경에서 사용할 수 있으며 모든 규모의 팀에서 사용됩니다.

GraphQL을 사용하는 회사들