첫 Shiny 앱 실행하기
패키지 설치까지 끝났습니다. 이제 실제로 Shiny 앱을 실행해봅시다. Shiny는 내장 예제 앱을 제공하기 때문에 코드를 한 줄도 작성하지 않고 바로 앱을 경험할 수 있습니다.
내장 예제 앱 실행
Shiny에는 학습용 예제가 여러 개 포함되어 있습니다. 그 중 가장 기본적인 "Hello Shiny" 앱을 실행해봅시다.
library(shiny)
runExample("01_hello")
명령어를 실행하면 RStudio Viewer 패널이나 기본 웹 브라우저가 열리면서 앱이 표시됩니다.
앱 살펴보기
"01_hello" 앱은 히스토그램을 보여주는 간단한 앱입니다.
- 왼쪽에는 슬라이더가 있습니다. "Number of bins"라고 표시된 슬라이더를 드래그해보세요.
- 슬라이더를 움직이는 즉시 오른쪽 히스토그램이 바뀝니다.
- 이것이 Shiny의 핵심인 "반응형(Reactive)" 동작입니다.
입력값이 바뀌면 출력이 자동으로 갱신됩니다. 새로고침 버튼을 누르거나 Submit 버튼이 필요하지 않습니다.
다른 예제들
Shiny에 내장된 예제 목록을 확인할 수 있습니다.
runExample()
콘솔에 출력되는 예제 목록입니다.
Valid examples are "01_hello", "02_text", "03_reactivity",
"04_mpg", "05_sliders", "06_tabsets", "07_widgets",
"08_html", "09_upload", "10_download", "11_timer"
각 예제를 실행하면서 Shiny가 어떤 기능을 제공하는지 미리 살펴볼 수 있습니다.
runExample("03_reactivity") # 반응형 동작 예제
runExample("06_tabsets") # 탭 레이아웃 예제
runExample("09_upload") # 파일 업로드 예제
직접 앱 만들어 실행하기
내장 예제 말고, 직접 코드를 작성해서 실행해봅시다. RStudio에서 새 R 스크립트 파일(app.R)을 만들고 아래 코드를 입력합니다.
library(shiny)
ui <- fluidPage(
titlePanel("나의 첫 Shiny 앱"),
sidebarLayout(
sidebarPanel(
sliderInput("num", "숫자를 선택하세요.", min = 1, max = 100, value = 50)
),
mainPanel(
textOutput("result")
)
)
)
server <- function(input, output, session) {
output$result <- renderText({
paste("선택한 숫자:", input$num)
})
}
shinyApp(ui, server)
파일을 저장한 뒤 RStudio 우측 상단에 나타나는 "Run App" 버튼을 클릭하거나, 콘솔에서 직접 실행합니다.
runApp("app.R")
슬라이더를 움직이면 텍스트가 즉시 바뀌는 것을 확인할 수 있습니다.
앱 종료 방법
실행 중인 Shiny 앱을 종료하는 방법은 두 가지입니다.
방법 1. RStudio 콘솔에서 중지
R 콘솔 상단에 빨간 정지 버튼(Stop)이 표시됩니다. 이 버튼을 클릭하면 앱이 종료됩니다.
방법 2. 키보드 단축키
콘솔에 커서를 두고 Ctrl + C (macOS는 Cmd + C)를 누릅니다.
앱이 종료되면 콘솔에 > 프롬프트가 다시 나타납니다.
브라우저에서 확인하기
RStudio의 Viewer 패널이 아닌 실제 브라우저에서 앱을 보고 싶다면, Viewer 패널 상단의 "Open in Browser" 아이콘을 클릭합니다. 또는 앱 실행 시 옵션을 지정합니다.
runApp("app.R", launch.browser = TRUE)
브라우저에서 확인하면 실제 사용자가 보게 될 모습과 동일하게 확인할 수 있습니다.
이제 개발 환경이 완전히 준비됐습니다. 다음 파트에서 Shiny에 필요한 R 기초를 빠르게 복습합니다.