IT/SW Dev.

쉬운 AI Coding - streamlit 소개 및 python 예제 코드

부티형 2025. 2. 17. 16:25
반응형

출처 : 부티형

Streamlit 소개

Streamlit은 Python 기반의 오픈소스 프레임워크로, 데이터를 시각화하고 웹 애플리케이션을 쉽게 만들 수 있도록 설계되었습니다. 데이터 과학자, 머신러닝 엔지니어, 분석가들이 빠르게 대화형 웹 애플리케이션을 개발할 수 있도록 도와줍니다.

✅ 주요 기능

  1. 간단한 코드 작성
    • HTML, CSS, JavaScript 없이 Python 코드만으로 대화형 UI를 구성 가능
  2. 자동 리로딩
    • 코드가 변경되면 애플리케이션이 자동으로 업데이트됨
  3. 데이터 시각화 지원
    • matplotlib, plotly, seaborn 등과 쉽게 연동 가능
  4. 대화형 위젯 제공
    • st.button, st.slider, st.text_input 등의 UI 요소 사용 가능
  5. 빠른 배포 지원
    • Streamlit Cloud 또는 Docker 등을 활용해 손쉽게 배포 가능
반응형

🎯 사용 사례

  • 데이터 분석 결과 공유용 대시보드
  • 머신러닝 모델의 인퍼런스 웹 애플리케이션
  • 실시간 데이터 모니터링 시스템
  • 데이터 입력 및 처리 자동화 도구

📝 Streamlit 샘플 코드

다음은 Streamlit을 사용하여 간단한 데이터 대시보드를 만드는 예제입니다.

import streamlit as st
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

plt.rc('font', family='AppleGothic')
plt.rcParams['axes.unicode_minus'] = False

# 제목 설정
st.title("Streamlit 대시보드 예제")

# 데이터 생성
data = pd.DataFrame({
    "날짜": pd.date_range(start="2024-01-01", periods=30),
    "매출": np.random.randint(100, 500, size=30)
})

# 날짜 필터 추가
date_range = st.date_input("날짜 범위를 선택하세요", [data["날짜"].min(), data["날짜"].max()])
filtered_data = data[(data["날짜"] >= pd.to_datetime(date_range[0])) &
                     (data["날짜"] <= pd.to_datetime(date_range[1]))]

# 데이터 표시
st.write("📊 필터링된 데이터:", filtered_data)

# 차트 그리기
fig, ax = plt.subplots()
ax.plot(filtered_data["날짜"], filtered_data["매출"], marker="o", linestyle="-", color="b")
ax.set_title("매출 변화 추이")
ax.set_xlabel("날짜")
ax.set_ylabel("매출")

st.pyplot(fig)

실행 방법

  1. Streamlit 설치
    pip install streamlit
    
  2. 위의 Python 코드를 app.py로 저장
  3. 터미널에서 실행
    streamlit run app.py
    

그러면 로컬 웹 브라우저에서 대시보드가 실행됩니다! 🚀

 실행결과)

반응형