던파 api로 그래프를 만들 때 처음에는 ChartistJS라는 차트 라이브러리를 사용하려고 했다. ChartistJS의 장점은 그래프 이미지를 svg로 제공한다는 것이다.
svg는 레스터화 이미지 혹은 비트맵 이미지(JPG, GIF, PNG)와 비교했을 때 웹사이트 로딩속도가 빠르고, 크기에 따라 이미지가 왜곡되거나 품질이 떨어져 보이지 않는다. 그렇기 때문에 하드웨어 해상도가 높은 디바이스에서도 품질 저하없이 볼 수 있다는 장점을 가지고 있다.
그래서 웹앱으로 반응형 설계를 할때 그래프의 이미지가 깨지거나 품질저하되는 것을 막기위해 ChartistJS를 고려했다.
하지만 ChartistJS 대신 ChartJS를 사용했는데 가장 큰 이유는 타입선언 라이브러리가 제공되지 않는 문제 때문이었다.
많은 JS 라이브러리가 있는데 이들을 TS에서 사용하려면 타입정의를 해야한다. 이런 타입정의를 오픈소스화 해놓은 Definitely Typed가 있는데 만약 여기에 본인이 사용하는 라이브러리가 있다면 감사하며 사용하면 되고,
별도의 타입정의가 되지 않았을 경우 타입정의를 하나하나 해주어야 하는데 여간 귀찮은게 아니다.
아쉽게도 ChartistJS는 전자에 해당하지 않았고, 내가 어떤 함수를 사용할지도 모르는데 일일이 타입을 지정하기에는 일이 복잡해질것 같아 Definitely Typed를 사용할 필요도 없이 그냥 npm 설치만 하면 되는 ChartJS를 사용하기로 했다.
참조
https://velog.io/@fkszm3/SVG%EB%9E%80 - svg란
https://rkdvnfma90.tistory.com/259 - TS 외부 라이브러리 모듈화