🔷 GraphQL★ 용어 사전📖 개요

GraphQL 용어 사전

GraphQL 도메인 전체에서 쓰이는 용어 색인. 처음 보는 단어는 여기서 찾고, 깊이 알고 싶으면 [관련 챕터]로 점프. 출처: GraphQL Spec October 2021, graphql.org Glossary, Apollo Docs, Federation v2 Spec.


카테고리 색인


Schema · SDL · Type System

“스키마는 클라이언트와 서버 사이의 강제 가능한 계약이다.” 자세히: 01-schema-sdl

Argument

한 줄: 필드에 전달되는 입력 — user(id: ID!)id: ID! 부분. 예시: query { user(id: "u_1") { name } } 참고: 01-schema-sdl

Code-first

한 줄: 호스트 언어 코드(타입스크립트/파이썬/Go)로 스키마를 빌더 API로 정의하고 SDL을 런타임에 생성하는 접근. 예시: Pothos, Nexus, TypeGraphQL, graphene, gqlgen. 참고: 도구 · 라이브러리

Custom Scalar

한 줄: 사용자 정의 원시 타입 — DateTime, JSON, BigInt, URL 등 직렬화·파싱 규칙을 직접 적는다. 예시: scalar DateTime + serialize/parseValue/parseLiteral. 참고: 01-schema-sdl/02-types

Directive

한 줄: 스키마 또는 쿼리에 메타데이터를 붙이는 @name(arg: ...) 어노테이션. 예시: field: String @deprecated(reason: "use newField"). 참고: 01-schema-sdl

@deprecated

한 줄: 필드/enum 값의 폐기 예고 — introspection에 노출되어 클라이언트가 경고를 받을 수 있다. 예시: oldName: String @deprecated(reason: "renamed to name").

Enum

한 줄: 미리 정해진 문자열 상수 집합의 타입. 예시: enum Role { ADMIN USER GUEST }.

Field

한 줄: 타입의 한 속성 — 리졸버 한 함수와 1:1 대응. 예시: type User { name: String }name.

Fragment

한 줄: 재사용 가능한 선택 집합 — 동일한 필드 묶음을 여러 쿼리가 공유한다. 예시: fragment UserCard on User { id name avatar }.

Fragment Spread

한 줄: fragment를 쿼리 안에서 호출하는 ...Name 문법. 예시: query { me { ...UserCard } }.

@include

한 줄: 변수에 따라 필드를 포함시키는 조건부 디렉티브. 예시: email @include(if: $includeEmail).

Inline Fragment

한 줄: 이름 없는 즉석 fragment — Union/Interface의 타입별 분기에 자주 쓴다. 예시: ... on Photo { url }.

Input Type

한 줄: Mutation/argument 전용 입력 객체 타입. Object Type과 분리되어 있다. 예시: input CreateUserInput { name: String! email: String! }.

Interface

한 줄: 공통 필드를 약속하는 추상 타입 — 여러 Object Type이 implement 한다. 예시: interface Node { id: ID! }.

Introspection

한 줄: 스키마 자기 자신을 쿼리할 수 있는 GraphQL 고유 기능 — __schema, __type. 예시: query { __schema { types { name } } }. 참고: 07-security-governance (프로덕션에서 잠그는 게 일반적)

ID Scalar

한 줄: 유일 식별자를 표현하는 내장 scalar — 직렬화는 문자열, 의미는 “캐시 키로 쓰는 ID”.

List

한 줄: 동일 타입의 배열 — [String], [User!]!. 예시: posts: [Post!]! (Post 비-Null, 리스트도 비-Null).

Mutation (root)

한 줄: 쓰기 작업을 위한 루트 타입 — 필드들이 직렬로 실행된다. 참고: 02-execution-resolvers

Non-Null (!)

한 줄: null이 결코 오지 않음을 약속하는 타입 수식자. 위반 시 null propagation 발생. 예시: name: String! → null이면 부모까지 null.

Nullability

한 줄: 필드가 null을 가질 수 있는지의 정책 — GraphQL은 기본이 nullable이라는 점이 특이.

Object Type

한 줄: 가장 일반적인 타입 — 필드들의 묶음. 예시: type User { id: ID! name: String! }.

