Streamlit 가이드
코드 없이 웹 앱을 만드는 가장 빠른 방법
Streamlit이 뭔가요?
Python 코드 몇 줄로 브라우저에서 실행되는 웹 앱을 만드는 도구입니다.
보통 웹 앱을 만들려면 HTML, CSS, JavaScript를 따로 배워야 합니다.
Streamlit은 그 과정을 전부 생략합니다.
일반 웹 개발: Python 로직 + HTML + CSS + JavaScript + 서버 설정 ...
Streamlit: Python 파일 하나 → streamlit run app.py → 끝
바이브코딩에서 Streamlit을 쓰는 이유
1. AI가 만들기 가장 쉬운 구조
Streamlit 앱은 파일 하나로 끝납니다.
프론트엔드와 백엔드가 분리되어 있지 않아서, AI에게 “이런 앱 만들어줘”라고 하면 app.py 파일 하나가 나옵니다.
AI에게 요청: "CSV 업로드하면 그래프 그려주는 앱 만들어줘"
결과물: app.py 파일 하나
실행: streamlit run app.py
반면 React + FastAPI 구조는 파일이 수십 개로 나뉘어서 AI가 만들어줘도 연결하다가 막힙니다.
2. 결과를 즉시 눈으로 확인
코드를 저장하면 브라우저가 자동으로 새로고침됩니다.
“이렇게 바꿔줘” → 저장 → 결과 확인의 루프가 수초 안에 돌아갑니다.
3. 데이터 시각화가 기본 내장
pandas DataFrame, plotly 차트, 이미지, 테이블이 한 줄로 화면에 표시됩니다.
엑셀로 하나씩 열어보던 작업을 업로드 하나로 대체할 수 있습니다.
# 이 한 줄이 브라우저에 인터랙티브 차트를 그립니다
st.plotly_chart(fig)
4. 동료와 공유가 쉬움
완성된 앱을 동료에게 전달하는 방법:
- CLI 스크립트: 파이썬 환경 설치, 터미널 사용법 설명 필요
- Streamlit 앱:
streamlit run app.py한 줄, 또는 URL 하나
Streamlit이 적합한 상황 vs 아닌 상황
| 적합한 상황 | 적합하지 않은 상황 |
|---|---|
| 데이터 업로드 → 처리 → 결과 확인 | 불특정 다수에게 공개하는 서비스 |
| 팀 내부 도구 (5~20명) | 로그인/권한 관리가 복잡한 경우 |
| CSV, Excel, 이미지 처리 앱 | 실시간 다중 사용자 협업 |
| LLM 연동 분석 도구 | 모바일 앱 |
| 빠른 프로토타입 | 대규모 트래픽 서비스 |
💡 연구원 대부분의 업무 자동화 도구는 Streamlit으로 충분합니다.
CLI와 비교하면
Week 2에서 CLI로 만든 워터마크 스크립트를 기억하시나요?
| CLI 방식 | Streamlit 방식 | |
|---|---|---|
| 실행 방법 | 터미널 명령어 | 브라우저 버튼 |
| 결과 확인 | 터미널 텍스트 | 화면에 이미지/표로 표시 |
| 동료 공유 | 스크립트 파일 전달 + 설명 | URL 하나 |
| 파라미터 변경 | 코드 수정 또는 인자 변경 | 입력창에 타이핑 |
| 대량 자동화 (1000개+) | ✅ 유리 | ❌ 불리 |
| 비개발자 사용 | ❌ 어려움 | ✅ 쉬움 |
CLI가 더 나은 경우: 스케줄러로 자동 실행, 대량 배치 처리
Streamlit이 더 나은 경우: 동료와 협업, 결과를 바로 보고 싶을 때
실행 한 줄
streamlit run app.py
브라우저가 자동으로 열립니다 (http://localhost:8501).
코드를 수정하고 저장하면 브라우저에 바로 반영됩니다.