배경
- 방황한 데이터를 쉽게 이해하기 위한 시각화
- 데이터의 공통적인 부분을 함축적인 그래프로 표현
- 데이터를 다루는 대시보드는 최소로 아래와같은 기능들을 제공해야한다.
- 분석: Numpy, Panda, SciPy와 같은 핵심 패키지를 통한 데이터 분석, 조작과 요약한다.
- 시각화: 다양한 그래프 라이브러리를 사용하여 데이터의 플롯과 그래프를 만든다.
- 상호작용: React와 같은 프런트엔드 라이브러리를 사용하여 사용자의 입력을 허용한다.
- 제공(Serving): 사용자 요청을 받아 Flask와 같은 웹 서버를 사용하여 응답을 제공한다.
Streamlit이나 Dash와 같은 최신 패키지는 이런 구성 요소들을 한번에 제공할 수 있다.
Streamlit vs Dash
-
대기업용으로 Dash가 적절하며 빠른 실행에는 Streamlit이 적합하다고 본다.
-
Streamlit’s focus is towards rapid prototyping, whereas Dash focusses on production / enterprise settings.
-
Streamlit
-
장점
- 학습곡선이 짧다.
- HTML 및 CSS에 대한 요구 사항은 없습니다.
- 적은 코드로 애플리케이션을 개발
- 프런트 엔드 백엔드 기술 스택에 대해 생각하는 대신 중요한 것에 집중
- Latex, OpenCV, Vega-Lite, seaborn, PyTorch, NumPy, Altair 등과 같은 여러 주요 라이브러리 및 프레임워크와 호환
- Uber 및 Google X 사용
-
단점
- Streamlit은 자체 구문을 배우는 데 약간의 시간이 필요
- Streamlit은 그렇게 유연하지 않다
- Python만 기반으로 하고 제한된 위젯 세트를 제공하며 Python 노트북과 통합되지 않다.
- 데이터 업로드 제한은 50Mb
- 비디오/애니메이션에 대한 지원은 제한적
-
Dash
- 장점
- 고급 및 프로덕션 수준의 대시 보드
- Dash는 데이터 탐색, 데이터 분석, 모델링, 시각화, 기기 제어 및 보고와 같은 다양한 영역에서 사용
- 풀 스택 및 DevOps 도구없이 몇 시간 내에 웹 애플리케이션을 빌드하고 배포 할 수 있도록 지원
- Python 외에도 R, Julia 및 Jupyter와 함께 사용
- 반응형 애플리케이션
- Dash는 Streamlit보다 커스터마이징이 가능합니다. 또한 Dash는 더 나은 성능을 제공
- Dash에는 더 좋고 정기적으로 업데이트되며 따르기 쉬운 문서
- 단점
- 가장 가파른 학습 곡선
- Dash는 엔터프라이즈 시장에 더 중점을 두고 있으며 오픈 소스 버전에서 사용 가능한 모든 기능을 포함하지 않는다.
- 다른 프레임워크에 비해 간단한 웹 애플리케이션을 만들려면 더 많은 코드를 작성
Reference
streamlit 데이터 업로드 제한은 서버 실행 명령어 옵션을 통해 바꿀 수 있습니다!