Operation Name

한 줄: 쿼리/뮤테이션에 붙이는 식별 이름 — 로그·캐시·persisted query 키에 쓰임. 예시: query GetUser { ... }GetUser.

Query (root)

한 줄: 읽기 작업을 위한 루트 타입 — 필드들이 병렬로 실행된다.

Scalar

한 줄: 더 쪼갤 수 없는 원시 타입 — Int, Float, String, Boolean, ID 5개가 내장.

Schema

한 줄: Query/Mutation/Subscription 루트와 모든 타입의 집합 — 서버의 공개 계약.

Schema-first

한 줄: SDL을 먼저 적고 그 SDL에 리졸버를 결합하는 접근. graphql-tools, Apollo Server의 기본 패턴.

SDL (Schema Definition Language)

한 줄: GraphQL 스키마를 사람이 읽는 형태로 적은 DSL. 예시: type User { id: ID! name: String! }. 참고: 01-schema-sdl

Selection Set

한 줄: 중괄호 {} 안에 적힌 필드 목록 — 한 타입에서 어떤 필드를 가져올지 선언. 예시: { id name email }.

@skip

한 줄: 변수에 따라 필드를 제외시키는 조건부 디렉티브. 예시: email @skip(if: $hideEmail).

@specifiedBy

한 줄: Custom Scalar의 직렬화 규약 URL을 명시하는 디렉티브 (RFC 등 참조). 예시: scalar UUID @specifiedBy(url: "https://tools.ietf.org/html/rfc4122").

Subscription (root)

한 줄: 실시간 푸시 스트림을 위한 루트 타입 — 보통 WebSocket 위에서 동작. 참고: 04-transport

__schema

한 줄: introspection 루트 — 스키마 전체를 쿼리하는 마법 필드.

__typename

한 줄: 객체의 실제 타입 이름을 돌려주는 메타 필드 — Union/Interface 구분과 normalized cache에서 핵심. 예시: { search { __typename ... on User { name } } }.

Union

한 줄: “A이거나 B” 타입 — 공통 필드 없이 후보들만 나열한다. 예시: union SearchResult = User | Post | Comment.

Variable

한 줄: 쿼리에 외부에서 주입하는 매개변수 — $var로 참조하고 별도 JSON으로 전달. 예시: query($id: ID!) { user(id: $id) { name } }.


Execution · Resolver

“리졸버는 필드 단위 함수의 트리이고, 실행은 그 트리의 깊이 우선 평가다.” 자세히: 02-execution-resolvers

CollectFields

한 줄: spec 알고리즘 — 같은 타입의 중복/조건부 fragment를 펼쳐서 실제 실행할 필드 목록을 만든다.

CompleteValue

한 줄: spec 알고리즘 — 리졸버가 돌려준 값을 타입에 맞게 변환·검증하는 단계 (List/Non-Null 처리 포함).

Context

한 줄: 모든 리졸버가 공유하는 요청 단위 객체 — 인증된 user, DB 커넥션, DataLoader 인스턴스를 담는다. 예시: (parent, args, ctx, info) => ctx.loaders.user.load(parent.userId).

Default Resolver

한 줄: 리졸버를 직접 안 적으면 parent 객체의 동일 이름 속성을 그대로 돌려주는 기본 동작. 예시: user.name → resolver 없이도 동작.

Errors Array

한 줄: GraphQL 응답의 errors 배열 — 부분 성공 시 data와 함께 동시에 채워진다. 예시: { "data": {...}, "errors": [{"path": ["user","email"], "message": "..."}] }.

Execution Tree

한 줄: 쿼리 selection set이 만들어내는 필드 호출의 트리. 깊이 우선으로 평가된다.

Field Coercion

한 줄: spec 단계 — 인자/입력 값을 선언된 타입에 맞게 변환·검증.

formatError

한 줄: Apollo Server 등의 에러 후처리 훅 — 스택 트레이스 제거, 안전한 메시지로 변환.

Info (resolver argument)

한 줄: 리졸버의 4번째 인자 — fieldName, 현재 selection set, schema, path, variableValues 정보를 담는다. 용도: Look-ahead로 JOIN을 미리 결정.

Null Propagation

한 줄: Non-Null 필드가 null이 되면 부모로 null이 전파되어 최악의 경우 root data가 null이 되는 동작. 참고: 02-execution-resolvers

Parallel Execution (query)

한 줄: Query 루트의 형제 필드들은 동시에 실행된다 (read는 부작용 없음).

Partial Response

한 줄: 일부 필드가 실패해도 성공한 필드는 data에 그대로 돌려주는 GraphQL의 응답 모델.

Path

한 줄: 에러의 발생 위치를 가리키는 배열 — ["user", "posts", 0, "title"].

Promise Resolver

한 줄: 리졸버가 Promise/async를 돌려줄 수 있고, 엔진이 await 한다는 사실. DataLoader가 이걸 활용.

Resolver

한 줄: 한 필드를 어떻게 값으로 바꿀지 결정하는 함수 — (parent, args, ctx, info) => value.

Scalar Coercion

한 줄: Scalar 출력 직전의 직렬화 단계 — Date → ISO String 같은 변환.

Selection Set (실행 관점)

한 줄: 필드 분기 트리를 만드는 입력 — execution은 selection set을 따라 재귀 호출된다.

Serial Execution (mutation)

한 줄: Mutation 루트의 형제 필드들은 순서대로 실행된다 (write는 부작용이 있어서).

Source / Parent

한 줄: 리졸버의 1번째 인자 — 한 단계 위 필드가 돌려준 객체. 예시: User.posts(parent, args)parent는 User 객체.


N+1 · DataLoader · Cache

“N+1은 GraphQL의 본질이고, DataLoader는 그것을 단일 tick에서 batch + cache로 흡수한다.” 자세히: 03-n-plus-1-dataloader · 05-cache-performance

Automatic Persisted Query (APQ)

한 줄: 클라이언트가 쿼리의 해시를 보내고, 서버가 해시→쿼리 매핑이 없으면 그때 전체를 받아 저장하는 lazy persisted query. 효과: 전송량 감소 + CDN 캐시 + 쿼리 allowlist.

Batch Function

한 줄: DataLoader의 핵심 — (keys[]) => Promise<values[]> 시그니처로 N개 키를 한 번에 조회하는 함수. 예시: new DataLoader(ids => db.users.findMany({ where: { id: { in: ids } } })).

Cache (per-request)

한 줄: DataLoader 기본 동작 — 한 요청 안에서만 살아 있는 메모리 캐시. 다음 요청에서는 비어 있음.

Cache Hint

한 줄: Apollo의 응답 캐시 디렉티브 — @cacheControl(maxAge: 60, scope: PUBLIC)로 필드별 TTL 지정.

Cache Key Function

한 줄: DataLoader가 Object 키를 받을 때 동일성을 판단하는 함수. 기본은 ===. 예시: { cacheKeyFn: key => JSON.stringify(key) }.

Cache Redirect

한 줄: Apollo Client의 reactive 캐시에서, Query.user(id: "1") 결과를 normalized 캐시의 User:1바로 연결하는 기능.

Connection (Relay)

한 줄: 커서 기반 페이지네이션 규약 — edges[].node + pageInfo. 예시: posts(first: 10, after: "cursor") { edges { node { ... } cursor } pageInfo { hasNextPage } }.

Cursor

한 줄: 페이지 위치 표식 — 보통 ID/timestamp/offset의 base64 인코딩.

dataIdFromObject

한 줄: Apollo Client 캐시가 객체의 ID를 추출하는 함수 — 보통 __typename + id.

DataLoader

한 줄: Facebook이 만든 batch + per-request cache 유틸. N+1을 단일 tick에서 흡수한다. 참고: 03-n-plus-1-dataloader

Dispatch

한 줄: DataLoader가 같은 tick에 모인 key들을 batch function에 한 번에 넘기는 순간.

Edge

한 줄: Relay Connection의 node를 감싸는 wrapper — node + cursor + 메타데이터 자리.

Event Loop

한 줄: JS 런타임의 비동기 실행 모델 — DataLoader의 “단일 tick batch”가 가능한 이유.

fieldPolicy

한 줄: Apollo Client 캐시에서 특정 필드의 read/merge 로직을 커스터마이즈.

Global Object Identification

한 줄: Relay 규약 — 모든 객체가 Node { id: ID! }를 구현하고, id만으로 어떤 객체든 refetch 가능.

Lookahead

한 줄: 리졸버가 info를 분석해 자식 필드를 미리 보고 JOIN/SELECT를 짜는 최적화 기법.

maxAge

한 줄: 캐시 TTL 초 단위 — @cacheControl(maxAge: 60).

Microtask

한 줄: Promise 콜백이 실행되는 큐 — DataLoader는 process.nextTick/microtask에서 dispatch.

N+1 Problem

한 줄: 1번의 부모 쿼리 + N번의 자식 쿼리로 총 N+1번 DB를 때리는 안티패턴. GraphQL의 구조적 함정. 해결: DataLoader / JOIN / Look-ahead. 참고: 03-n-plus-1-dataloader

Normalized Cache

한 줄: 응답 트리를 객체 ID 기준으로 평탄화해서 저장하는 캐시 (Apollo, Relay, urql). 효과: 같은 객체를 여러 곳에서 동시에 갱신.

Optimistic Update

한 줄: Mutation 응답을 기다리지 않고 캐시를 먼저 갱신해 UI를 즉시 반영하는 패턴.

Page Info

한 줄: Relay Connection의 메타데이터 — hasNextPage, hasPreviousPage, startCursor, endCursor.

Persisted Query

한 줄: 쿼리 본문을 사전 등록하고 클라이언트가 ID/해시만 보내는 방식. 보안 + 캐시 + 트래픽 절감. 참고: 05-cache-performance

Projection

한 줄: ORM/DB 쿼리에서 선택된 컬럼만 가져오는 최적화. info parsing + lookahead로 자동화.

Resolve Info Parsing

한 줄: info 객체의 selection set을 파싱해 어떤 자식 필드가 요청됐는지 알아내는 기법. graphql-parse-resolve-info 라이브러리.

Response Cache

한 줄: 응답 전체를 캐시 (HTTP/CDN 또는 in-process). @cacheControl의 hint를 기반으로 동작.

scope

한 줄: @cacheControl(scope: PUBLIC | PRIVATE) — PUBLIC은 CDN/공유 캐시 가능, PRIVATE은 사용자별.

Tick

한 줄: Event Loop의 한 순환. DataLoader는 같은 tick에 들어온 key를 모두 묶는다.

typePolicy

한 줄: Apollo Client 캐시에서 특정 타입의 키 추출·필드 정책을 정의.


Transport · Subscription

“쿼리는 결국 HTTP로 어떻게 흘러가나? Subscription은 어떤 프로토콜 위에서 동작하나?” 자세히: 04-transport

application/graphql-response+json

한 줄: GraphQL-over-HTTP 표준의 응답 Content-Type — 일반 JSON과 구분되어 well-formed GraphQL 응답임을 명시.

complete (message)

한 줄: graphql-ws 메시지 — 클라이언트/서버가 구독 종료를 알릴 때 사용.

connection_ack

한 줄: graphql-ws 메시지 — 서버가 connection_init을 받아들였음을 확인.

connection_init

한 줄: graphql-ws 핸드셰이크 첫 메시지 — 클라이언트가 인증 payload를 함께 보낸다.

@defer

한 줄: 응답의 일부 필드를 나중에 점진 전송하는 디렉티브 — multipart/incremental delivery 위에서 동작. 예시: query { user { name, ...Slow @defer } }.

GET Query

한 줄: 단순 쿼리/persisted query를 GET으로 보내는 방식 — URL 쿼리스트링에 query/variables/operationName. CDN 캐시 친화적.

GraphQL-over-HTTP

한 줄: GraphQL의 공식 HTTP 전송 사양 — Content-Type, status code, error 모델을 정의. 스펙: https://graphql.github.io/graphql-over-http/

graphql-ws

한 줄: GraphQL Subscription의 현재 표준 WebSocket 프로토콜 — connection_init/subscribe/next/complete.

GraphQL-over-WS

한 줄: WebSocket 위에서 GraphQL 메시지를 주고받는 패밀리 — graphql-ws(현재)와 subscriptions-transport-ws(deprecated).

