728x90
Streamlit 소개
Streamlit은 Python으로 빠르고 간단하게 데이터 중심의 웹 애플리케이션을 만들 수 있는 오픈소스 프레임워크입니다. Python 코드를 기반으로 복잡한 웹 개발 지식 없이도 대화형 웹 애플리케이션을 구축할 수 있습니다. 데이터 분석가, 머신러닝 엔지니어, 연구원 등 비개발자도 쉽게 사용할 수 있는 도구로 각광받고 있습니다.
주요 특징
1. 쉬운 설치 및 사용
- Streamlit은 Python 기반이며, 설치 후 간단한 Python 코드만으로 웹 앱을 만들 수 있습니다.
- Flask, Django 같은 웹 프레임워크보다 훨씬 간단하며, HTML이나 CSS 같은 추가 기술을 배우지 않아도 됩니다.
2. 대화형 위젯
- 사용자는 버튼, 슬라이더, 텍스트 입력 등의 위젯을 쉽게 추가할 수 있습니다.
- 대화형 데이터 시각화 및 사용자 입력 처리가 가능합니다.
예: 슬라이더 추가
import streamlit as st
x = st.slider("값을 선택하세요", 0, 100)
st.write(f"선택한 값은 {x}입니다.")
3. 데이터 시각화
- Pandas, Matplotlib, Plotly 등과 완벽히 호환되며, 데이터프레임 및 차트를 웹 애플리케이션에 쉽게 포함할 수 있습니다.
- 사용자는 데이터프레임을 정렬하거나 필터링하는 대화형 도구를 활용할 수 있습니다.
예: Matplotlib 차트 렌더링
import streamlit as st
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)
st.pyplot(fig)
4. 실시간 데이터 갱신
- 코드가 변경되면 웹 앱이 자동으로 업데이트됩니다.
- Streamlit은 "Hot Reloading" 기능을 지원하여 개발 중 앱을 재시작할 필요가 없습니다.
5. 클라우드 배포
- Streamlit 앱은 로컬에서 실행할 수 있을 뿐만 아니라 Streamlit Cloud를 통해 배포 가능합니다.
- 배포된 앱은 누구나 웹 브라우저를 통해 접근할 수 있습니다.
설치 방법
Streamlit은 간단히 pip로 설치할 수 있습니다.
pip install streamlit
간단한 예제
1. Hello World 예제
import streamlit as st
st.title("Hello Streamlit!")
st.write("Streamlit은 Python 기반의 간단하고 강력한 웹 앱 프레임워크입니다.")
2. 데이터프레임 및 사용자 입력 예제
import streamlit as st
import pandas as pd
# 데이터프레임 생성
data = {"이름": ["Alice", "Bob", "Charlie"], "점수": [85, 90, 95]}
df = pd.DataFrame(data)
st.title("데이터프레임 및 사용자 입력 예제")
# 데이터프레임 표시
st.write("학생 성적 데이터:")
st.dataframe(df)
# 사용자 입력
name = st.text_input("학생 이름을 입력하세요")
if name:
st.write(f"{name} 학생의 데이터를 추가할 수 있습니다.")
Streamlit 실행 방법
1. Python 파일을 생성합니다. 예: app.py
2. 아래 명령어로 실행합니다:
streamlit run app.py
3. 실행 후 브라우저에서 앱을 확인할 수 있습니다. 기본 URL은 http://localhost:8501입니다.
Streamlit의 활용 분야
- 데이터 분석
- 데이터프레임, 통계 값, 그래프를 웹 인터페이스로 쉽게 공유.
- 머신러닝 모델 데모
- 학습된 머신러닝 모델을 Streamlit으로 감싸 웹 애플리케이션 형태로 제공.
- 대화형 데이터 시각화
- 실시간으로 데이터를 필터링하고 시각화하는 도구 제작.
- 대시보드
- 복잡한 보고서를 Streamlit 대시보드로 간소화하여 대화형으로 제공.
Streamlit의 장점
- 단순한 코드
- HTML, CSS, JavaScript를 몰라도 간단한 Python 코드로 웹 앱 제작 가능.
- 빠른 개발 속도
- 데이터 중심 앱을 빠르게 개발하고 공유할 수 있음.
- 무료 및 오픈소스
- Streamlit은 무료이며 누구나 사용할 수 있습니다.
- 활발한 커뮤니티
- 다양한 튜토리얼과 예제를 제공하는 커뮤니티가 활성화되어 있습니다.
Streamlit의 단점
- 복잡한 웹 애플리케이션 제작에는 한계가 있음.
- 예: 사용자 인증, 복잡한 라우팅.
- 배포를 위해 추가적인 설정이 필요할 수 있음.
- 예: Streamlit Cloud 사용 시 GitHub 연결.
Streamlit 공식 문서 및 리소스
728x90
'Category > Note' 카테고리의 다른 글
파이썬 프로젝트 종속성 관리하기 requirements.txt (0) | 2024.12.10 |
---|---|
[Google Colab] 구글 코랩 Matplotlib 한글 깨짐 문제 해결 (1) | 2024.12.09 |
알고리즘 탐색 문제 유형별 좌표 변수명 가이드 (0) | 2024.11.25 |
SVG vector icon이 필요할 때 (0) | 2024.11.14 |
styled-components를 활용한 다양한 스타일 속성 예제와 설명 (0) | 2024.11.13 |