iBetter Books
수정

첫 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 기초를 빠르게 복습합니다.