본문 바로가기
Anything

스트림릿(Streamlit)에 대해 간단히 찍먹!

by Manager Ahn 2025. 1. 20.
반응형

스트림릿이란

스트림릿(Streamlit) - 파이썬 기반 웹 애플리케이션 제작의 혁신

스트림릿(Streamlit)은 데이터 사이언티스트와 개발자가 빠르고 간단하게 데이터 중심 웹 애플리케이션을 구축할 수 있도록 설계된 파이썬 오픈소스 라이브러리입니다. 특히 데이터 시각화, 머신러닝 모델 시연, 대시보드 제작 등에서 강력한 기능을 제공합니다. 이 글에서는 스트림릿의 특징, 주요 기능, 사용 방법, 장단점, 그리고 활용 사례를 자세히 알아보겠습니다.


1. 스트림릿이란?

  • 정의: 스트림릿은 파이썬으로 작성된 코드만으로 사용자 인터페이스(UI)를 생성하고, 데이터를 시각화하거나 모델을 시연할 수 있는 웹 애플리케이션을 제작할 수 있는 라이브러리입니다.
  • 출시: 2019년 오픈소스로 공개되었으며, 단순성과 효율성 덕분에 빠르게 성장했습니다.
  • 특징:
    • 웹 개발 지식이 없어도 파이썬 코드만으로 웹 앱 제작 가능.
    • 인터랙티브 위젯과 데이터 시각화 기능을 통해 실시간 상호작용 제공.
    • 빠른 프로토타입 제작에 최적화.

2. 주요 특징

1) 쉬운 설치와 사용

  • 파이썬 기반으로 설치와 실행이 간단합니다.
  • 몇 줄의 코드만으로 대화형 웹 앱을 빠르게 만들 수 있습니다.

2) 직관적인 코드 작성

  • HTML, CSS, JavaScript 같은 웹 기술 없이도 스트림릿의 간단한 API로 인터페이스 제작이 가능합니다.
  • 데이터를 분석하듯이 코드를 작성하면 스트림릿이 자동으로 웹 앱을 생성합니다.

3) 데이터 시각화 통합

  • Matplotlib, Plotly, Altair, Seaborn 등 다양한 시각화 라이브러리와 호환됩니다.
  • 스트림릿 내장 차트 API로 간단한 차트를 생성할 수도 있습니다.

4) 실시간 상호작용

  • 슬라이더, 드롭다운, 텍스트 입력, 파일 업로드 등 다양한 인터랙티브 위젯을 제공합니다.
  • 입력값에 따라 즉시 결과가 반영되도록 설계되었습니다.

5) 클라우드 배포 용이성

  • 스트림릿 클라우드(Streamlit Community Cloud)를 통해 앱을 무료로 배포할 수 있습니다.
  • 다른 클라우드 플랫폼(AWS, GCP, Heroku 등)에서도 쉽게 배포 가능.

3. 스트림릿 설치 및 기본 사용법

1) 설치

스트림릿을 설치하려면 다음 명령어를 실행합니다:

==============================================
pip install streamlit
==============================================

2) 기본 앱 실행

아래 코드를 app.py라는 파일로 저장하고 실행합니다:

==============================================
import streamlit as st
 
# 제목과 텍스트 출력
st.title("스트림릿 소개 블로그")
st.write("스트림릿은 데이터 사이언스 웹 앱 제작을 간단하게 만들어 줍니다!")
# 데이터 시각화
import pandas as pd
import numpy as np
 
data = pd.DataFrame(
       np.random.randn(100, 3),
       columns=["A", "B", "C"]
)
st.line_chart(data)

==============================================

 

실행 명령어:

==============================================
streamlit run app.py
==============================================

 

웹 브라우저에서 실행된 앱을 확인할 수 있습니다.


4. 주요 API

스트림릿에서 자주 사용되는 주요 함수들을 소개합니다:

1) 텍스트 관련 함수

  • st.title("제목"): 대형 제목 표시.
  • st.header("헤더"): 중간 크기 제목 표시.
  • st.write("텍스트"): 텍스트 출력.

2) 데이터 시각화 함수

  • st.line_chart(data): 라인 차트 생성.
  • st.bar_chart(data): 바 차트 생성.
  • st.map(data): 지리적 데이터 시각화.

3) 인터랙티브 위젯

  • st.slider("값 선택", min_value, max_value): 슬라이더 위젯.
  • st.selectbox("옵션 선택", options): 드롭다운 메뉴.
  • st.text_input("텍스트 입력"): 텍스트 입력 필드.
  • st.file_uploader("파일 업로드"): 파일 업로드 기능.

5. 스트림릿의 장단점

장점

  1. 간단한 사용성: 데이터 분석 경험만 있으면 바로 사용할 수 있음.
  2. 빠른 프로토타이핑: 코드를 작성하자마자 결과를 바로 확인 가능.
  3. 무료 배포 플랫폼: 스트림릿 클라우드를 통해 무료로 앱 배포 가능.
  4. 다양한 시각화 지원: 기존 시각화 라이브러리와 통합되어 자유로운 데이터 표현 가능.

단점

  1. 복잡한 웹 앱 제작 한계: 대규모 사용자와 복잡한 UI 요구에는 한계가 있음.
  2. 제한된 커스터마이징: HTML/CSS의 자유도가 낮아 세밀한 디자인에 제약이 있음.
  3. 배포시 리소스 제한: 클라우드 배포 환경에서 높은 성능이 필요한 앱에는 적합하지 않을 수 있음.

6. 스트림릿 활용 사례

  1. 데이터 시각화 대시보드:
    • 데이터 분석 결과를 빠르게 시각화하고 팀과 공유.
  2. 머신러닝 모델 시연:
    • 학습된 머신러닝 모델의 예측 결과를 실시간으로 확인 가능.
  3. 비즈니스 데이터 분석 도구:
    • 판매 데이터, 고객 데이터를 분석하고 결과를 대화형으로 시각화.
  4. 교육 및 강의 도구:
    • 데이터 과학 강의에서 실습용 웹 앱 제작.

7. 스트림릿 클라우드를 통한 배포

  1. GitHub와 연동:
    • 앱 파일을 GitHub에 업로드.
    • Streamlit Cloud를 통해 GitHub 리포지토리를 연결하면 자동으로 배포.
  2. 배포 과정:
    • GitHub 리포지토리를 선택.
    • 배포 후 자동으로 생성된 URL로 앱에 접근 가능.

결론

스트림릿은 데이터 시각화와 대화형 웹 애플리케이션 제작의 진입 장벽을 크게 낮춘 혁신적인 도구입니다. 데이터 과학자와 개발자뿐만 아니라 데이터 중심의 작업을 필요로 하는 누구나 쉽게 사용할 수 있는 점이 스트림릿의 가장 큰 강점입니다. 간단한 설치와 직관적인 코드 작성으로 웹 애플리케이션 제작에 도전해 보시죠.

반응형

댓글