들어가며
데이터 과학자와 개발자들이 복잡한 기술적 단계 없이 신속하게 대화형 웹 애플리케이션을 만들 수 있는 도구가 있다면 어떨까요? Streamlit이 바로 그런 솔루션입니다. 이 블로그 포스트에서는 Streamlit의 매력적인 특징과 사용 방법을 자세히 알아보겠습니다.
Streamlit이란 무엇인가?
Streamlit은 Python 기반의 오픈 소스 웹 애플리케이션 프레임워크로, 데이터 과학 프로젝트와 머신러닝 모델을 쉽고 빠르게 공유할 수 있게 해주는 혁신적인 도구입니다. 복잡한 웹 개발 지식 없이도 간단한 Python 스크립트로 인터랙티브한 웹앱을 만들 수 있습니다.
설치 방법
Streamlit 설치는 매우 간단합니다. Python의 pip를 사용하여 다음 명령어로 설치할 수 있습니다:
pip install streamlit
가상환경을 사용하는 것을 추천하며, Python 3.7 이상 버전에서 작동합니다.
기본 사용 방법
첫 번째 Streamlit 앱 만들기
다음은 간단한 Streamlit 앱의 예시입니다:
import streamlit as st
st.title('나의 첫 Streamlit 앱')
st.write('Hello, Streamlit!')
number = st.slider('숫자를 선택하세요', 0, 100)
st.write(f'선택한 숫자의 제곱: {number ** 2}')
이 코드는 제목, 텍스트, 슬라이더를 포함하는 상호작용형 웹앱을 생성합니다.
주요 위젯들
Streamlit은 다양한 위젯을 제공합니다:
st.button()
: 버튼 생성st.checkbox()
: 체크박스st.radio()
: 라디오 버튼st.selectbox()
: 드롭다운 선택st.text_input()
: 텍스트 입력st.dataframe()
: 데이터프레임 시각화
주요 응용 사례
- 머신러닝 모델 데모
- 학습된 모델의 예측 결과를 인터랙티브하게 시각화
- 실시간 모델 성능 테스트
- 데이터 분석 대시보드
- 복잡한 데이터셋의 탐색적 데이터 분석
- 동적 차트와 시각화 생성
- 비즈니스 인텔리전스 대시보드
- 실시간 비즈니스 메트릭 모니터링
- 의사결정권자를 위한 데이터 시각화
- 챗봇 서비스
- AI API를 활용한 챗봇 서비스
Streamlit의 특장점
- 빠른 개발: 최소한의 코드로 웹앱 제작
- Python 친화적: 추가 웹 프레임워크 학습 불필요
- 무료 호스팅: Streamlit Community Cloud 제공
- 다양한 라이브러리 통합: Pandas, Matplotlib, Plotly 등과 쉬운 연동
결론
Streamlit은 데이터 과학자와 개발자에게 강력하고 사용하기 쉬운 웹앱 개발 도구입니다. 복잡한 웹 개발 지식 없이도 놀라운 인터랙티브 애플리케이션을 만들 수 있습니다.
시작하기
Streamlit 공식 문서(https://docs.streamlit.io)를 방문하여 더 많은 기능과 예제(https://streamlit.io/gallery)를 확인해보세요. 여러분의 첫 Streamlit 앱 개발을 응원합니다!
Streamlit에서 역방향 프록시 설정시 주의사항
Streamlit 에서 생성한 app 을 역방향 프록시를 통해서 https , http를 연결했을때, websocket connection fail 증상으로 문제 발생하는 경우가 있습니다. 이때 커스텀 헤더에서 다음에 해당하는 설정을 추가합니다.
upgrade ,$http_upgrade
Connection ,$connection_upgrade
를 추가하려 해결합니다. (관련링크 : https://discuss.streamlit.io/t/streamlit-to-work-on-my-synology-nas/13226/19)
답글 남기기