"배포 입문 (5/7) — 무료 배포 2: Streamlit Community Cloud로 데이터 앱 공개하기"

Streamlit Community Cloud의 장점은 인프라를 많이 감추는 데 있다. 대신 앱의 구조와 의존성 파일은 더 정확해야 한다.


핵심 요약

  • Streamlit Community Cloud는 공식 문서 기준으로 무료로 앱을 배포·관리할 수 있는 플랫폼이다.
  • 현재도 워크스페이스 진입점은 share.streamlit.io이고, 실제 앱 URL은 streamlit.app 도메인으로 배포된다.
  • GitHub 저장소, 브랜치, 실행 파일 경로를 지정해 Python 앱을 비교적 쉽게 공개할 수 있다.
  • 대시보드, 데모, 내부 툴 프로토타입에는 좋지만, 범용 백엔드 서비스 운영 플랫폼으로 이해하면 곤란하다.

1. 왜 Streamlit은 배포 장벽이 낮을까

Vercel이 프론트엔드 미리보기 흐름에 강하다면, Streamlit Community Cloud는 Python 앱을 URL로 만드는 길이 짧다는 점이 강점이다.

특히 아래처럼 "화면은 있어야 하지만 프론트엔드 프레임워크를 별도로 짜고 싶지 않은" 경우에 잘 맞는다.

  • 데이터 탐색 대시보드
  • 간단한 ML 데모
  • 사내 분석 툴
  • 포트폴리오용 앱

즉, Python 코드 중심으로 만든 결과를 바로 보여 주는 데 유리하다.

2. 실제 배포 흐름은 어떻게 되나

공식 배포 가이드 기준으로 Community Cloud에서는 워크스페이스에서 Create app을 누른 뒤 아래 정보를 채운다.

  • GitHub repository
  • branch
  • entrypoint file path
  • 원하는 앱 URL 서브도메인

그리고 필요하면 Advanced settings에서 Python 버전과 secrets를 설정한다.

중요한 사실 하나는 명칭 구분이다. 관리 워크스페이스는 share.streamlit.io, 배포된 앱 주소는 streamlit.app다. 예전 자료를 읽다가 둘을 같은 것으로 생각하면 UI와 URL 설명에서 혼동이 생긴다.

3. 무엇을 준비해야 하나

Streamlit 배포는 쉬운 대신, 준비물이 정확해야 한다.

실행 파일

어떤 파일이 앱의 진입점인지 분명해야 한다. 예를 들어 streamlit_app.py 또는 app.py.

의존성 파일

requirements.txt, pyproject.toml 같은 의존성 정보가 빠지면 로컬에서는 되던 앱이 클라우드에서 바로 깨진다.

비밀값

API 키나 비밀 토큰은 저장소에 넣지 않고 Community Cloud의 secrets 설정에 넣어야 한다.

4. 어떤 경우에 특히 잘 맞나

Streamlit Community Cloud는 아래 조건이면 좋은 시작점이다.

  • Python만으로 앱을 만들고 싶다
  • 시각화, 표, 입력 폼 정도면 충분하다
  • 빠르게 링크를 공유하고 싶다
  • 복잡한 인프라 제어보다 시연 속도가 더 중요하다

반대로 아래 조건이면 다른 플랫폼을 고민해야 한다.

  • 항상 떠 있는 백엔드 서비스가 필요하다
  • 웹훅, 큐, 워커, 장시간 작업 처리가 중요하다
  • 앱 구조가 프론트엔드와 API 서버로 분리되어 있다

5. 자주 막히는 지점

첫째, 패키지 누락. 로컬 가상환경에만 설치되어 있고 requirements.txt에는 빠져 있는 경우가 많다.

둘째, secrets를 코드에 하드코딩하는 습관. 입문 단계에서는 편해 보여도 나중에 바로 문제를 만든다.

셋째, 업데이트 반영 시간을 오해하는 것. 공식 문서 기준으로 코드 변경은 비교적 빠르게 반영되지만, 의존성 변경은 설치 때문에 더 오래 걸릴 수 있다.

넷째, Streamlit을 "모든 웹앱 플랫폼"으로 보는 것. Streamlit은 강점이 분명하지만, 앱 구조 자체가 다른 경우에는 맞지 않는다.

6. 입문자용 판단 기준

아래 세 질문에 "예"가 많으면 Streamlit Community Cloud가 잘 맞는다.

  1. Python 중심 앱인가?
  2. 빠른 공개 데모가 중요한가?
  3. 프론트엔드 프레임워크를 별도로 관리하고 싶지 않은가?

이 세 가지가 맞으면 Streamlit은 가장 짧은 배포 경로 중 하나다. 하지만 서버 프로세스를 운영해야 하는 순간부터는 다음 편의 Railway가 더 자연스러운 선택이 된다.

참고 자료

  • Streamlit Docs, Streamlit Community Cloud — https://docs.streamlit.io/deploy/streamlit-community-cloud
  • Streamlit Docs, Deploy your app on Community Cloud — https://docs.streamlit.io/deploy/streamlit-community-cloud/deploy-your-app/deploy
  • Streamlit Docs, Manage your app — https://docs.streamlit.io/deploy/streamlit-community-cloud/manage-your-app

이 글은 배포 입문 시리즈의 5/7 편입니다. 다음 편: Railway로 백엔드와 풀스택 앱 운영하기.

댓글

이 블로그의 인기 게시물

"LLM 핵심 학습 (1/6) — 기본: 토큰화·임베딩·어텐션·위치 인코딩"

"LLM 핵심 학습 (2/6) — 파인튜닝: LoRA·QLoRA·증류·Adapter"

"ML 기초 학습 (1/9) — 머신러닝과 sklearn: 학습의 좌표계"