Streamlit 앱 동면 방지 자동화와 실전 프로젝트 4종을 공유합니다
안녕하세요, 파이썬 기반의 다양한 자동화 도구를 만드는 '잡학다식 개발자'입니다.
무료 호스팅 서비스인 Streamlit Community Cloud를 사용하다 보면, 일정 시간 접속이 없을 때 앱이 자동으로 잠드는(Sleeping) 현상 때문에 정성껏 만든 서비스가 제때 보이지 않아 아쉬울 때가 많습니다. 이를 해결하기 위해 GitHub Actions를 활용한 'awake_alive' 워크플로우를 구축하여 공유하고자 합니다.
단순히 핑(Ping)을 보내는 기능을 넘어, 현재 제가 운영 중인 중고차 데이터 분석, 자동차 유지비 시뮬레이터, 고전 게임 대시보드 등 성격이 다른 여러 앱을 한꺼번에 효율적으로 관리하도록 설계했습니다.
[핵심 코드: GitHub Actions 기반 동면 방지 로직]
# .github/workflows/awake_alive.yml
name: Keep Streamlit Apps Awake
on:
schedule:
- cron: '0 */12 * * *' # 12시간마다 주기적으로 실행
workflow_dispatch: # 수동 실행 가능
jobs:
ping:
runs-on: ubuntu-latest
steps:
- name: Send keep-alive pings to multiple apps
run: |
# 운영 중인 다양한 서비스 URL 리스트
urls=(
"https://kcar-scraper.streamlit.app"
"https://maintenance-battle.streamlit.app"
"https://retro-game-center.streamlit.app"
)
for url in "${urls[@]}"; do
curl -s $url > /dev/null
echo "Successfully pinged: $url"
done이번 콘텐츠에서는 위 자동화 코드뿐만 아니라, 오라클 클라우드에 직접 구축한 워드프레스 뉴스 블로그(gohard.pe.kr) 등 서로 다른 환경의 서비스들을 어떻게 연결하고 유지하는지에 대한 경험을 담았습니다.
기술적인 상세 구현 방법과 전체 프로젝트 리스트는 아래 링크에서 확인하실 수 있습니다.
GitHub 저장소: https://github.com/gohard-lab
실행 링크: 영상 설명란의 Google Colab 및 EXE 실행 파일을 확인해 주세요. (배포 파일은 보안 검수를 마쳤으므로 안심하고 사용하셔도 됩니다.)
댓글을 남기려면 로그인이 필요합니다.
로그인 후 이 페이지로 돌아와 바로 댓글을 남길 수 있습니다.