Persisted Queries
GraphQL 쿼리를 사용하여 REST처럼 사전 정의된 엔드포인트를 생성하고, 두 API의 장점을 모두 누리세요.

Click to watch tutorial video - 08:19
REST API에서는 사전 정의된 데이터 세트를 각각 반환하는 여러 엔드포인트를 생성합니다. 반면 GraphQL API에서는 단일 엔드포인트에 원하는 쿼리를 전달하여 요청한 데이터만 정확히 반환받습니다.
Persisted queries는 일반적인 GraphQL 쿼리이지만, 서버에 저장되어 고유한 URL로 접근할 수 있어 REST 엔드포인트를 에뮬레이트합니다. 이를 통해 두 API의 장점을 모두 누리면서 각각의 단점을 피할 수 있습니다:
| 장점 | 단점 |
|---|---|
✅ GET 또는 POST로 접근 가능 | POST로만 접근 가능 |
| ✅ 서버 또는 CDN에서 캐시 가능 | |
| ✅ 안전성: 의도한 데이터만 노출 | |
| ✅ 데이터 과소/과다 조회 없이 단일 요청으로 모든 데이터 취득 | |
| ✅ 프로젝트의 빠른 반복 개발 가능 | |
| ✅ 자체 문서화 가능 | |
| ✅ 클라이언트가 쿼리를 생성하고 게시할 수 있음 |

Persisted query가 게시되면 해당 퍼머링크를 통해 실행할 수 있습니다.
Persisted query는 GraphiQL 클라이언트에서 실행하거나, (GET으로 접근 가능하기 때문에) 브라우저에서 직접 실행할 수도 있으며, 요청한 데이터를 JSON 형식으로 받을 수 있습니다:

Persisted queries는 카테고리와 계층 구조로 관리할 수 있습니다.
