iBetter Books
수정

코드로 만드는 웹 애플리케이션

Shiny는 R로 인터랙티브 웹 애플리케이션을 만드는 프레임워크입니다. HTML, CSS, JavaScript를 몰라도 R 코드만으로 대시보드, 데이터 탐색 도구, 분석 리포트 앱을 만들 수 있습니다.

library(shiny)

ui <- fluidPage(
  sliderInput("n", "데이터 수", min = 10, max = 1000, value = 100),
  plotOutput("hist")
)

server <- function(input, output) {
  output$hist <- renderPlot({
    hist(rnorm(input$n), main = paste(input$n, "개의 정규분포 난수"))
  })
}

shinyApp(ui, server)

이 코드를 RStudio에서 실행하면 브라우저에 슬라이더와 히스토그램이 나타납니다. 슬라이더를 움직이면 히스토그램이 즉시 바뀝니다. 이것이 Shiny의 핵심인 반응형 프로그래밍입니다.

Shiny가 활용되는 곳

Shiny는 특히 데이터 분석 결과를 비개발자에게 전달해야 할 때 빛을 발합니다.

분야 활용 사례
학술 연구 논문 부록으로 인터랙티브 시각화 제공
의료/제약 임상시험 데이터 대시보드, 환자 코호트 탐색
금융 포트폴리오 모니터링, 리스크 분석 대시보드
공공 정책 지역별 통계 지도, 인구 트렌드 시각화
교육 통계 개념 시뮬레이션 (중심극한정리 체험 등)

Shiny의 특징

반응형 프로그래밍

Shiny의 가장 큰 특징은 반응형(reactive) 실행 모델입니다. 사용자가 입력을 바꾸면 해당 입력에 의존하는 출력만 자동으로 다시 계산됩니다. 개발자가 "언제 무엇을 갱신할지" 직접 관리하지 않아도 됩니다.

R 생태계 완전 활용

ggplot2, plotly, leaflet, DT 등 R의 시각화 패키지를 그대로 웹앱에서 사용할 수 있습니다. tidyverse로 전처리한 결과를 바로 대시보드에 표시하고, 통계 분석 결과를 실시간으로 업데이트합니다.

프론트엔드 지식 불필요

HTML/CSS/JavaScript를 모르는 데이터 분석가도 R 코드만으로 완전한 웹앱을 만들 수 있습니다. 물론 CSS로 디자인을 커스터마이징할 수도 있지만 필수는 아닙니다.

누구를 위한 교재인가

  • R로 데이터 분석을 할 줄 알지만, 결과를 웹앱으로 공유하고 싶은 분
  • 대시보드를 만들어야 하는데 Tableau나 Power BI 대신 R을 쓰고 싶은 분
  • 연구 결과를 인터랙티브 시각화로 제공하고 싶은 연구자
  • "실전 R 데이터 분석(1권)"이나 "실전 R 통계 분석(2권)"을 학습한 분