[JS] D3.js (라이브러리)

Yeong·2025년 2월 20일

왜 사용하는가?!

  1. SVG를 통해 다양한 해상도에서 깨짐없는 시각화 표현이 가능하다.
  2. 단순히 템플릿을 선택하는 것이 아닌 자유로운 커스텀이 가능하다.
  3. 웹 표준인 HTML, CSS, SVG로 구현되어 프레임워크의 제약이 적다.

D3.js는 데이터를 기반으로 웹에서 동적인 시각화를 만들기 위한 JavaScript 라이브러리이다.
D3는 DOM을 직접 제어하고, React는 Virtual DOM으로 제어한다.
이 둘을 통합으로 사용하려면 일반적으로 DOM은 React가 담당하고, 화면의 복잡한 계산은 D3가 담당하는 것이다.

SVG path 계산, scale, layouts, transformations 등의 선 / 도형 등의 모양을 계산을 D3가 하고, 나머지 DOM은 React가 처리하는 것 !!

💡 D3 사용하기

D3를 사용하는 방법은 useRef로 graph, circle 과 같은 🌟svg Element를 넣을 DOM을 선언하고, 🌟selection 객체를 만들어 사용하면 된다. 그리고 Ref를 useEffect 내부에 넣어주어 관리하면 된다.

  1. useRef를 사용하여 DOM을 선택한다.
  2. useEffect를 사용하여 DOM이 변경될 때마다 D3를 사용한다.
  3. D3를 사용할 때는 select, selectAll, data, join, enter, update, exit를 사용한다.
  4. select는 선택한 DOM을 반환한다.
    selectAll은 선택한 DOM을 배열로 반환한다.
  5. data는 데이터를 반환한다.
  6. join은 데이터를 기반으로 DOM을 생성한다.

📝 SVG란 ?

확장 가능한 벡터 그래픽으로 XML 기반의 2차원 그래픽이다. HTML 태그의 집합으로 이루어져 있다.(=즉, CSS와 JS로 컨트롤이 가능하다.)

  • 장점 : 아무리 확대를 해도 이미지가 깨지지 않고, 이미지 크기를 키워도 용량이 늘어나지 않는다.
  • 단점: 코드로 이루어진 이미지이기 때문에 복잡한 이미지일수록 파일 사이즈가 커진다. 그렇기에 단순한 아이콘이나 로고, 도형 등을 구현할 때 사용하는 것이 좋다.

  1. 우리나라 svg 파일을 받아와서 그 안에서 호버, 클릭이벤트 등을 할 수 있는 방법(커스텀가능)
  2. d3.js 를 활용한 지도 만들기

https://slownews.kr/43212

0개의 댓글