[typescript] GraphQL 스키마의 관계 정의
GraphQL은 강력한 쿼리 언어이며, 서버 측 스키마에서 다양한 유형 간의 관계를 정의할 수 있습니다.
1. 오브젝트 유형 (Object Types)
오브젝트 유형은 GraphQL 스키마에서 가장 기본이 되는 유형입니다. 이는 서비스에서 반환하거나 가져올 수 있는 객체를 정의합니다. 예를 들면, User
나 Post
와 같은 것들이 있습니다.
type User {
id: ID!
name: String!
posts: [Post]
}
위 코드에서 User
오브젝트는 Post
유형의 배열을 포함하고 있습니다.
2. 인터페이스 (Interfaces)
인터페이스는 여러 객체 유형 간에 공통 필드나 동작을 묶을 때 사용됩니다. 다음의 예시에서 Animal
인터페이스는 Dog
와 Cat
오브젝트 유형에서 사용됩니다.
interface Animal {
id: ID!
name: String!
makeSound: String!
}
type Dog implements Animal {
id: ID!
name: String!
makeSound: String!
breed: String!
}
type Cat implements Animal {
id: ID!
name: String!
makeSound: String!
color: String!
}
3. 연결 (Relations)
GraphQL은 오브젝트 간의 관계를 쉽게 정의할 수 있습니다. 이를 통해 User
오브젝트와 Post
오브젝트 사이의 관계를 정의할 수 있습니다.
type User {
id: ID!
name: String!
posts: [Post]
}
type Post {
id: ID!
title: String!
content: String!
author: User
}
위의 코드에서 User
와 Post
오브젝트 사이에는 일대다 관계가 정의되어 있습니다.
GraphQL을 사용하면 다양한 유형 간의 관계를 간단하게 정의할 수 있어 개발자가 데이터를 효율적으로 가져오고 관리할 수 있습니다.
참고 자료: