Shiny 아키텍처를 이해합니다. UI, server, 입력 위젯(input widget), 출력 위젯(output widget), 렌더링(Rendering) 정도는 숙지해야 합니다.
UI와 server의 상호작용을 shiny 스크립트 관점에서 표준화해 봅니다.
UI와 Server의 상호작용 예시를 구현한 shiny 프로그램은 다음과 같습니다.
눈으로 한번 쭉 훑어보세요. 이해할 것 같으면서도 어려운 겁니다.
library(shiny)
# Define UI for application that draws a histogram
ui <- fluidPage(
# Application title
titlePanel("Old Faithful Geyser Data"),
# Sidebar with a slider input for number of bins
sidebarLayout(
sidebarPanel(
sliderInput("bins",
"Number of bins:",
min = 1,
max = 50,
value = 30)
),
# Show a plot of the generated distribution
mainPanel(
plotOutput("distPlot")
)
)
)
# Define server logic required to draw a histogram
server <- function(input, output) {
output$distPlot <- renderPlot({
# generate bins based on input$bins from ui.R
x <- faithful[, 2]
bins <- seq(min(x), max(x), length.out = input$bins + 1)
# draw the histogram with the specified number of bins
hist(x, breaks = bins, col = 'darkgray', border = 'white')
})
}
# Run the application
shinyApp(ui = ui, server = server)
아키텍처를 이해하려는 목적으로 결과를 보고 프로그램도 살펴 보세요.
shiny::runExample("01_hello")
Shiny 공식 tutorial 페이지를 살펴보고, 앱을 실행시키는 방법을 숙지하세요.
https://shiny.rstudio.com/tutorial/written-tutorial/lesson1/
For attribution, please cite this work as
유충현 (2022, Feb. 5). 애플리케이션 서버 구축을 위한 R 워크샾: Shiny 아키텍처 이해. Retrieved from https://choonghyunryu.github.io/workshop_lecture/introduce_shiny
BibTeX citation
@misc{유충현2022shiny, author = {유충현, }, title = {애플리케이션 서버 구축을 위한 R 워크샾: Shiny 아키텍처 이해}, url = {https://choonghyunryu.github.io/workshop_lecture/introduce_shiny}, year = {2022} }