Quarto가 뭐지
RStudio는 자사의 2022년 컨퍼런스 rstudio::conf(2022)에서 발표한 여러 소식 가운데 가장 중요한 소식으로 이렇게 4가지를 꼽았습니다.
RStudio의 이름은 Posit으로 바꾼다
새로운 오픈소스 기반의 과학기술 출판 시스템, Quarto
Shiny 생태계의 새로운 발전
tidymodel의 업데이트
1번은 이미 이 포스트에서 다루었죠? 그 연장선이라고 볼 수 있는 Quarto가 이번 게시물의 주제입니다. Quarto는 R Markdown에 이은 RStudio의 차세대 R 출판 플랫폼입니다. 기존의 R Markdown을 이용하면 R code sript를 Word, HTML, PDF, PPT 등 다양한 문서 형식으로 만들 수 있었습니다. 웹을 통한 출판(Bookdown)까지도 가능했죠.
그런데 이 R Markdwon이 어느새 10년 가까이 지났습니다. 기능의 편리함은 지적할만한 게 없었지만 R Markdown 생태계가 너무 커져버렸죠. 관련 생태계가 커졌다는 건 오히려 반길 일이지만 덕지덕지 붙어버린 서드파티 패키지들이 많아진 게 문제였습니다. 더 이상 통일된 하나의 R Markdown의 제작과 작업이 되질 못했습니다. 과학, 기술 블로그를 만들 땐 distill package를 사용하고, 웹 프레젠테이션 파일을 만들 땐 xaringan(사륜안) package를 사용하고…
그래서 등장한 게 바로 이 Quarto입니다. R Markdown과 마찬가지로 Knitr와 Pandoc을 기반으로 하고 있고요. 궁극적으로 R Studio는 Quarto 생태계에 다른 언어를 사용하는 사람들끼리 모을 생각을 하고 있습니다. 그래서 저번 Posit 이야기의 연장선이라고 말씀을 드린 겁니다. 그 이유 때문인지 Quarto는 R의 내장 라이브러리가 아닌 독립 소프트웨어로 제작되었습니다. 새로운 시스템 Quarto 단어가 생소할 텐데, Quarto는 4절판을 의미합니다. 8페이지 분량의 텍스트를 두 번 접어서 네 장을 만드는 형식을 뜻하죠. 출판 역사에 의미가 있는 단어를 골랐다고 합니다.
Quarto 다운받기
https://quarto.org/docs/get-started/
Quarto는 위 링크에서 받을 수 있습니다. 링크를 들어가면 나오는 홈페이지에서도 확인할 수 있지만 Quarto는 R 뿐만 아니라 VS code, Jupyter에서도 활용할 수 있습니다.
R Markdown과 차이점
Quarto의 구조를 알기 위해선 R Markdown에 대한 이해가 필요합니다. 일단 R Markdown 시스템은 위의 그림과 같습니다. Rmd(R 마크다운) 파일을 knitr package를 통해 md(마크다운) 파일로 만들고, pandoc 라이브러리를 통해 문서, PPT, 웹페이지, 책의 형태로 퍼블리싱되는 거죠. knitr은 2012년 Yihui Xie에 의해 개발된 패키지입니다. Knitr 패키지를 이용하면 동적 리포트를 생성할 수 있게 해주죠. md 파일을 다양한 형식으로 변환할 때에는 pandoc 라이브러리를 활용합니다. 정리해보면 기존 R Markdown은 Rmd 파일을 여러 가지 형태의 문서로 퍼블리싱해주는 시스템이라고 할 수 있겠네요.
Quarto도 비슷합니다. R Markdown과 마찬가지로 Knitr과 pandoc을 활용합니다. 달라진 건 적용 대상입니다. 기존 시스템에선 Rmd만 가능했다면 이제는 Python도 가능합니다. jupyter까지 활용하게 되면서 Python에서 qmd(Qarto markdown) 파일을 작성하면 jupyter를 통해 md 파일로 변환해 다양한 결과물을 만들어 낼 수 있게 된 거죠.
Quarto vs R Markdown
구분 | R Markdown | Quarto |
---|---|---|
기본 포맷 | html_document pdf_document word_document |
html word |
비머 포맷(발표자료) | beamer_presentation | beamer |
PPT | powerpoint_presentation | pptx |
HTML 슬라이드 | xaringan ioslides revealjs |
revealjs |
블로그 및 웹사이트 | blogdown distill |
Quarto Websites Quarto Blogs |
책 | bookdown | Quarto Books |
인터랙티브 | Shiny Documents | Quarto Interactive Documents |
Paged HTML | pagedown | 2022 여름 공개 예정 |
Journal Articles | rticles | 2022 여름 공개 예정 |
대시보드 | flexdashboard | 2022 가을 공개 예정 |
다양한 포맷을 만들기 위해 여러 패키지를 사용했던 R Markdown과 달리, Quarto에서는 Quarto 시스템으로 다 들어왔습니다. 예전 R을 활용해 기술 블로그를 만들기 위해 distll package를 사용했지만, 이젠 Quarto의 Quarto Websites, Blogs를 활용하면 됩니다. 이 블로그도 Quarto Blogs를 이용해 만들었습니다. 아직 공개되지 않은 대시보드와 Journal Articles, Paged HTML도 곧 공개될 예정입니다.
Quarto의 미래
RStudio의 이번 Qaurto 발표는 결국 Posit과 비슷합니다. Python과 Julia 등 다른 언어들까지 포함하는 IDE인 Posit을 발표하고, 새롭게 출시한 Quarto에는 jupyter를 지원하면서 다른 언어 이용자들을 R 커뮤니티에 끌어들이겠다는 겁니다. Python 이용자들도 충분히 웹사이트와 블로그, 책을 만들 수 있다고 유혹하는 것이죠. RStudio의 CEO가 발표한 내용을 살펴보면 미래에는 마치 Google Docs에서 사람들이 자유롭게 문서를 편집하듯이 여러 언어를 사용하는 이용자들이 Quarto 문서를 통해 협업을 하길 구상하고 있더라고요. 물론 아직까지 그런 환경이 갖춰져 있는 건 아니지만, 꽤나 매력적인 미래의 모습입니다. 하루빨리 그런 환경이 오길 바라면서 이번 포스트를 마무리하겠습니다.