이 글은 Streamlit이라는 파이썬 기반 웹 애플리케이션 프레임워크를 소개하고, 이를 활용해 데이터 시각화 및 웹 앱 개발을 쉽게 수행할 수 있음을 강조합니다.
파이썬 Streamlit
웹 애플리케이션을 만든다고 하면 대부분 복잡한 HTML, CSS, JavaScript 코드와 백엔드 프레임워크가 떠오를 것입니다. 하지만 데이터를 시각화하거나 간단한 기능을 가진 웹 앱을 만들기 위해 이렇게 많은 기술을 배워야 할까요?
Streamlit은 이런 부담을 단번에 해결한 놀라운 파이썬 라이브러리입니다. 개발 지식이 없는 사람도 단 몇 줄의 코드만으로 훌륭한 웹 애플리케이션을 만들 수 있습니다.
Streamlit의 특징과 장점
Streamlit이 주목받는 이유는 간단함과 효율성 때문입니다.
- 복잡한 웹 개발이 필요 없다
- 일반적으로 웹 앱을 개발하려면 프런트엔드와 백엔드를 별도로 구현해야 합니다. 하지만 Streamlit은 파이썬 코드만으로 프런트엔드와 백엔드의 기능을 동시에 수행합니다.
- 빠른 프로토타이핑
- 코드를 수정하면 즉시 결과를 확인할 수 있습니다. 이는 실험이나 테스트가 중요한 데이터 과학 프로젝트에 매우 유용합니다.
- 누구나 접근 가능
- Streamlit은 파이썬을 기반으로 하기 때문에, 파이썬을 조금이라도 다룰 줄 안다면 누구나 쉽게 시작할 수 있습니다.
설치 및 기본 사용법
Streamlit을 사용하기 위해서는 파이썬 환경이 필요합니다. Streamlit의 설치와 실행은 다음과 같이 매우 간단합니다.
설치하기
pip install streamlit
설치가 완료되면 Streamlit에서 제공하는 데모 페이지를 확인해볼 수 있습니다.
bash streamlit hello
이 명령어를 실행하면 기본적으로 제공되는 Streamlit 샘플 앱이 브라우저에서 열리며 다양한 기능을 시연해 줍니다. 이를 통해 Streamlit이 제공하는 인터랙티브 위젯, 차트 시각화 등을 미리 경험할 수 있습니다.
첫 번째 앱 만들기
Streamlit 앱은 일반적인 파이썬 스크립트처럼 작성되지만, 실행 방법이 다릅니다.
app.py
라는 파일을 만들고 다음 코드를 입력하세요.
import streamlit as st
st.title("안녕하세요, Streamlit!")
st.write("이것은 Streamlit으로 만든 첫 번째 웹 앱입니다.")
앱 실행
터미널에서 다음 명령어를 입력하세요.
bash streamlit run app.py
브라우저가 자동으로 열리며, Streamlit 앱이 실행됩니다. 이렇게 간단한 코드만으로 동작하는 웹 애플리케이션을 볼 수 있습니다.
Streamlit의 핵심 기능
Streamlit은 다음과 같은 주요 함수를 제공합니다.
데이터 출력 및 텍스트 표시
st.write()
: 텍스트, 데이터프레임, 차트 등 다양한 데이터 유형 출력
import streamlit as st
import pandas as pd
st.write("간단한 메시지 출력")
df = pd.DataFrame({'Column A': [1, 2, 3], 'Column B': [4, 5, 6]})
st.write("데이터프레임 출력", df)
인터랙티브 위젯
사용자의 입력을 실시간으로 반영할 수 있는 다양한 위젯이 제공됩니다.
- 버튼:
st.button('버튼명')
- 슬라이더:
st.slider('슬라이더 제목', min, max, 초기값)
- 드롭다운 메뉴:
st.selectbox('선택하세요', ['옵션1', '옵션2'])
name = st.text_input("이름을 입력하세요")
age = st.slider("나이를 선택하세요", 0, 100, 25)
st.write(f"입력한 이름: {name}, 나이: {age}")
시각화 지원
Streamlit은 matplotlib, pandas, Plotly 등 다양한 데이터 시각화 도구와 호환됩니다.
import pandas as pd
import matplotlib.pyplot as plt
st.title('데이터 시각화 예제')
# 더미 데이터 생성
data = {'x': [1, 2, 3, 4], 'y': [10, 20, 30, 40]}
df = pd.DataFrame(data)
# 그래프 시각화
fig, ax = plt.subplots()
ax.plot(df['x'], df['y'], marker='o', linestyle='-')
st.pyplot(fig)
실시간 코드 반영
Streamlit은 핫 리로딩(hot reloading)을 지원하기 때문에 코드 변경 시 페이지를 새로고침하지 않아도 자동으로 변경 사항이 반영됩니다. 이는 생산성을 극대화하는 중요한 장점입니다.
Streamlit로 실생활 문제 해결하기
다양한 기능을 종합해 보면 Streamlit은 실제 문제 해결에 매우 적합합니다. 예를 들어 다음과 같은 도구를 만들 수 있습니다.
데이터 분석 및 시각화 대시보드
사용자는 데이터를 업로드하면 그래프와 테이블로 즉시 분석 결과를 확인할 수 있습니다.
import streamlit as st
import pandas as pd
st.title("CSV 데이터 업로드 및 시각화")
uploaded_file = st.file_uploader("CSV 파일을 업로드하세요", type="csv")
if uploaded_file:
df = pd.read_csv(uploaded_file)
st.write("데이터 미리보기", df.head())
st.line_chart(df)
머신러닝 모델 배포
Streamlit을 사용하면 학습된 모델을 배포하고 사용자가 데이터를 입력해 예측 결과를 확인하는 앱을 쉽게 만들 수 있습니다.
실시간 모니터링 대시보드
API나 외부 데이터를 연결해 실시간으로 변화하는 데이터를 시각화할 수 있습니다.
'IT 트랜드' 카테고리의 다른 글
허수(Imaginary Numbers)에 대하여, 실수 너머의 수학적 발견과 역사 (0) | 2025.01.02 |
---|---|
이메일 스푸핑 대비 가이드 - 개인정보 보호와 온라인 사기 예방 (0) | 2024.12.20 |
기술 트렌드를 이끄는 2개의 축, 하드웨어와 소프트웨어 그 변화와 상생 (0) | 2024.12.09 |
양자 컴퓨터의 속도와 상용화 가능성 그리고 초저온 환경과 양자중첩 (0) | 2024.11.25 |
매개변수란 무엇인가? Meta Llama 3.2로 알아보는 생성형 AI 이해하기 (0) | 2024.11.19 |