# GraphQL API 정보

GraphQL API는 GitHub 가져오려는 데이터를 정확하게 정의할 수 있는 유연성과 기능을 제공합니다.

## 개요

다음은 GraphQL API로 시작하고 실행할 수 있는 몇 가지 빠른 링크입니다.

* [ 인증](/ko/enterprise-server@3.22/graphql/guides/forming-calls-with-graphql#authenticating-with-graphql)
* [루트 엔드포인트](/ko/enterprise-server@3.22/graphql/guides/forming-calls-with-graphql#the-graphql-endpoint)
* [스키마 내적 검사](/ko/enterprise-server@3.22/graphql/guides/introduction-to-graphql#discovering-the-graphql-api)
* [속도 제한](/ko/enterprise-server@3.22/graphql/overview/rate-limits-and-query-limits-for-the-graphql-api)
* [REST에서 마이그레이션](/ko/enterprise-server@3.22/graphql/guides/migrating-from-rest-to-graphql)

GitHub의 API에 대한 자세한 내용은 [GitHub REST API 및 GraphQL API 비교](/ko/enterprise-server@3.22/rest/about-the-rest-api/comparing-githubs-rest-api-and-graphql-api)을 참조하세요.

## GraphQL 정보

[GraphQL](https://graphql.org/) 데이터 쿼리 언어의 특성은 다음과 같습니다.

* **[사양](https://spec.graphql.org/June2018/).** 사양은 API 서버에서 [schema](/ko/enterprise-server@3.22/graphql/guides/introduction-to-graphql#schema) 유효성을 결정합니다. 스키마는 클라이언트 호출의 유효성을 결정합니다.

* **[강력한 형식](#about-the-graphql-schema-reference).** 스키마는 API의 형식 시스템 및 모든 개체 관계를 정의합니다.

* **[성찰적인](/ko/enterprise-server@3.22/graphql/guides/introduction-to-graphql#discovering-the-graphql-api).** 클라이언트는 스키마에 대한 세부 정보를 쿼리할 수 있습니다.

* **[계층적](/ko/enterprise-server@3.22/graphql/guides/forming-calls-with-graphql).** GraphQL 호출의 모양은 반환되는 JSON 데이터의 모양을 반영합니다. [Nested fields](/ko/enterprise-server@3.22/graphql/guides/migrating-from-rest-to-graphql#example-nesting)를 사용하면 단일 왕복에서 지정한 데이터만 쿼리하고 받을 수 있습니다.

* **애플리케이션 레이어.** GraphQL은 storage 모델 또는 데이터베이스 쿼리 언어가 아닙니다.
  \_graph\_는 스키마에 정의된 그래프 구조를 참조합니다. 여기서 [nodes](/ko/enterprise-server@3.22/graphql/guides/introduction-to-graphql#node) 개체를 정의하고 개체 간의 관계를 정의하고 [edges](/ko/enterprise-server@3.22/graphql/guides/introduction-to-graphql#edge) 정의합니다. API는 데이터가 저장되는 방식과 관계없이 스키마 정의에 따라 애플리케이션 데이터를 트래버스하고 반환합니다.

## GitHub GraphQL을 사용하는 이유

GitHub 통합자에게 훨씬 더 많은 유연성을 제공하므로 GraphQL을 선택했습니다. 원하는 데이터를(원하는 데이터만) 정확하게 정의하는 기능은 기존의 REST API 엔드포인트보다 강력한 이점을 제공합니다.— GraphQL을 사용하면 여러 REST 요청을 \_단일 호출\_로 바꾸어 지정한 데이터를 가져올 수 있습니다.

GitHub가 GraphQL에 투자한 이유에 대한 자세한 내용은 원래 [발표 블로그 게시물](https://github.blog/2016-09-14-the-github-graphql-api/)을 참조하세요.

## GraphQL 스키마 참조 정보

사이드바의 문서는 GraphQL GitHub에서 [](/ko/enterprise-server@3.22/graphql/guides/introduction-to-graphql#discovering-the-graphql-api) 생성됩니다. 모든 호출은 스키마에 대해 유효성 검사를 마친 후 실행됩니다. 호출할 수 있는 데이터를 확인하려면 다음 문서를 사용합니다.

* 허용되는 작업: 쿼리 및 변형.

* 스키마로 정의된 유형: 스칼라, 객체, 열거형, 인터페이스, 유니온 및 입력 객체.

인증 및 속도 제한 세부 정보와 같은 기타 정보는 [guides](/ko/enterprise-server@3.22/graphql/guides) 확인하세요.

## 지원 요청

GitHub Apps, OAuth apps, API 개발에 대한 질문, 버그 보고서 및 토론은 [GitHub의 커뮤니티 토론의 API 및 웹후크 범주](https://github.com/orgs/community/discussions/categories/api-and-webhooks)을 탐색합니다. 토론은 GitHub 직원이 검토하고 관리하며 GitHub 커뮤니티에서 답변합니다.

연락처 양식을 사용하여 [GitHub 지원](https://support.github.com/)에 직접 연락하는 것이 좋습니다.

* GitHub 직원의 보장된 응답
* 중요한 데이터 또는 개인 문제와 관련된 지원 요청
* 기능 요청
* GitHub 제품에 대한 피드백

예기치 않은 오류가 발생하면 [githubstatus.com](https://www.githubstatus.com/) 또는 [상태 API를GitHub 사용하여 API](https://www.githubstatus.com/api)에 영향을 주는 인시던트를 확인할 수 있습니다.