안녕하세요. HYEN입니다.
오늘은 기존에 다루던 부분과 조금은 다른 분야의 내용을 다뤄보고자 합니다.
바로 Python 기반의 웹 개발 프레임워크인 Streamlit입니다!
우연한 기회에 접하게 되었는데 웹 개발에 대한 지식이 많이 없는 저도 쉽게 데모 환경을 구성할 수 있더라구요!
이번 글에서는 간단하게 Streamlit이 무엇인지에 대해 알아보고 다음 글에서 실제 구성한 데모 환경에 대해 다뤄보도록 하겠습니다. 🖥️
Contents
1. Streamlit이란?
공식 문서에 따르면 Streamlit의 정의는 다음과 같습니다. (https://docs.streamlit.io/)
Streamlit is an open-source Python framework for data scientists and AI/ML engineers to deliver dynamic data apps with only a few lines of code. Build and deploy powerful data apps in minutes.
Data Scientist나 AI/ML 엔지니어들이 간단한 코드만 작성하면 동적인 데이터 분석 애플리케이션을 제공할 수 있는 오픈 소스 Python 프레임워크가 바로 오늘의 주제인 Streamlit입니다.
애플리케이션을 개발하려고 한다면 HTML, CSS, Javascript 뿐만 아니라 웹 프레임워크를 모두 고려해야 합니다. 이런 지식이 충분하지 않다면 개발에 어려움을 겪을 수밖에 없는데요.
Streamlit은 Python 코드만 작성하면 데이터 분석 애플리케이션을 생성할 수 있습니다.
즉, 사전 배경 지식을 상대적으로 많이 요하지 않는다는 점에서 단기간에 개발이 가능하다는 점이 Streamlit의 특징이라고 할 수 있습니다.
2. Streamlit의 특징
- Simple and Pythonic
- 간단하고 읽기 쉬운 코드로 구성되어 있습니다.
- 복잡한 배경 지식이 없어도 애플리케이션을 빠르게 생성할 수 있습니다.
- Streamlit cloud를 사용할 경우 GitHub 레포지토리에 소스 코드를 업로드하여 웹 상에 본인의 서비스를 배포할 수 있습니다.
- 간단하고 읽기 쉬운 코드로 구성되어 있습니다.
- Fast, interactive prototyping
- 원하는 대로 애플리케이션의 모양과 기능을 변경할 수 있어 빠르고 상호 작용적인 프로토타입을 생성할 수 있습니다.
- 웹 서비스 형태의 데모를 제작하는데 최적화 되어 있습니다.
- 원하는 대로 애플리케이션의 모양과 기능을 변경할 수 있어 빠르고 상호 작용적인 프로토타입을 생성할 수 있습니다.
- Live editing
- 코드를 편집하면 그 즉시 애플리케이션이 자동으로 업데이트 됩니다.
- Open-source and free
- Data Integration
- Python 코드 기반이기 때문에 Python의 주요 데이터 분석 및 시각화 라이브러리와의 통합이 용이합니다.
3. 한계점
- 간단한 데모 애플리케이션 생성에는 굉장히 유용한 프레임워크이지만 복잡한 애플리케이션일 경우 프레임워크 디자인에 제한이 있습니다.
- 많은 부분을 추상화하여 제공하기 때문에 레이아웃이나 위젯과 같이 디자인 측면의 자유도가 낮습니다.
- 사용자와 상호작용할 때마다 전체 스크립트가 다시 실행되는 Streamlit의 로직 특성 상 dataset의 크기가 크거나 복잡한 계산이 필요한 경우 성능이 저하될 수 있습니다.
이렇게 Streamlit의 개념 그리고 특징과 한계점에 대해 알아보았습니다.
빠른 시일 내에 Streamlit 테스트 글로 돌아오도록 하겠습니다~
'TOPIC > Data' 카테고리의 다른 글
Streamlit으로 웹 애플리케이션 만들어보기 (0) | 2024.04.19 |
---|---|
2부 : Prometheus(+ Node Exporter, AlertManager) + Grafana 구성하기 (1) | 2024.02.20 |
1부 : Prometheus(+ Node Exporter, AlertManager) + Grafana 구성하기 (0) | 2024.02.15 |
데이터(Data)와 로그(Log) (1) | 2023.11.24 |