[nodejs] GraphQL 쿼리 언어 선택적 필드

GraphQL은 데이터를 쿼리하기 위한 강력한 언어이며, 클라이언트는 서버에서 정확히 원하는 데이터를 가져올 수 있습니다. 이것은 GraphQL이 REST API보다 더 유연하고 효율적으로 필요한 데이터만 가져올 수 있게 해주는 이유 중 하나입니다. GraphQL을 사용하면 클라이언트가 필요한 데이터만 요청할 수 있으므로 네트워크 트래픽을 줄일 수 있고, 응답 시간을 단축할 수 있습니다.

이번 예제에서는 Node.js 환경에서 GraphQL을 사용하여 선택적 필드를 가져오는 방법을 알아보겠습니다.

스키마 정의

먼저, GraphQL 스키마를 정의해야 합니다. 이를 통해 클라이언트가 요청할 수 있는 필드를 명시적으로 정의할 수 있습니다. 다음은 간단한 사용자 스키마의 예시입니다.

type User {
  id: ID!
  name: String!
  email: String!
  age: Int
  address: String
}

Resolver 구현

스키마를 정의한 후에는 Resolver를 구현해야 합니다. Resolver는 실제 데이터를 반환하는 역할을 합니다. 선택적 필드를 가져오기 위해 필요한 데이터만 조회하고 반환해야 합니다.

예를 들어, 사용자의 나이나 주소 필드는 선택적 필드로 정의되었으므로, Resolver는 해당 필드에 대한 데이터를 가져와야 합니다.

const resolvers = {
  User: {
    age: (parent, args, context, info) => {
      // age 필드에 대한 데이터 조회 로직
    },
    address: (parent, args, context, info) => {
      // address 필드에 대한 데이터 조회 로직
    },
  },
};

쿼리 실행

마지막으로, 클라이언트가 선택적 필드를 요청하면 Resolver가 해당 필드에 대한 데이터를 반환하도록 해야 합니다.

query {
  user(id: "123") {
    name
    email
    age
  }
}

위의 쿼리에서 나이 필드는 선택적이므로, Resolver는 해당 필드에 대한 데이터를 조회하고 클라이언트에게 반환해야 합니다.

이와 같이 GraphQL을 사용하여 선택적 필드를 가져오는 방법을 간단히 살펴봤습니다. GraphQL을 사용하면 클라이언트가 정확히 필요한 데이터를 요청할 수 있으므로 효율적으로 데이터를 가져올 수 있습니다.

더 자세한 내용은 GraphQL 공식 문서를 참고하시기 바랍니다.