Incremental Delivery

한 줄: @defer/@stream을 위한 응답 모델 — 첫 chunk + 후속 patch들로 응답을 쪼개 보낸다.

Multipart Upload

한 줄: GraphQL 파일 업로드 비공식 표준 — operations + map + 실제 파일 part로 multipart/form-data 전송. 스펙: jaydenseric/graphql-multipart-request-spec

next (message)

한 줄: graphql-ws 메시지 — 서버가 subscription 결과 1건을 보낼 때 사용.

operations + map

한 줄: multipart upload의 필수 두 part — operations(GraphQL 쿼리)와 map(파일이 어느 변수에 매핑되는지).

POST Query

한 줄: GraphQL의 기본 전송 — body에 JSON으로 { query, variables, operationName }.

PubSub

한 줄: Subscription 서버가 이벤트를 발행/구독하기 위한 추상 — Apollo의 PubSub, Redis PubSub, Kafka, NATS 등.

SSE (Server-Sent Events)

한 줄: 단방향 push 채널 — Subscription을 WebSocket 대신 SSE로도 구현 가능 (graphql-sse).

@stream

한 줄: List 필드의 항목들을 스트리밍으로 보내는 디렉티브 — posts @stream(initialCount: 5).

subscribe (message)

한 줄: graphql-ws 메시지 — 클라이언트가 새 subscription을 시작.

Subscription

한 줄: 실시간 푸시 작업 — query/mutation과 달리 수명이 긴 스트림 응답.

subscriptions-transport-ws (deprecated)

한 줄: Apollo의 구 WebSocket 프로토콜 — start/data/stop 메시지. 현재는 graphql-ws로 대체.

Upload Scalar

한 줄: multipart upload에서 파일 변수를 받는 custom scalar — scalar Upload.


Federation

“여러 팀이 하나의 그래프를 나눠 가지는 패턴 — 각 팀의 subgraph가 합쳐져 supergraph가 된다.” 자세히: 06-federation

Apollo Router

한 줄: Apollo Federation v2의 Rust 기반 gateway — 고성능 query planner 내장.

Composition

한 줄: 여러 subgraph 스키마를 하나의 supergraph로 합치는 단계. 충돌·entity 일관성 검증 포함.

_entities

한 줄: Federation의 마법 필드 — gateway가 다른 subgraph로 entity 참조를 보낼 때 사용하는 root query.

Entity

한 줄: Federation의 1급 시민 — @key로 식별되고 여러 subgraph에 흩어져 정의 가능한 타입. 예시: type User @key(fields: "id") { id: ID! ... }.

@external

한 줄: “이 필드는 다른 subgraph가 소유하고 나는 참조만 한다”를 표시.

Federation v1

한 줄: Apollo Federation 1세대 — @key/@external/@requires/@provides 4 디렉티브.

Federation v2

한 줄: 현재 표준 — @shareable/@override/@inaccessible/@link/@composeDirective 추가, 더 유연한 entity 소유권.

Gateway

한 줄: 클라이언트의 단일 진입점 — 받은 쿼리를 subgraph들로 분해·실행·합성한다.

GraphQL Mesh

한 줄: REST/gRPC/OpenAPI/DB까지 모두 GraphQL로 합치는 범용 mesh — Federation의 대안 또는 보완.

Hot Chocolate Fusion

한 줄: .NET Hot Chocolate의 자체 Federation 구현 — Apollo Federation과 호환되면서도 독자 진화.

@inaccessible

한 줄: 필드를 supergraph에서 숨김 — subgraph끼리만 보고 외부엔 노출 안 됨. 점진적 deprecation에 유용.

@key

한 줄: Entity의 식별 필드를 선언 — 다른 subgraph가 이 키로 entity를 참조한다. 예시: type Product @key(fields: "sku").

