반응형
앞의 포스트에서는 Streamlit에서 다양한 컴포넌트를 활용하여 페이지를 구성하고, 상호작용을 할 수 있는 다양한 기능에 대해 알아보았습니다.
이러한 기능을 활용하여 Streamlit 의 가장 장점이라 할 수 있는 커뮤니티 클라우드(Community Cloud)에 대해 어떻게 사용하고, 어디에 좋은지 실제 활용해본 사례중심으로 설명하고자 합니다.
1. 사전준비 작업
- 배포 환경 준비
- Streamlit 클라우드 서버에 파이썬 프로그램을 배포하기 때문에 작성한 파이썬 프로그램에 필요한 패키지를 클라우드내에 설치해야 함 (denpendencies)
👉 기본적인 기능만 사용하는 앱은 별도 패키지 설치 없이도 이용 가능함 - 이를 위해 파이썬 환경설정 파일인 requirements.txt 에 필요한 패키지를 지정함 (기본 py 파일과 같은 폴더에 위치)
예시) 파이썬에서 다음과 같이 패키지 사용 한다면,
- Streamlit 클라우드 서버에 파이썬 프로그램을 배포하기 때문에 작성한 파이썬 프로그램에 필요한 패키지를 클라우드내에 설치해야 함 (denpendencies)
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 관리 제외 필수
- New Repository 로 새로 만들때 "Public", "Private" 중에서 "Public" 선택하여 생성
- Streamlit에서 secrets 정보(id/pw/api key 등) 관리하기
- 앱 배포 화면 하단에 "Advanced settings..." 선택
- 환경변수와 비밀 설정값을 TOML 포맷으로 입력칸에 작성
- 앱내에서 st.secrets 사용하여 secrets 해당 값을 불러오기
🖐🏻 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 임의선택 가능
중복불가 하므로 외부 공개 사이트의 경우 먼저 선점하는 것이 중요 - 앱 론칭하기
배포된 앱의 변경 및 운영 특이사항에 대해서는 다음 포스트에서 이어 가겠습니다.
반응형
'파이썬(Python)' 카테고리의 다른 글
판다스(Pandas)로 엑셀 파일 불어오기 - 두가지 방법 (1) | 2024.06.30 |
---|---|
[파이썬]Streamlit - Git LFS 사용하기 (0) | 2024.06.12 |
[파이썬]Streamlit 활용 - Chart 예시 (0) | 2024.05.19 |
[파이썬]Streamlit 활용 - Chart (0) | 2024.05.18 |
[파이썬]Streamlit 활용 - 화면 레이아웃 (0) | 2024.04.13 |