본문 바로가기
파이썬(Python)

[파이썬]Streamlit 활용 - 외부 공유하기

by 즐거운코딩 2024. 5. 23.
반응형

앞의 포스트에서는 Streamlit에서 다양한 컴포넌트를 활용하여 페이지를 구성하고, 상호작용을 할 수 있는 다양한 기능에 대해 알아보았습니다.

이러한 기능을 활용하여 Streamlit 의 가장 장점이라 할 수 있는 커뮤니티 클라우드(Community Cloud)에 대해 어떻게 사용하고, 어디에 좋은지 실제 활용해본 사례중심으로 설명하고자 합니다.

 

1.  사전준비 작업

  • 배포 환경 준비
    • Streamlit 클라우드 서버에 파이썬 프로그램을 배포하기 때문에 작성한 파이썬 프로그램에 필요한 패키지를 클라우드내에 설치해야 함 (denpendencies)
      👉 기본적인 기능만 사용하는 앱은 별도 패키지 설치 없이도 이용 가능함
    • 이를 위해 파이썬 환경설정 파일인 requirements.txt 에 필요한 패키지를 지정함 (기본 py 파일과 같은 폴더에 위치)
      예시) 파이썬에서 다음과 같이 패키지 사용 한다면, 
import streamlit as st
import pandas as pd
import numpy as np
import math
import random

st.write('Hi!')

              requirements.txt 파일내 다음과 같이 작성

streamlit
pandas
numpy

             👉 패키지별 버젼정보를 특정할 수 있음 (예: pandas > 2.0 numpy <= 1.25.1 같이 버젼정보 표시)

 

  • Github Repository 만들기
    • New Repository 로 새로 만들때 "Public", "Private" 중에서 "Public"  선택하여 생성
      🖐🏻 Github 가입 및 사용에 대해서는 이번 포스트에서 다루지 않음
      👉 Streamlit은 공개 사이트를 기본으로 하므로 Public 권장
    • Streamlit 파이썬 파일 생성할 디렉토리에 git init 하고, github repositoy와 연결함
    • .gitignore 파일에 github에서 관리하지 않을 폴더 및 파일을 등록
      👉 데이터베이스 연결, 외부 API 연동 Key 등 공개되면 안 될 secret 정보는 꼭 github 관리 제외 필수
  • Streamlit에서 secrets 정보(id/pw/api key 등) 관리하기
    • 앱 배포 화면 하단에 "Advanced settings..." 선택
    • 환경변수와 비밀 설정값을 TOML 포맷으로 입력칸에 작성
    • 앱내에서 st.secrets 사용하여 secrets 해당 값을 불러오기

Advanced settings ... 선택하기
Settings - toml format

 

app 내 사용하기

             🖐🏻 toml 포맷을 compact 하게 한 개로 표현하기

[db_credentials]
username = "my_username"
password = "my_password"

# Verbose version
my_db.connect(username=st.secrets.db_credentials.username, password=st.secrets.db_credentials.password)

# Far more compact version!
my_db.connect(**st.secrets.db_credentials)

 

2.  앱 만들기

  • 앱을 작성할 폴더 만들기
  • git init 
  • github 신규 repository 연동하기
  • 폴더 구성 
    실행할 파이썬 파일(예시: your_app.py)과 requirements.txt 필수로 구성
    별도 custom 필요시 하위폴더로 .streamlit 폴더에 config.toml 파일에 해당 내용 추가

3.  작성한 앱을 배포하기

  • https://share.streamlit.io/ 이동시 내 계정의 앱관리 화면으로 이동
  • 배포할 앱 설정하기 
    - github repository url 작성
    - branch 명 작성
    - 실행할 대표 파일명 경로작성 
    👉 custom subdomain 작성 - 자동 생성 subdomain 대신 app 특성에 맞는 subdomain 임의선택 가능
        중복불가 하므로 외부 공개 사이트의 경우 먼저 선점하는 것이 중요
  • 앱 론칭하기

신규 앱 만들기
app 정보 입력하기

 

app launching

 

배포된 앱의 변경 및 운영 특이사항에 대해서는 다음 포스트에서 이어 가겠습니다.

반응형