한 줄: Federation v2의 import 디렉티브 — 외부 spec(https://specs.apollo.dev/federation/v2.0)을 가져온다.

@override

한 줄: “이 필드의 소유권을 내 subgraph로 가져오겠다”를 선언 — 점진 마이그레이션용.

@provides

한 줄: “외부 entity의 이 필드를 내가 미리 채워서 돌려줄 수 있다” — round-trip 절약.

Query Plan

한 줄: Gateway가 만든 실행 계획 — 어떤 subgraph에 어떤 부분 쿼리를 보낼지 + 의존 관계 + 합치는 순서.

@requires

한 줄: “이 필드를 풀려면 외부 entity의 다른 필드가 먼저 필요하다”를 선언. 예시: weight @requires(fields: "size").

__resolveReference

한 줄: Entity 참조 리졸버 — _entities가 호출 시 { __typename, id } 같은 ref를 받아 실제 객체로 복원.

Rover

한 줄: Apollo의 Federation CLI — 스키마 publish/check/compose 등.

Schema Stitching (legacy)

한 줄: Federation 이전의 스키마 합성 방식 — mergeSchemas로 여러 스키마를 합쳤지만 entity 개념이 약함. 현재는 graphql-tools에 일부 남아 있음.

@shareable

한 줄: “이 필드는 여러 subgraph가 동시에 소유해도 된다”를 명시 — v2의 핵심 완화.

Subgraph

한 줄: Federation을 구성하는 개별 GraphQL 서비스 — 보통 한 팀이 소유.

Supergraph

한 줄: 모든 subgraph가 합성된 전체 그래프 — 클라이언트가 보는 단일 스키마.


Security · Governance

“한 엔드포인트에 모든 쿼리가 들어오는 이상, 한 곳에서 다 막아야 한다.” 자세히: 07-security-governance

@auth directive

한 줄: 필드/타입에 인증·인가 요구를 선언하는 커스텀 디렉티브 — field: String @auth(role: ADMIN).

Allowlist

한 줄: 미리 등록된 쿼리만 실행 — 알지 못하는 쿼리는 거부. 가장 강한 보호책.

Authentication

한 줄: “누구냐”를 결정 — 보통 transport 레벨(JWT, 세션)에서 끝낸 뒤 context에 user를 넣는다.

Authorization

한 줄: “이 user가 이 필드를 볼 권한이 있나” — 필드 단위로 적용해야 over-fetching 방지가 가능.

Backward Compatibility

한 줄: 기존 클라이언트가 깨지지 않게 스키마를 진화시키는 원칙 — 필드 제거 대신 @deprecated, 비-Null 추가 대신 nullable 추가.

Complexity Analysis

한 줄: 쿼리에 점수를 매겨 임계치를 넘으면 거부 — depth보다 정교한 비용 모델. 예시: graphql-query-complexity, Apollo @cost.

Depth Limit

한 줄: 쿼리의 최대 중첩 깊이 제한 — friend → friend → friend → ... 같은 cycle 공격 방지.

Deprecation

한 줄: 폐기 예고 — @deprecated(reason: "...")로 introspection에 노출.

Forward Compatibility

한 줄: 미래 클라이언트가 새 필드를 추가 요청해도 깨지지 않게 서버를 설계하는 원칙.

graphql-eslint

한 줄: GraphQL 스키마/쿼리에 대한 ESLint plugin — naming/deprecation/anonymous operation 등 lint.

graphql-shield

한 줄: 권한 규칙을 선언적으로 매핑하는 라이브러리 — User: { secret: isAdmin }.

Introspection Control

한 줄: 프로덕션에서 introspection을 잠그거나 인증된 사용자에게만 허용 — 공격 표면 축소.

Persisted Allowlist

한 줄: Persisted Query + Allowlist의 결합 — 클라이언트가 빌드 타임에 등록한 쿼리만 ID로 실행. 사실상 최강 조합.

Query Cost

한 줄: complexity analysis가 매기는 점수 — 보통 필드 수 × 리스트 인자 같은 휴리스틱.

Rate Limit Points

한 줄: 시간당 사용자가 쓸 수 있는 query cost 총합 — GitHub API v4가 이 모델 사용.

Schema Linting

한 줄: 스키마에 대한 정적 검사 — naming convention, breaking change 탐지 등.

Versioning-less

한 줄: GraphQL은 보통 /v1, /v2 같은 URL 버전을 두지 않고, @deprecated로 진화한다는 철학.


도구 · 라이브러리

“구현체와 도구 — 어떤 언어/스택에 어떤 옵션이 있나?”

AppSync

한 줄: AWS의 매니지드 GraphQL — DynamoDB/Lambda/RDS 등 resolver를 VTL/JS로 작성.

Apollo Client

한 줄: 가장 널리 쓰이는 JS GraphQL 클라이언트 — normalized cache, React/Vue/Angular integration.

Apollo Explorer

한 줄: Apollo Studio의 IDE — schema-aware 쿼리 편집기.

Apollo Router

한 줄: Federation v2 gateway의 Rust 구현 — Node.js gateway보다 훨씬 빠르다.

Apollo Server

한 줄: 가장 보편적인 Node.js GraphQL 서버 — Federation 1세대 발원지.

Apollo Studio (now GraphOS)

한 줄: Apollo의 SaaS — schema registry, metrics, query plan, breaking change 탐지.

gqlgen

한 줄: Go의 code-first GraphQL 서버 — schema-first로 SDL 받고 타입 안전한 resolver 코드를 생성.

graphene

한 줄: Python의 GraphQL 라이브러리 — Django/SQLAlchemy/Flask integration.

GraphQL Inspector

한 줄: 스키마 변경을 분석하는 CLI/CI 도구 — breaking change 탐지, similar field 찾기.

graphql-codegen

한 줄: 스키마/쿼리에서 타입스크립트/Java/Swift 타입과 클라이언트 코드를 생성하는 CLI.

graphql-js

한 줄: GraphQL의 공식 reference 구현 (JavaScript) — 모든 JS 서버의 토대.

GraphQL Mesh

한 줄: REST/OpenAPI/SOAP/gRPC/DB를 GraphQL로 통합하는 범용 mesh — Federation 없이도 단일 그래프 구성.

graphql-request

한 줄: 미니멀 GraphQL 클라이언트 — 캐시·구독 없이 fetch 한 줄. Node/스크립트용.

GraphQL Yoga

한 줄: The Guild이 만든 모듈러 Node.js GraphQL 서버 — Envelop 기반 플러그인, Cloudflare Workers 등 다양한 런타임 지원.

GraphiQL

한 줄: GraphQL의 공식 IDE — 브라우저에서 쿼리 작성·실행·introspection 탐색.

GraphOS

한 줄: Apollo Studio의 새 이름 — Federation을 위한 control plane.

Hasura

한 줄: Postgres/MySQL/SQL Server를 즉시 GraphQL로 노출하는 engine — 권한도 선언적으로 작성.

Hot Chocolate

한 줄: .NET의 GraphQL 서버 — code-first, source generator 기반.

Mercurius

한 줄: Fastify 위에 올라간 고성능 Node.js GraphQL 서버 — Apollo Server보다 빠른 처리량으로 알려짐.

Nexus

한 줄: 타입스크립트 code-first schema builder — objectType/extendType API.

PostGraphile

한 줄: Postgres 스키마(테이블·뷰·함수)를 GraphQL로 자동 변환하는 서버.

Pothos

한 줄: 타입스크립트 code-first의 현재 최강 schema builder — 강타입 plugin 생태계.

Relay

한 줄: Meta가 만든 GraphQL 클라이언트 — fragment colocation, compiler 기반 최적화, Connection spec 발원지.

Rover

한 줄: Apollo CLI — Federation subgraph 관리.

Stellate

한 줄: GraphQL edge cache CDN — @cacheControl hint 기반으로 응답을 전 세계 edge에서 캐시.

TypeGraphQL

한 줄: 타입스크립트 데코레이터 기반 code-first — @Resolver/@Query/@Mutation.

urql

한 줄: 가벼운 React GraphQL 클라이언트 — document cache가 기본, normalized cache는 plugin.


카테고리 분포

이 사전이 다루는 용어가 어디에 가장 몰려 있나.


다음 단계

  • 모르는 용어가 있다면 → Cmd+F로 이 페이지에서 검색.
  • 깊이 알고 싶다면 → 각 용어 옆 참고 링크의 챕터로 점프.
  • 더 많은 용어가 필요하다면 → GraphQL Spec October 2021 부록 색인 참조.