🔙뒤로가기

스키마(Schema)

GraphQL 스키마는 서버가 클라이언트에게 제공할 수 있는 데이터의 종류, 데이터의 형태, 데이터 간의 관계 등을 명세한다. 스키마는 서버의 데이터 그래프를 정의하며, 이를 통해 클라이언트는 어떤 쿼리를 보낼 수 있는지 알 수 있다. 또한, 서버는 클라이언트의 쿼리를 스키마에 따라 검증하고 처리할 수 있다.

스키마는 타입 시스템을 이용하여 정의되며, 주요한 타입으로는 객체 타입(Object Type), 스칼라 타입(Scalar Type), 열거 타입(Enum Type), 인터페이스 타입(Interface Type), 유니온 타입(Union Type) 등이 있다.

타입 시스템(Type System)

타입 시스템은 GraphQL의 핵심적인 요소 중 하나로, 쿼리의 결과가 어떤 형태를 가질지를 정의하며 이를 통해 타입 안전성을 보장한다. 스키마 내의 모든 데이터는 특정 타입에 속하게 된다.

enum Role {
  ADMIN
  USER
  GUEST
}

인터페이스 타입(Interface Type)와 유니온 타입(Union Type) : 여러 객체 타입들이 공통적으로 가져야 할 필드를 정의하거나, 여러 객체 타입 중 하나를 반환하도록 정의.