🚀 Python Streamlit – 데이터부터 AI 웹앱까지 한 번에!
“Python 코드 몇 줄로 웹 애플리케이션을 만든다?”
네, Streamlit이라면 가능합니다.

🧩 Streamlit이란?
Streamlit은 Python 기반의 오픈소스 웹 애플리케이션 프레임워크입니다.
복잡한 웹 프레임워크(예: Flask, Django) 없이도 데이터 분석 결과나 AI 모델을 시각적으로 웹에서 바로 보여줄 수 있는 도구입니다.
📌 핵심 요약
| 항목 | 내용 |
|---|---|
| 개발사 | Streamlit Inc. (현재 Snowflake에 인수됨) |
| 언어 | Python 전용 |
| 주요 목적 | 데이터 분석, 머신러닝, 대시보드, AI 데모 |
| 출시 연도 | 2019년 |
| 웹 서버 내장 | ✅ 있음 (streamlit run app.py) |
💡 Streamlit을 왜 써야 할까?
일반적으로 데이터를 시각화하려면 다음 과정을 거칩니다.
- Flask/Django 서버 구축
- HTML/CSS/JS 프론트엔드 구성
- API 연동
- Plotly, Chart.js 등 그래프 연동
하지만 Streamlit은 이 모든 걸 Python 코드 하나로 해결합니다.
✅ 주요 장점
| 항목 | 설명 |
|---|---|
| 1. 초간단 개발 | HTML/CSS 몰라도 웹앱 제작 가능 |
| 2. 실시간 인터랙션 | 슬라이더, 버튼, 입력창 등 즉시 반응 |
| 3. 데이터 시각화 통합 | Matplotlib, Plotly, Altair 등 바로 사용 |
| 4. 빠른 배포 | streamlit run으로 즉시 실행 가능 |
| 5. AI/ML 친화적 | Hugging Face, OpenAI, LangChain 등과 연동 쉬움 |
⚙️ 설치 방법
# 가상환경 추천 (예: venv 또는 conda)
python -m venv .venv
source .venv/bin/activate # Mac/Linux
.venv\Scripts\activate # Windows
# Streamlit 설치
pip install streamlit
설치가 완료되면, 아래 명령어로 버전을 확인합니다.
streamlit --version
🧱 Streamlit 기본 구조
Streamlit 앱은 기본적으로 단일 Python 스크립트로 구성됩니다.app.py 파일 하나로도 완전한 웹앱을 만들 수 있습니다.
예시:
import streamlit as st
st.title("🚀 Streamlit Demo App")
st.write("안녕하세요! Streamlit으로 만든 첫 번째 웹앱입니다.")
name = st.text_input("이름을 입력하세요:")
if name:
st.success(f"환영합니다, {name}님!")
number = st.slider("숫자를 선택하세요:", 1, 10, 5)
st.write("선택한 숫자:", number)
실행 방법:
streamlit run app.py
이제 기본 웹 서버가 열리고, 브라우저에서
👉 http://localhost:8501 주소로 접근하면 됩니다.
📊 데이터 시각화 예제
Streamlit은 Pandas, Matplotlib, Plotly, Altair 같은 시각화 라이브러리와 완벽하게 호환됩니다.
import streamlit as st
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
st.title("📊 데이터 시각화 예제")
# 임의의 데이터 생성
data = pd.DataFrame({
'x': np.arange(1, 11),
'y': np.random.randint(10, 100, 10)
})
# 데이터 표시
st.dataframe(data)
# 라인 차트
st.line_chart(data.set_index('x'))
# Matplotlib 그래프 직접 출력
fig, ax = plt.subplots()
ax.bar(data['x'], data['y'])
st.pyplot(fig)
🤖 ChatGPT / OpenAI 연동 예시
AI 프론트엔드 구축에도 Streamlit은 최적입니다.
아래는 간단한 ChatGPT API 연동 예제입니다.
import streamlit as st
from openai import OpenAI
st.title("🤖 ChatGPT Demo")
client = OpenAI(api_key="sk-...")
prompt = st.text_area("질문을 입력하세요:")
if st.button("답변 생성"):
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}]
)
st.write(response.choices[0].message.content)
📍 Streamlit은 LangChain, LlamaIndex, Ollama 등과 함께
RAG(검색 기반 생성) 시스템의 프론트엔드로 자주 사용됩니다.
🛠️ Streamlit 앱 구조 고도화
Streamlit은 단일 파일로도 충분히 작동하지만, 규모가 커질 경우 다음과 같이 모듈화할 수 있습니다.
📁 my_streamlit_app/
┣ 📄 app.py
┣ 📄 pages/
┃ ┣ page1_dashboard.py
┃ ┗ page2_chatbot.py
┣ 📄 utils/
┃ ┗ data_loader.py
┗ 📄 requirements.txt
pages/디렉터리에.py파일을 추가하면 자동으로
Streamlit의 사이드바 메뉴에 페이지가 생성됩니다.
🚀 배포 방법
1️⃣ 로컬 서버 실행
streamlit run app.py
2️⃣ Docker로 배포
FROM python:3.10-slim
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
EXPOSE 8501
CMD ["streamlit", "run", "app.py", "--server.port=8501", "--server.address=0.0.0.0"]
3️⃣ 클라우드 배포 (예: Streamlit Cloud)
- https://streamlit.io/cloud 접속
- GitHub 연결 → Repository 선택 → 자동 빌드
💬 실제 활용 사례
| 분야 | 예시 |
|---|---|
| AI 챗봇 | GPT API, Ollama, LangChain 연동 |
| 데이터 분석 리포트 | Pandas + Streamlit으로 대시보드 생성 |
| 머신러닝 모델 시각화 | 모델 예측 결과를 웹에서 직접 확인 |
| 내부 운영툴 | 사내 로그 분석 / 리포트 시스템 구축 |
| RAG 시스템 UI | 검색 + 요약 기능의 LLM 프론트엔드 |
📘 정리
| 항목 | 요약 |
|---|---|
| Streamlit 핵심 장점 | 쉽고 빠른 Python 기반 웹앱 제작 |
| 필요 기술 수준 | Python 기초 수준이면 충분 |
| 추천 사용 분야 | 데이터 시각화, AI 서비스, 사내 도구 |
| 확장성 | Docker, Cloud, RAG 연동 모두 가능 |
“코드 몇 줄로 실시간 AI 앱을 배포하고 싶다면 — Streamlit부터 시작하세요.”
'IT&DEV - IT & 개발 > Frontend' 카테고리의 다른 글
| 안드로이드 스튜디오에서 Java로 새 프로젝트 만드는 가장 쉬운 방법 (0) | 2025.04.29 |
|---|---|
| [Mac] ReactNative 설치하기 (0) | 2025.02.23 |
| 네이티브앱? 하이브리드앱? PC Web/Mobile Web/Native App/Hybrid App/Web App (0) | 2022.04.29 |
| [ReactNative] npm run ios 실행시 Command PhaseScriptExecution failed 해결 (0) | 2022.04.28 |
| vue 프로젝트 생성시 command failed: yarn 발생 해결방법 (0) | 2022.04.22 |
댓글