์๋ฅผ ๋ค์ด ์๋์ ๊ฐ์ ๊ฐ๋จํ ์ฑ์ด ์๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. DT ํ
์ด๋ธ์ server = TRUE
(์๋ฒ ์ฒ๋ฆฌ ๋ชจ๋)์ผ ๋ ajax๋ฅผ ์ฌ์ฉํฉ๋๋ค.
library(shiny)
ui <- fluidPage(DT::DTOutput('tbl'))
server <- function(input, output, session) {
output$tbl <- DT::renderDT(iris, server = TRUE)
}
runApp(list(ui = ui, server = server))
์ธ์ฆ์ด ํ์ฑํ๋ ๊ฒฝ์ฐ(๋ชจ๋ ์ธ์ฆ ๋ฐฉ๋ฒ) ๋ธ๋ผ์ฐ์ ๋ฅผ ์ด๊ณ ์ฑ์ ๋ค์ด๊ฐ๋ฉด ๋ชจ๋ ๊ฒ์ด ์ ๋๋ก ์๋ํฉ๋๋ค(์: ํ ์๋์ ํ์ด์ง ๋ฒํผ ํด๋ฆญ). ๊ทธ๋ฌ๋ ์ค๋ ์๊ฐ ๋์(30๋ถ ๋๋ 1์๊ฐ) ์ ํด ์ํ๊ฐ ๋ ํ ํ์ด์ง ๋ฒํผ์ ํด๋ฆญํ๋ฉด DT๊ฐ ajax ์ค๋ฅ์ ๋ํด ๋ถ๋ง์ ํ์ํ๋ ๊ฒ์ ๋ณผ ์ ์์ต๋๋ค. ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฐ๋จํฉ๋๋ค. ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์น๊ฑฐ๋ Shinyproxy์ ๋ํ ์ ์ฐ๊ฒฐ์ ์ด๊ณ ๋ค์ ๋ก๊ทธ์ธํ๋ฉด ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ์ฌ์ฉ์์๊ฒ ๋ง์ ํผ๋์ ์ค๋๋ค.
์ค๋ ์๊ฐ ์ ํด ์ํ ํ Shinyproxy์์ ์ ์ฐ๊ฒฐ์ ์ํด ๋ค์ ๋ก๊ทธ์ธํด์ผ ํ์ง๋ง ๊ธฐ์กด ์ฐ๊ฒฐ์ด ์ฌ์ ํ ์ ํจํ๊ธฐ ๋๋ฌธ์ ๋๋ค. Shinyproxy๋ ์๋ก์ด ์ฐ๊ฒฐ๋ก ๊ฐ์ฃผํ๊ธฐ ๋๋ฌธ์ ๊ธฐ์กด ์ฑ์ด ์ํํ๋ ค๋ AJAX ๊ฒ์๊ฐ ์๋ฒ์์ ๊ฑฐ๋ถ๋๋ ๋ถ์์ฉ์ด ์์ต๋๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๊ฐ์ฌ ํด์.
@shrektan ๋น์ทํ ๋ฌธ์ ๊ฐ ์์๋๋ฐ OpenAnalytics
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋์์ต๋๋ค.
undertow
์๊ฐ ์ ํ์ ๋ณ๊ฒฝํฉ๋๋ค(๊ธฐ๋ณธ์ ์ผ๋ก 30๋ถ).
server:
servlet.session.timeout: 3600
์๋๋ ์ด ๋จ์์
๋๋ค. ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ์ง ์์ผ๋ฉด 0
์ค์ ํ์ญ์์ค.
๊ณ ๋ง์, ๋๋ฐ
@dylancis ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค! ๊ฐ์ฌํฉ๋๋ค!
๊ทธ๋ฌ๋ IMHO, ์ธ์ ์๊ฐ์ด ์ด๊ณผ๋๋ฉด ๊ธฐ์กด ์ฑ์ ์ฐ๊ฒฐ์ ๋๋ ๊ฒ์ด ๋ ์ข๊ธฐ ๋๋ฌธ์ ๋ฌธ์ ๋ฅผ ์ด์ด ๋ก๋๋ค.
@dylancis BTW, ์ฝ๊ฐ ์ฃผ์ ์์ ๋ฒ์ด๋ DT ํ ์ด๋ธ์ด ํฌํจ๋ Shinyproxy์ ์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉํด ๋ณด์ จ์ต๋๊น? ์์ธ์ ์กฐ์ฌํ์ง ์์์ง๋ง POST ๋ฉ์๋๋ฅผ ์๋ฝํ ์ ์๋ค๋ AJAX ์ค๋ฅ๊ฐ ํ์๋ฉ๋๋ค.
>
@dylancis BTW, ์ฝ๊ฐ ์ฃผ์ ์์ ๋ฒ์ด๋ DT ํ ์ด๋ธ์ด ํฌํจ๋ Shinyproxy์ ์ ๋ฆด๋ฆฌ์ค๋ฅผ ์ฌ์ฉํด ๋ณด์ จ์ต๋๊น? ์์ธ์ ์กฐ์ฌํ์ง ์์์ง๋ง POST ๋ฉ์๋๋ฅผ ์๋ฝํ ์ ์๋ค๋ AJAX ์ค๋ฅ๊ฐ ํ์๋ฉ๋๋ค.
์์ค - ์๋ ์์งํ์ง ์์์ต๋๋ค.
๋ํ ์ ๋ฅผ ์ํด - ์ ๋ 2.1์์ 2.2๋ก ์ ํํ๊ณ ์ง๊ธ์ ๋จ ํ๋์ renderDataTable
์๋ํ์ง ์์ต๋๋ค. ์ด ํ์ด์ง http://datatables.net/tn/7๋ก ๋ฆฌ๋๋ ์
ํ๋ ๋ง์ AJAX ์ค๋ฅ
๋ฒ๊ทธ๋ผ๊ณ ์๊ฐํฉ๋๋ค... ์ค์ ๋ก ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ด๋ฉด AJAX ์์ฒญ์ ์๋ต์ ๋ณผ ์ ์์ต๋๋ค. ์๋ฒ์์ POST ๋ฉ์๋๋ฅผ ์๋ฝํ ์ ์์ง๋ง GET์ ๊ด์ฐฎ์ต๋๋ค...
์๋ ํ์ธ์ @shrektan DT์ ๋ํ ์ด ์ด๊ตฌ ๋ฌธ์ ๋ฅผ ์ ๊ธฐํ์ จ์ต๋๊น? ์ ๊ทธ๋ ์ด๋ํ ๊ณํ์ด์ง๋ง ์ฑ์ ๋ฐ์ดํฐ ํ ์ด๋ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํฌ๊ฒ ์์กดํฉ๋๋ค.
@dylancis ๋ฐฉ๊ธ #140์์ ์ด ๋ฒ๊ทธ์ ๋ํ ์๋ก์ด ๋ฌธ์ ๋ฅผ ์ ์ถํ์ต๋๋ค.
@dylancis๊ฐ ์ธ๊ธํ๋ฏ์ด server.servlet.session.timeout
๋๋ฆฌ๋ฉด ์ด ๋ฌธ์ ๋ฅผ ํผํ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ์ด๋ฆฐ ์น ์์ผ ์ฑ๋(ํํธ๋นํธ๋ฅผ ํธ๋ฆฌ๊ฑฐํ์ฌ ์ปจํ
์ด๋๋ฅผ ํ์ฑ ์ํ๋ก ์ ์ง)์ด ์๋ ํ ์ธ์
์๊ฐ ์ด๊ณผ๊ฐ ์๋์ผ๋ก ์ง์ฐ๋๋ ๊ฒ์ด ๋ ๋ซ๋ค๋ ๋ฐ ๋์ํฉ๋๋ค.
์ฐธ๊ณ : ์ด ๋๊ธ์ ์ธ์ ๋ง๋ฃ๋ก ์ธํ 401(๋ฌด๋จ) ์๋ต์ ๊ดํ ๊ฒ์ ๋๋ค. 405(ํ์ฉ๋์ง ์๋ ๋ฐฉ๋ฒ) ์๋ต์ ์ด๋ํ๋ ์์ฝ์ค POST ๋ฌธ์ ์ ๊ดํ ๊ฒ์ด ์๋๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@shrektan ๋น์ทํ ๋ฌธ์ ๊ฐ ์์๋๋ฐ
OpenAnalytics
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋์์ต๋๋ค.undertow
์๊ฐ ์ ํ์ ๋ณ๊ฒฝํฉ๋๋ค(๊ธฐ๋ณธ์ ์ผ๋ก 30๋ถ).์๋๋ ์ด ๋จ์์ ๋๋ค. ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ์ง ์์ผ๋ฉด
0
์ค์ ํ์ญ์์ค.๊ณ ๋ง์, ๋๋ฐ