[nodejs] GraphQL 쿼리 언어 문법

GraphQL은 API를 쿼리하고 더 효율적으로 데이터를 가져오는 강력한 쿼리 언어입니다. 이 문서에서는 GraphQL의 기본 쿼리 구문과 사용법을 살펴봅니다.

쿼리 기본 구조

GraphQL 쿼리는 중괄호 {} 내에 필드와 인수를 지정하여 작성됩니다. 기본적인 쿼리 구조는 아래와 같습니다.

{
  field1
  field2 {
    subfield1
    subfield2
  }
}

위의 코드에서 field1field2는 원하는 데이터 필드를 나타내며, 중괄호 내에 중첩된 구조로 표현됩니다.

필드 및 인수

GraphQL 쿼리에서는 필드와 필드에 대한 인수를 지정할 수 있습니다. 필드는 가져오고자 하는 데이터를 지정하며, 인수는 필드의 조건을 지정하는데 사용됩니다.

{
  user(id: 123) {
    name
    email
  }
}

위의 예제에서 user 필드는 id 인수를 받아 해당하는 사용자의 nameemail을 가져옵니다.

별칭 사용

GraphQL에서는 필드에 별칭을 지정하여 결과를 다른 이름으로 가져올 수 있습니다. 이를 통해 쿼리 결과를 보다 의미있는 이름으로 지정할 수 있습니다.

{
  myName: user(id: 123) {
    fullName: name
    emailAddress: email
  }
}

위의 예제에서 myNamefullName, emailAddress은 필드에 대한 별칭을 나타냅니다.

프래그먼트 사용

GraphQL에서는 반복적으로 사용되는 필드 집합에 대한 프래그먼트를 사용하여 쿼리를 간결하게 작성할 수 있습니다.

query UserProfile {
  user(id: 123) {
    ...userFields
  }
}

fragment userFields on User {
  name
  email
}

위의 예제에서 fragment 키워드를 사용하여 userFields 프래그먼트를 정의하고, ... 연산자를 통해 해당 프래그먼트를 쿼리에 적용합니다.

이를 통해 GraphQL 쿼리 언어의 기본 문법과 사용법에 대해 알아보았습니다. GraphQL을 사용함으로써 더 효율적으로 데이터를 가져올 수 있고, 필요한 정보만을 쿼리하여 불필요한 데이터 전송을 줄일 수 있습니다.

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

References: