본문 바로가기
IT&DEV - IT & 개발/Frontend

Python Streamlit - 데이터부터 AI 웹앱까지 한 번에

by Hoft 2025. 11. 11.
728x90
반응형

🚀 Python Streamlit – 데이터부터 AI 웹앱까지 한 번에!

“Python 코드 몇 줄로 웹 애플리케이션을 만든다?”
네, Streamlit이라면 가능합니다.


🧩 Streamlit이란?

Streamlit은 Python 기반의 오픈소스 웹 애플리케이션 프레임워크입니다.
복잡한 웹 프레임워크(예: Flask, Django) 없이도 데이터 분석 결과나 AI 모델을 시각적으로 웹에서 바로 보여줄 수 있는 도구입니다.

📌 핵심 요약

항목 내용
개발사 Streamlit Inc. (현재 Snowflake에 인수됨)
언어 Python 전용
주요 목적 데이터 분석, 머신러닝, 대시보드, AI 데모
출시 연도 2019년
웹 서버 내장 ✅ 있음 (streamlit run app.py)

💡 Streamlit을 왜 써야 할까?

일반적으로 데이터를 시각화하려면 다음 과정을 거칩니다.

  1. Flask/Django 서버 구축
  2. HTML/CSS/JS 프론트엔드 구성
  3. API 연동
  4. 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)


💬 실제 활용 사례

분야 예시
AI 챗봇 GPT API, Ollama, LangChain 연동
데이터 분석 리포트 Pandas + Streamlit으로 대시보드 생성
머신러닝 모델 시각화 모델 예측 결과를 웹에서 직접 확인
내부 운영툴 사내 로그 분석 / 리포트 시스템 구축
RAG 시스템 UI 검색 + 요약 기능의 LLM 프론트엔드

📘 정리

항목 요약
Streamlit 핵심 장점 쉽고 빠른 Python 기반 웹앱 제작
필요 기술 수준 Python 기초 수준이면 충분
추천 사용 분야 데이터 시각화, AI 서비스, 사내 도구
확장성 Docker, Cloud, RAG 연동 모두 가능

 

“코드 몇 줄로 실시간 AI 앱을 배포하고 싶다면 — Streamlit부터 시작하세요.”


 

728x90
반응형

댓글