[nodejs] GraphQL 쿼리 언어 에일리어스(Alias) 예제

GraphQL은 데이터를 가져오기 위한 강력한 쿼리 언어입니다. 에일리어스(Alias)는 GraphQL에서 필드의 별칭을 지정할 수 있게 해주는 기능입니다. 이 기능을 사용하면 여러 필드를 한 번에 가져올 때 필드명을 변경할 수 있어 가독성을 높이고 중첩된 쿼리에서 중복을 줄일 수 있습니다.

에일리어스(Alias)는 쿼리의 필드명 뒤에 콜론(:)을 사용하여 지정할 수 있습니다. 이를 통해 여러 필드에 동일한 데이터를 가져와도 별칭을 이용해 서로 다른 필드명으로 데이터를 받을 수 있습니다.

에일리어스(Alias) 예제

다음은 Node.js에서 GraphQL을 사용하여 에일리어스(Alias)를 적용한 예제 코드입니다.

const { graphql, buildSchema } = require('graphql');

// GraphQL 스키마 정의
const schema = buildSchema(`
  type Query {
    employee: Employee
  }

  type Employee {
    id: ID
    name: String
    department: String
  }
`);

// 실제 데이터
const fakeDatabase = {
  1: { id: '1', name: 'John Doe', department: 'Engineering' },
  2: { id: '2', name: 'Jane Smith', department: 'Marketing' },
};

// Root resolver
const root = {
  employee: () => fakeDatabase[1],
};

// 에일리어스(Alias)를 사용한 GraphQL 쿼리
const query = '{ john: employee { id, name }, jane: employee { id, department } }';

// 쿼리 실행
graphql(schema, query, root).then((result) => {
  console.log(result);
});

위의 코드는 간단한 직원 정보를 가상의 데이터베이스에서 가져오는 예제입니다. 에일리어스(Alias)를 사용하여 id, name, department 필드에 각각 johnjane이라는 별칭을 지정하여 데이터를 받아오고 있습니다.

이를 실행하면 아래와 같은 결과가 출력됩니다.

{ data: { john: { id: '1', name: 'John Doe' }, jane: { id: '1', department: 'Engineering' } } }

이와 같이 GraphQL의 에일리어스(Alias)를 통해 필드의 별칭을 지정하여 쿼리를 작성할 수 있습니다.