if("rJava" %in% installed.packages("rJava") == FALSE)install.packages("rJava")
library(rJava)
if("shiny" %in% installed.packages("shiny") == FALSE)install.packages("shiny")
library(shiny)
if("shinyjs" %in% installed.packages("shinyjs") == FALSE)install.packages("shinyjs")
library(shinyjs)
calcul <- function(n1,op,n2){
  return(if(op=='+'){n1+n2}else
    if(op=='-'){n1-n2}else
      if(op=='*'){n1*n2}else
        if(op=='/'){n1%/%n2}else
        {0}
    )
}
ui <- fluidPage(
  useShinyjs(),
  numericInput("num1","첫번째 수 :",0, min=1, max=100),
  textInput("op","연산기호 :"),
  numericInput("num2","두번째 수 :",0, min=1, max=100),
  # verbatimTextOutput("value")
  actionButton("btn","클 릭")
)

server <- function(input, output, session) {
  #output$value <- renderText({calcul(input$num1,input$op,input$num2)})
  onclick("btn", info({calcul(input$num1,input$op,input$num2)}))
}

if(interactive()){
  shinyApp(ui, server)
}
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCg0KYGBge3J9DQppZigickphdmEiICVpbiUgaW5zdGFsbGVkLnBhY2thZ2VzKCJySmF2YSIpID09IEZBTFNFKWluc3RhbGwucGFja2FnZXMoInJKYXZhIikNCmxpYnJhcnkockphdmEpDQppZigic2hpbnkiICVpbiUgaW5zdGFsbGVkLnBhY2thZ2VzKCJzaGlueSIpID09IEZBTFNFKWluc3RhbGwucGFja2FnZXMoInNoaW55IikNCmxpYnJhcnkoc2hpbnkpDQppZigic2hpbnlqcyIgJWluJSBpbnN0YWxsZWQucGFja2FnZXMoInNoaW55anMiKSA9PSBGQUxTRSlpbnN0YWxsLnBhY2thZ2VzKCJzaGlueWpzIikNCmxpYnJhcnkoc2hpbnlqcykNCmNhbGN1bCA8LSBmdW5jdGlvbihuMSxvcCxuMil7DQogIHJldHVybihpZihvcD09JysnKXtuMStuMn1lbHNlDQogICAgaWYob3A9PSctJyl7bjEtbjJ9ZWxzZQ0KICAgICAgaWYob3A9PScqJyl7bjEqbjJ9ZWxzZQ0KICAgICAgICBpZihvcD09Jy8nKXtuMSUvJW4yfWVsc2UNCiAgICAgICAgezB9DQogICAgKQ0KfQ0KdWkgPC0gZmx1aWRQYWdlKA0KICB1c2VTaGlueWpzKCksDQogIG51bWVyaWNJbnB1dCgibnVtMSIsIuyyq+uyiOynuCDsiJggOiIsMCwgbWluPTEsIG1heD0xMDApLA0KICB0ZXh0SW5wdXQoIm9wIiwi7Jew7IKw6riw7Zi4IDoiKSwNCiAgbnVtZXJpY0lucHV0KCJudW0yIiwi65GQ67KI7Ke4IOyImCA6IiwwLCBtaW49MSwgbWF4PTEwMCksDQogICMgdmVyYmF0aW1UZXh0T3V0cHV0KCJ2YWx1ZSIpDQogIGFjdGlvbkJ1dHRvbigiYnRuIiwi7YG0IOumrSIpDQopDQoNCnNlcnZlciA8LSBmdW5jdGlvbihpbnB1dCwgb3V0cHV0LCBzZXNzaW9uKSB7DQogICNvdXRwdXQkdmFsdWUgPC0gcmVuZGVyVGV4dCh7Y2FsY3VsKGlucHV0JG51bTEsaW5wdXQkb3AsaW5wdXQkbnVtMil9KQ0KICBvbmNsaWNrKCJidG4iLCBpbmZvKHtjYWxjdWwoaW5wdXQkbnVtMSxpbnB1dCRvcCxpbnB1dCRudW0yKX0pKQ0KfQ0KDQppZihpbnRlcmFjdGl2ZSgpKXsNCiAgc2hpbnlBcHAodWksIHNlcnZlcikNCn0NCg0KDQoNCg0KDQpgYGANCg0K