[nodejs] GraphQL 쿼리 언어 데이터 타입 및 스키마
GraphQL은 데이터를 효율적으로 가져오고 조작할 수 있는 강력한 쿼리 언어입니다. 이 쿼리 언어를 사용하여 데이터를 가져오기 위해서는 데이터의 타입과 스키마를 이해해야 합니다.
1. 데이터 타입 정의
GraphQL에서는 데이터의 타입을 명확하게 정의해야 합니다. 주요 데이터 타입은 다음과 같습니다.
- Scalar types: 정수, 부동 소수점 숫자, 문자열, boolean 등과 같이 단일 값으로 표시되는 데이터 타입입니다.
- Object types: 여러 필드를 가지는 복합 데이터 타입입니다.
- List types: 배열 또는 리스트와 같이 여러 개의 값이 포함된 데이터 타입입니다.
2. 데이터 타입 예제
아래는 GraphQL 쿼리 언어에서의 데이터 타입 예제입니다.
type User {
id: ID!
name: String!
age: Int
email: String
}
type Query {
user(id: ID!): User
allUsers: [User]
}
위 예제에서 User
는 Object 타입으로 id
와 name
은 Scalar 타입이며, age
와 email
은 Nullable Scalar 타입입니다. Query
는 루트 쿼리 타입으로, user
와 allUsers
는 각각 인자를 받는 Object 타입과 리스트를 반환하는 Object 타입을 나타냅니다.
3. 스키마 정의
GraphQL에서 데이터의 타입과 관계를 정의하는 것을 스키마라고 합니다. 스키마는 데이터 타입과 필드, 쿼리와 뮤테이션을 정의합니다.
schema {
query: Query
mutation: Mutation
}
위 스키마는 Query
와 Mutation
타입을 정의하고, 각각 쿼리와 뮤테이션을 위한 진입점 역할을 합니다.
이러한 데이터 타입과 스키마 정의는 GraphQL을 통해 데이터를 효율적으로 관리하고 조작하는 데 필수적입니다.
참고 문헌: