티스토리 뷰
LG U+ Why Not SW 부트캠프 5기
Python Streamlit 실습 - 웹 기반 대시보드부터 파일 업로드, 인터랙션 구현까지
jlye0n 2025. 5. 9. 16:29오늘은 Python 기반 웹 프레임워크인 Streamlit을 이용해 데이터 시각화, 사용자 입력, 파일 업로드 등 다양한 기능을 활용해 웹 앱을 개발하는 실습을 진행했습니다.
코드 실행 결과를 실시간으로 확인하면서 손쉽게 인터랙티브한 분석 도구를 만들 수 있어, 데이터 시각화 도구로서 Streamlit의 장점을 체감할 수 있는 시간이었습니다.
1. 설치 및 실행
설치
pip install streamlit
실행
streamlit run 파일명.py
브라우저가 자동 실행되며 기본 포트는 http://localhost:8501
2. 기본 구성 및 인터페이스
import streamlit as st
st.title("Streamlit 웹 앱 예제")
st.subheader("간단한 컴포넌트부터 파일 업로드까지 실습")
- st.title, st.subheader, st.write 등으로 텍스트 구성
- Streamlit은 위에서 아래로 실행되며, 실행 중 변경사항은 자동 반영됨

3. 사용자 입력 컴포넌트
입력 받기
name = st.text_input("이름을 입력하세요")
age = st.number_input("나이를 입력하세요", min_value=0, max_value=120, value=25)
버튼 이벤트
if st.button("확인"):
st.write(f"{name}님은 {age}세입니다.")
셀렉트박스
color = st.selectbox("좋아하는 색상은?", ["빨강", "초록", "파랑"])
st.write("선택한 색상:", color)
4. 슬라이더 및 체크박스
level = st.slider("만족도 (0~100)", 0, 100, 50)
if st.checkbox("만족하십니까?"):
st.write("선택한 만족도:", level)
5. 파일 업로드 및 처리
import pandas as pd
uploaded_file = st.file_uploader("CSV 파일을 업로드하세요", type="csv")
if uploaded_file is not None:
df = pd.read_csv(uploaded_file)
st.dataframe(df)
6. 데이터 시각화
Matplotlib
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1, 2, 3], [10, 20, 30])
st.pyplot(fig)
Plotly
import plotly.express as px
df = pd.DataFrame({'x': [1,2,3], 'y':[10,20,30]})
fig = px.bar(df, x='x', y='y', title="Plotly 막대 그래프")
st.plotly_chart(fig)
7. 사이드바 구성
st.sidebar.title("설정")
sidebar_choice = st.sidebar.radio("옵션 선택", ["옵션 A", "옵션 B"])
- 사이드바는 좌측에 고정되어 메뉴 구성에 유용
- st.sidebar.text_input, st.sidebar.selectbox 등 지원
8. 다중 탭 구성 (st.tabs)
tab1, tab2 = st.tabs(["탭1: 데이터", "탭2: 시각화"])
with tab1:
st.write("여기는 데이터 탭입니다.")
with tab2:
st.write("여기는 시각화 탭입니다.")
9. 상태 출력 및 알림
st.success("성공 메시지입니다.")
st.warning("경고 메시지입니다.")
st.error("오류가 발생했습니다.")
10. 결론 및 정리
오늘은 Streamlit의 핵심 기능들을 활용하여 웹 기반 데이터 시각화 앱을 구성해보았습니다.
텍스트 출력부터 슬라이더, 셀렉트박스, 버튼, 탭 구성, 그리고 CSV 업로드와 Plotly 시각화까지 다양한 컴포넌트를 한 번에 다뤄보며,
복잡한 백엔드 설정 없이도 빠르게 대시보드를 만들 수 있다는 점에서 Streamlit의 강력함을 체감할 수 있었습니다.
'LG U+ Why Not SW 부트캠프 5기' 카테고리의 다른 글
| AWS Flask 운영환경 배포 실습 - MobaXterm 기반 서버 세팅부터 Gunicorn + Nginx 구성까지 (0) | 2025.04.07 |
|---|---|
| AWS EC2 서버 설정부터 Pybo 실행까지 - MobaXterm으로 완전 정복 (0) | 2025.04.04 |
| Git 입문 정리 - 로컬 저장소 생성부터 커밋, GitHub 업로드까지 (0) | 2025.04.03 |
| Flask 웹 프로젝트 - Q&A 서비스 개발 CRUD 구현과 템플릿 처리 (0) | 2025.04.03 |
| Flask 웹 프로젝트 실습 정리: 구조화, 라우팅, 템플릿, 폼 처리까지 (0) | 2025.04.03 |
