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

GraphQL은 클라이언트가 서버로 요청한 데이터의 구조를 정확하게 정의할 수 있는 강력한 쿼리 언어입니다. 이것은 클라이언트가 서버에서 반환받기를 원하는 필드를 정확하게 명시할 수 있게 도와줍니다.

필드 선택

보통 REST API에서는 엔드포인트 하나에 대해 모든 필드 값을 반환받는 경우가 많습니다. 그러나 GraphQL에서는 클라이언트가 필요로 하는 필드만 선택하여 요청할 수 있습니다.

query {
  user(id: "1") {
    name
    email
  }
}

위의 쿼리에서 nameemail 필드만 선택하여 특정 사용자 정보를 요청하고 있습니다.

별칭(alias)

GraphQL에서 별칭(alias)은 서버 응답에서 필드의 이름을 변경하는 방법입니다.

query {
  firstUser: user(id: "1") {
    name
    email
  }
  secondUser: user(id: "2") {
    name
    email
  }
}

위의 쿼리에서 firstUsersecondUser는 서버 응답에서 사용자 정보를 구분짓기 위한 별칭입니다.

인라인 프래그먼트 (inline fragments)

GraphQL 쿼리에서 특정 유형에 따라 필드를 선택하기 위해 인라인 프래그먼트를 사용할 수 있습니다.

query {
  user(id: "1") {
    name
    ... on StandardUser {
      age
    }
    ... on PremiumUser {
      subscriptionEndDate
    }
  }
}

위의 쿼리에서 StandardUserPremiumUser 타입에 따라 다른 필드를 선택하고 있습니다.

GraphQL을 사용하면 클라이언트는 필요한 데이터만을 선택하여 요청하고, 서버는 정확하게 그 필드만을 응답할 수 있어서 효율적이고 유연한 데이터 통신을 가능케 합니다.

더 자세한 내용은 GraphQL 공식 문서를 확인할 수 있습니다.