iBetter Books
수정

세 프레임워크 비교

데이터 애플리케이션을 만드는 프레임워크는 R의 Shiny, Python의 Streamlit과 Gradio가 대표적입니다. 각각의 강점이 다르므로 상황에 맞게 선택해야 합니다.

항목 Shiny (R) Streamlit (Python) Gradio (Python)
언어 R Python Python
프로그래밍 모델 반응형 (reactive) 스크립트 재실행 함수 래핑
UI 자유도 높음 (HTML/CSS 직접 가능) 중간 (제한된 레이아웃) 낮음 (자동 생성)
시각화 생태계 ggplot2, plotly, leaflet matplotlib, plotly, altair matplotlib, plotly
통계 분석 내장 (R의 강점) scipy, statsmodels 필요 비주류
배포 shinyapps.io, Shiny Server, Docker Streamlit Cloud, Docker Hugging Face Spaces
학습 곡선 중간 (반응형 개념) 낮음 (스크립트 방식) 매우 낮음
적합한 용도 대시보드, 분석 도구, 학술 데이터 앱, 프로토타입 AI 모델 데모

Shiny를 선택해야 하는 경우

R 생태계를 이미 사용하고 있다면 Shiny가 자연스러운 선택입니다. tidyverse로 전처리하고, ggplot2로 시각화하고, stats로 분석한 결과를 그대로 웹앱에 연결합니다. 언어를 바꾸지 않아도 됩니다.

복잡한 상호작용이 필요하다면 Shiny의 반응형 프로그래밍이 강합니다. 여러 입력이 서로 의존하고, 조건에 따라 UI가 동적으로 바뀌는 앱을 만들 때 Shiny의 반응형 그래프가 이를 자동으로 관리합니다.

통계 분석 기반 대시보드를 만든다면 R의 통계 패키지를 직접 활용할 수 있는 Shiny가 가장 효율적입니다. t-검정, 회귀분석, 생존분석 결과를 실시간으로 보여주는 대시보드를 만들 수 있습니다.

Streamlit이나 Gradio를 선택해야 하는 경우

Python만 사용하는 팀이거나, 머신러닝 모델을 빠르게 데모해야 하는 경우, 혹은 프로토타입을 최대한 빨리 만들어야 하는 경우에는 Streamlit이나 Gradio가 더 적합합니다.

이 교재는 R을 기반으로 한 데이터 애플리케이션에 집중합니다. Python 기반 도구에 관심이 있다면 "실전 Streamlit"이나 "실전 Gradio" 교재를 참고하세요.