[nodejs] GraphQL 쿼리 언어 프래그먼트 재사용성

GraphQL을 사용하는 개발자라면 쿼리 언어의 재사용성에 관심이 있을 것입니다. 여러 쿼리에서 공통적으로 사용되는 프래그먼트를 정의하여 코드를 단순화하고 유지보수성을 높일 수 있습니다.

프래그먼트란?

프래그먼트는 GraphQL에서 여러 필드를 포함하는 재사용 가능한 코드 조각입니다. 예를 들어, 다음과 같이 사용자의 이름과 이메일 주소를 포함하는 프래그먼트를 정의할 수 있습니다.

fragment UserInfo on User {
  name
  email
}

위의 코드에서 UserInfo는 프래그먼트의 이름이고, User는 해당 프래그먼트를 적용할 타입입니다.

프래그먼트의 재사용

프래그먼트를 사용하여 중복을 줄이고 쿼리 코드를 간소화할 수 있습니다. 예를 들어, 여러 쿼리에서 동일한 프래그먼트를 사용하고 싶을 때는 프래그먼트 이름을 쿼리에 적용하면 됩니다.

query {
  getUser(id: 1) {
    ...UserInfo
  }
}

위의 코드에서 ...UserInfoUserInfo 프래그먼트를 사용하여 getUser 쿼리 결과에 nameemail 필드를 포함시킵니다.

프래그먼트 확장

때로는 특정 쿼리에 프래그먼트에 추가 필드를 포함해야할 때가 있을 것입니다. 이때는 프래그먼트를 확장하여 필요한 필드를 추가할 수 있습니다.

query {
  getUser(id: 1) {
    ...UserInfo
    bio
  }
}

위의 코드에서 ...UserInfo 프래그먼트를 사용하고, 추가로 bio 필드를 포함하여 결과를 얻을 수 있습니다.

프래그먼트를 적절히 활용하면 쿼리의 재사용성과 가독성을 높일 수 있습니다.

이상으로 GraphQL의 프래그먼트 재사용성에 대해 알아보았습니다. 감사합니다.

참고 자료