레이아웃 추가하기
앞선 챕터에서 본 것처럼, 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)