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

Vue.js는 사용자 인터페이스를 구축하기 위한 프레임워크이고, D3.js는 데이터 시각화를 위한 자바스크립트 라이브러리입니다. 이 두 기술을 함께 사용하면 동적이고 상호작용하는 데이터 시각화를 쉽게 구현할 수 있습니다.

D3.js 설치하기

먼저, D3.js를 사용하기 위해 npm으로 패키지를 설치해야 합니다. 아래 명령을 사용하여 설치합니다.

npm install d3

Vue.js에서 D3.js 사용하기

Vue.js에서 D3.js를 사용하기 위해서는 먼저 D3.js를 Vue 컴포넌트에 로드해야 합니다. 이를 위해, Vue 컴포넌트의 created() 훅 안에 아래 코드를 추가합니다.

import * as d3 from 'd3';

이제 D3.js를 사용하여 데이터 시각화를 구현할 준비가 되었습니다.

예시: 막대 그래프 생성하기

이제 Vue.js와 D3.js의 연동 방법을 예시로 살펴보겠습니다. 막대 그래프를 생성하는 예제입니다.

<template>
  <div id="chart"></div>
</template>

<script>
import * as d3 from 'd3';

export default {
  mounted() {
    this.createBarChart();
  },
  methods: {
    createBarChart() {
      const data = [10, 20, 30, 40, 50];

      const svg = d3.select("#chart")
        .append("svg")
        .attr("width", 500)
        .attr("height", 300);

      const bars = svg.selectAll("rect")
        .data(data)
        .enter()
        .append("rect")
        .attr("x", (d, i) => i * 50)
        .attr("y", (d) => 300 - d * 5)
        .attr("width", 40)
        .attr("height", (d) => d * 5)
        .attr("fill", "steelblue");
    },
  },
};
</script>

위 코드에서는 Vue 컴포넌트의 mounted() 훅을 사용하여 차트를 생성합니다. createBarChart() 메소드 내에서 D3.js를 사용하여 막대 그래프를 생성합니다. 데이터 배열을 기반으로 각 막대의 위치와 크기를 설정하고, SVG 요소에 추가합니다.

결론

Vue.js와 D3.js는 강력한 조합으로, 데이터 시각화를 쉽게 구현할 수 있도록 도와줍니다. 이 글에서는 간단한 예시를 통해 Vue.js와 D3.js의 연동 방법을 살펴보았습니다. 더 복잡한 시각화를 구현하려면 D3.js의 다양한 기능을 탐구하고 Vue.js와 통합하는 방법을 학습해야 합니다.

참고 자료