시작하기무료로 시작하기

레이아웃 추가하기

앞선 챕터에서 본 것처럼, Shiny 앱에서 레이아웃을 사용하는 것은 인터페이스를 체계적으로 구성하고 사용성을 높이는 데 중요해요.

현재 앱에는 객체가 많지 않아서(제목 1개, 입력 2개, 워드 클라우드 출력 1개) 레이아웃 없이도 관리가 가능해요. 하지만 다음 연습 문제에서 앱이 더 커질 예정이며, 사이드바 레이아웃을 사용하면 도움이 됩니다. Shiny UI 요소를 기존 레이아웃에 배치하는 편이, 나중에 구조화되지 않은 큰 앱을 재배치하는 것보다 쉽기 때문에, 레이아웃은 가능한 한 일찍 추가하는 것이 좋아요.

대부분의 Shiny 앱과 다른 대화형 애플리케이션과 마찬가지로, 입력은 더 작은 사이드바에 두고, 주요 출력(워드 클라우드)은 더 큰 메인 패널에 배치할 거예요.

이 연습은 강의의 일부입니다

사례 연구: R의 Shiny로 웹 애플리케이션 만들기

강의 보기

연습 안내

다음 과제는 현재 Shiny 앱에 사이드바 레이아웃을 추가하는 것입니다. 레이아웃 구조 외에 새로운 UI 요소는 추가하지 마세요. 구체적으로는 다음을 수행하세요.

  • UI에 사이드바 레이아웃을 추가하세요.
  • 사이드바 레이아웃 내부에 두 개의 입력을 담을 사이드바 패널을 정의하세요.
  • 역시 사이드바 레이아웃 내부에 워드 클라우드 출력(12행)을 포함하는 메인 패널을 정의하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

ui <- fluidPage(
  h1("Word Cloud"),
  # Add a sidebar layout to the UI
  ___(
    # Define a sidebar panel around the inputs
    ___(
      numericInput("num", "Maximum number of words",
                   value = 100, min = 5),
      colourInput("col", "Background color", value = "white")
    ),
    # Define a main panel around the output
    ___(
      wordcloud2Output("cloud")
    )
  )
)

server <- function(input, output) {
  output$cloud <- renderWordcloud2({
    create_wordcloud(artofwar,
                     num_words = input$num, background = input$col)
  })
}

shinyApp(ui = ui, server = server)
코드 편집 및 실행