본문 바로가기
쿤즈 Dev/GraphQL

[GraphQL] 스키마(Schema) 정의 방법 (2): Object types

by :)Koon 2021. 5. 19.

지난 포스팅에서 GraphQL의 스키마에 대해서 알아보기 시작했습니다. 우선 스키마를 정의하기 위한 언어인 SDL(Schema Definition Language)을 이용해서 GraphQL의 스키마를 만드는 방법을 알아보고 Scalar types은 무엇인지 알아보았습니다.

이번 포스팅에서는 두 번째로 Object types에 대해서 알아보도록 하겠습니다.


GraphQL 지원되는 타입의 종류

GraphQL에서 스키마 정의에 사용되는 모든 타입들은 아래와 같은 종류가 있습니다.

  • Scalar types
  • Object types
  • The Query type
  • The Mutation type
  • Input types
  • Enum types

이 중에서 이번 포스팅에서는 Object types에 대해서 알아보도록 하겠습니다.


Object types

Object types은 여러개의 Scalar types 또는 다른 Object types을 묶어서 사용하는 타입입니다. 

type Book {
  title: String
  author: Author
}

type Author {
  name: String
  books: [Book]
}

위처럼 기존에 있는 타입이 아닌 새로운 타입을 만들어서 사용합니다. 앞으로도 가장 많이 정의할 타입의 형태입니다. 이렇게 만든 여러 종류의 타입들 내부에서는 Scalar types들이 포함되어 있고 다시 Object types들이 존재할 수 있습니다.

 

Object types을 정의하고 내부에서 다시 Object types을 정의하기 위해서 아래와 같이 사용한다면 오류가 발생합니다.

type Book {
  title: String
  author: {
	name: String
  }
}

Object types을 내부에서 다시 정의할 때에는 새로운 Object types을 만들고 Object types의 형태로 넣어주셔야 합니다. 불편하다 생각할 수도 있지만 재사용 적이 측면에서는 훨씬 좋은 방법이기도 합니다.


이번 포스팅에서는 Object types에 대해서 알아보았습니다. 가장 많이 사용하는 타입입니다. Scalar types과 Object types들은 알아 두어야 이후에 등장하는 Query와 Mutation에서 데이터를 주고받을 때 사용할 수 있습니다. 도움이 되셨으면 합니다. 이상입니다.

댓글