[연구 자동화 #16] 보고서를 넘어 '대시보드'로: Streamlit으로 실시간 데이터 웹 앱 만들기
연구 데이터 분석의 최종 단계는 대개 그래프를 논문에 삽입하거나 보고서에 붙여넣는 것으로 끝납니다. 하지만 이런 방식은 '정적'입니다. 누군가 "온도 조건을 80도가 아니라 100도로 설정했을 때의 그래프도 보고 싶어"라고 요청하면, 우리는 다시 코드를 돌리고 그래프를 저장해서 보내주어야 하죠.
만약 웹사이트처럼 버튼을 누르고 슬라이더를 조절할 때마다 그래프가 실시간으로 변하는 인터랙티브 대시보드가 있다면 어떨까요? 웹 개발 지식이 전혀 없어도 파이썬만으로 이 모든 것을 가능하게 해주는 도구가 바로 Streamlit입니다.
1. Streamlit: 웹 개발을 모르는 연구원을 위한 선물
보통 웹사이트를 만들려면 HTML, CSS, JavaScript 같은 복잡한 언어를 배워야 합니다. 하지만 Streamlit은 오직 파이썬 코드만으로 웹 앱을 만들어줍니다.
장점: 데이터프레임을 웹에 바로 띄울 수 있고, 클릭 한 번으로 차트를 확대하거나 데이터를 필터링할 수 있습니다.
설치:
pip install streamlit하나면 준비 끝입니다.
2. 5분 만에 만드는 연구용 대시보드 맛보기
주피터 노트북이 아닌 메모장이나 VS Code에서 .py 파일을 하나 만들어 아래 코드를 복사해 보세요.
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
# 1. 앱 제목 설정
st.title('🌡️ 실시간 실험 데이터 모니터링')
# 2. 사이드바에서 파일 업로드 받기
uploaded_file = st.sidebar.file_drop('실험 데이터(CSV)를 업로드하세요', type='csv')
if uploaded_file:
df = pd.read_csv(uploaded_file)
# 3. 데이터 필터링 슬라이더 추가
min_val = st.slider('최소 수치 설정', 0, 100, 20)
filtered_df = df[df['value'] >= min_val]
# 4. 인터랙티브 차트 출력
st.subheader('필터링된 데이터 시각화')
st.line_chart(filtered_df['value'])
# 5. 데이터 표 출력
st.write('상세 데이터 표', filtered_df)
else:
st.info('데이터 파일을 업로드하면 대시보드가 활성화됩니다.')
실행은 터미널에서 streamlit run 파일명.py를 입력하면 됩니다. 브라우저가 열리며 여러분만의 근사한 데이터 앱이 나타날 것입니다.
3. 대시보드가 연구 효율을 높이는 이유
왜 번거롭게 웹 앱까지 만들어야 할까요? 그 이유는 '소통의 비용'을 획기적으로 줄여주기 때문입니다.
실시간 피드백: 실험 장비에서 데이터가 쌓일 때마다 웹 페이지를 새로고침하면 최신 경향성이 즉시 반영됩니다.
비전문가와의 협업: 파이썬을 모르는 교수님이나 동료도 웹 브라우저에서 슬라이더를 움직이며 데이터의 의미를 직접 탐색할 수 있습니다.
분석의 유연성: "이 구간만 확대해서 보고 싶다", "특정 날짜 데이터만 빼고 싶다"는 요구사항을 실시간으로 해결해 줍니다.
[표] 정적 보고서 vs 인터랙티브 대시보드
| 구분 | 정적 보고서 (Word/PDF) | 인터랙티브 대시보드 (Streamlit) |
| 데이터 업데이트 | 매번 새로 생성/저장 필요 | 데이터 소스 연결 시 자동 갱신 |
| 사용자 조작 | 불가능 (보기만 가능) | 필터링, 슬라이더, 버튼 조작 가능 |
| 공유 방식 | 파일 전송 (용량 문제 발생) | URL 링크 공유 (접근성 우수) |
| 제작 난이도 | 낮음 (복사/붙여넣기) | 중간 (파이썬 코드 기반) |
4. 무료로 웹에 배포하기
내 컴퓨터에서만 돌아가는 대시보드는 아쉽죠. Streamlit Cloud를 활용하면 깃허브(GitHub)와 연결해 단 1분 만에 전 세계 어디서든 접속 가능한 공개 URL을 생성할 수 있습니다. 이제 여러분의 연구 성과를 포트폴리오처럼 웹에 올려보세요.
5. 마치며: 연구자의 가치는 결과물의 전달력에서 나옵니다
아무리 훌륭한 데이터 분석이라도 상대방이 이해하기 어렵다면 그 가치는 절반으로 줄어듭니다. Streamlit은 여러분의 복잡한 파이썬 코드를 친절하고 아름다운 사용자 경험(UX)으로 바꿔주는 다리 역할을 합니다.
이제 보고서를 작성하느라 밤을 새우는 대신, 데이터가 스스로 말하게 하는 대시보드를 구축해 보세요. 연구의 격이 달라지는 것을 느끼실 수 있을 겁니다.
## 핵심 요약
Streamlit은 파이썬만으로 데이터 분석 웹 앱을 구축할 수 있게 해주는 혁신적인 도구입니다.
슬라이더, 버튼, 필터 등 인터랙티브 요소를 통해 데이터 탐색의 자유도를 극대화합니다.
배포 및 공유가 간편하여 연구실 내부 협업 및 대외적인 연구 성과 홍보에 매우 강력한 무기가 됩니다.
## 다음 편 예고
대시보드까지 만들었다면 이제 '똑똑한 분석'이 필요할 때입니다. 17편에서는 **[연구용 통계 분석: 파이썬으로 t-test부터 ANOVA까지, 논문용 통계 검정 자동화하기]**를 다룹니다. 손으로 돌리던 통계, 이제 코드 한 줄로 끝내봅시다.
## 소통 질문
여러분의 대시보드에 꼭 넣고 싶은 '인터랙티브 기능'은 무엇인가요? (예: 특정 온도 구간 필터링, 이상치 자동 강조 등) 댓글로 남겨주시면 구현 방법을 함께 고민해 보겠습니다!
댓글
댓글 쓰기