[javascript] Vue.js와 GraphQL의 연동 방법

이번 글에서는 Vue.js와 GraphQL을 연동하는 방법에 대해 알아보겠습니다. Vue.js는 사용자 인터페이스를 구축하기 위한 JavaScript 프레임워크이고, GraphQL은 데이터를 쉽게 가져오고 조작하기 위한 쿼리 언어입니다.

1. GraphQL 서버 설정

먼저 GraphQL 서버를 설정해야 합니다. GraphQL 서버는 데이터를 제공하고 쿼리를 처리하는 역할을 합니다. 대부분의 GraphQL 서버는 Node.js 기반으로 작성됩니다.

const express = require('express');
const { graphqlHTTP } = require('express-graphql');
const { buildSchema } = require('graphql');

// GraphQL 스키마 정의
const schema = buildSchema(`
  type Query {
    hello: String
  }
`);

// 쿼리 처리 함수 정의
const root = {
  hello: () => 'Hello, World!'
};

const app = express();

// GraphQL 엔드포인트 설정
app.use('/graphql', graphqlHTTP({
  schema: schema,
  rootValue: root,
  graphiql: true
}));

// 서버 시작
app.listen(3000, () => {
  console.log('GraphQL Server is running on http://localhost:3000/graphql');
});

위 코드에서 buildSchema 함수를 사용하여 GraphQL 스키마를 정의하고, root 객체에서 쿼리에 대한 처리 함수를 정의합니다. 그리고 graphqlHTTP 미들웨어를 사용하여 GraphQL 엔드포인트를 설정하고 GraphQL 서버를 시작합니다.

2. Vue.js 프로젝트 설정

이제 Vue.js 프로젝트에 GraphQL을 연동해보겠습니다. Vue.js 프로젝트를 생성한 후, 필요한 의존성 패키지를 설치해야 합니다.

npm install apollo-boost vue-apollo graphql

Vue.js에서 GraphQL을 사용하기 위해 apollo-boost, vue-apollo, graphql 패키지를 설치합니다.

3. Vue.js 컴포넌트에서 GraphQL 사용하기

Vue.js 컴포넌트에서 GraphQL을 사용하려면 vue-apollo를 사용하여 GraphQL 클라이언트를 생성하고, 컴포넌트에서 필요한 쿼리를 작성해야 합니다.


<template>
  <div>
    <h1>{{ greeting }}</h1>
  </div>
</template>

<script>
import gql from 'graphql-tag';

export default {
  apollo: {
    greeting: gql`
      query {
        hello
      }
    `
  }
};
</script>


위 코드에서 vue-apolloapollo 속성을 사용하여 GraphQL 쿼리를 작성합니다. 여기서는 greeting이라는 쿼리가 hello 필드를 가져오도록 정의되어 있습니다.

Vue.js 컴포넌트의 템플릿에서는 greeting 변수를 사용하여 데이터를 렌더링할 수 있습니다.

결론

이렇게 Vue.js와 GraphQL을 연동하는 방법에 대해 알아보았습니다. GraphQL 서버를 설정하고 Vue.js 프로젝트에 GraphQL을 연동하여 데이터를 가져오고 조작하는 것은 간단하게 할 수 있습니다. 이를 통해 개발자는 손쉽게 원하는 데이터를 가져오고 사용자에게 보여줄 수 있습니다.

참고 자료: