R-shiny Timer.R 분석

Jake Lee·2022년 12월 29일
0

현재시간을 표시해주는 간단한 타이머 프로그램



전체 코드

library(shiny)

# Define UI for displaying current time ----
ui <- fluidPage(
  
  h2(textOutput("currentTime"))
  
)

# Define server logic to show current time, update every second ----
server <- function(input, output, session) {
  
  output$currentTime <- renderText({
    invalidateLater(1000, session)
    paste("The current time is", Sys.time())
  })
  
}

# Create Shiny app ----
shinyApp(ui, server)



ui 코드 분석

ui <- fluidPage(
  
  h2(textOutput("currentTime"))
  
)
  • 사용자의 환경에 맞게 자동으로 디스플레이를 조정해주는 fluidpage() 함수 사용

  • h2() 함수는 html의 h1~h6에 대응하는 머리글을 작성하는 함수

  • textOutput() 함수로 서버함수로부터 받아온 currentTime을 출력



server 코드 분석

server <- function(input, output, session) {
  
  output$currentTime <- renderText({
    invalidateLater(1000, session)
    paste("The current time is", Sys.time())
  })
  • output 객체는 ui.R에서 output값으로 참조하게되는 변수의 list이다.

  • output$ 뒤에는 어떤 값을 output으로 ui.R에 전달할지를 결정하게 된다. 즉, 이 프로그램에서는 currentTime을 output으로서 전달하게 된다.

  • renderText()라는 함수를 사용해서 어떤 텍스트를 currentTime에 반환할 지를 결정하게 된다

  • invalidateLater()라는 함수는 한 세션동안 1000밀리세컨즈 단위로 계속 갱신시켜주는 함수이다. 1000밀리세컨즈는 1초니까 이 함수의 경우는 1초마다 갱신을 시켜주게 된다.

  • 밑에 있는 paste() 함수는 말그대로 "The current time is" 라는 문장과 Sys.time() 함수의 값을 붙이는 함수이다.

  • 정리하자면 "The current time is"라는 텍스트와 시스템시간을 붙이고 그것을 매 초마다 계속 갱신시켜서 currentTime이라는 output값으로 ui.R에 반환하여 현재시간을 표시해주는 프로그램이다.

0개의 댓글