Dashboard 제작에 관한 고민
웹개발을 하다가 대시보드 제작 업무로 업무가 변경이 되었다. 대시보드 개발은 처음인지라 이것 저것 자료 조사를 해보고 고민을 해봤다. 1. tableau (유료) 기본적으로 로직은 tabpy를 이용하고, tableau desktop을 설치하여 사용하는 방식이다. tabpy는 무료이지만 tableau desktop은 월 구독 서비스이다. 사용을 고려해보긴 했지만, 체험판 기간이 14일로 길지는 않아서 제대로 된 서비스를 이용해 본적은 없다. 2. finereport (유료) 체험판 기능만으로도 괜찮은 대시보드 구현이 가능하지만, 체험판 기능으로는 aws 배포가 어렵다. aws에서 따로 유료 서비스를 하고 있기 때문. desktop 프로그램에서 DB에 직접 연결하여 간단한 쿼리문 작성하고 그림을 그려볼 수 있다. 배포하는 것을 관리해주는 툴이 따로 존재한다. 3. matplotlib, seaborn (무료) python으로 그림을 그리는 가장 기본적인 툴들이다. Interactive한 그림을 그리지는 못하지만, 간단하게 개발자 본인이 파악하기에는 이만한 툴이 없다. (논문 그림 그리는 것으로도 적합하다) 그러나 대시보드 용으로는 조금 부족한 면이 있다. 4. plotly(dash) (무료) 동적인 (interactive) 차트를 그리는 것이 가능하다. javascript 기반으로 작동하기 때문인 것 같다. html export도 지원해서 서비스 중인 웹에 탑재하는 것도 가능하다. 5. bokeh (무료) 동적인 차트를 그리는 것이 가능하다. python 스러운 방식만 이용해서 차트 그리는 것이 용이하다. 배포는 flask를 API 방식으로 이용하면 된다. yml 파일로 테마 탬플릿 제작하여 관리할 수 있고, 자체 기능으로 css 편집도 가능하다고 알고있다. 결국 bokeh와 flask 조합을 채택했다. 기존에 flask를 사용하고 있기도 했고, 조금 더 내 입맛대로(?) 편하게 관리할 수 있다는 점에 매력을 느꼈다. 일단, bokeh로 html 파일을 로컬에 저장해놓고, 로컬에 저장된 html 파일을 flask를 통해 렌더시켜서 url 배포를 해놓았다. 배포된 url을 reactJS에서 iframe으로 불러와서 사용하면 되기 때문에.. 아직 초창기라 방식을 더 개선해나가야 하는 점들은 있지만, 큰 문제는 발견이 안되었다.