R Markdown 사용자용 FAQ
Quarto는 무엇에 사용할 수 있나요?
Quarto®는 Pandoc 위에 구축된 오픈 소스 과학 및 기술 출판 시스템입니다. 서술형 텍스트와 코드를 함께 엮어 문서, 웹 페이지, 블로그 글, 책 등 다양한 형식의 결과물을 깔끔하게 만들 수 있습니다.
Quarto는 R Markdown과 비슷해 보이는데, 무엇이 다르고 왜 새 프로젝트를 만들었나요?
핵심적으로 Quarto는 R Markdown과 같은 방식으로 작동합니다.

Quarto의 목표는 과학 및 기술 문서를 만들고 협업하는 과정을 획기적으로 개선하는 것입니다. Quarto는 R Markdown, bookdown, distill, xaringan 등을 하나의 일관된 시스템으로 통합하며, 지난 10년간 R Markdown에서 배운 모든 내용을 반영한 “배터리 포함” 시스템을 제공합니다.
과학적 담론에 사용되는 언어와 런타임은 매우 다양합니다(특히 Jupyter 생태계는 매우 인기 있습니다). Quarto는 본질적으로 다국어, 다중 엔진을 지원하며 현재는 Knitr, Jupyter, Observable을 지원하고, 앞으로 더 많은 엔진을 지원할 수 있습니다.
반면 R Markdown은 기본적으로 R에 묶여 있어 혜택을 받을 수 있는 사용자 범위가 제한됩니다. Quarto는 R Markdown을 모두에게 확장하려는 Posit의 시도입니다! Quarto는 R에 대한 의존이나 요구 사항이 없으며, R, Python, JavaScript, Julia로 시작해 아직 존재하지 않는 언어까지 염두에 둔 다국어 지원을 목표로 합니다.
Quarto는 “새” 시스템이지만 기존 콘텐츠와의 높은 호환성을 갖습니다. 대부분의 R Markdown 문서와 Jupyter 노트북을 Quarto로 수정 없이 렌더링할 수 있습니다. 기존 형식과의 호환성을 유지하면서 재현 가능한 연구에 대한 장기 투자를 하는 것이 핵심 개념입니다.
R Markdown은 사라지나요? 내 R Markdown 문서는 계속 동작하나요?
R Markdown은 사라지지 않습니다! R Markdown은 널리 사용되고 있으며 계속 잘 동작합니다. 앞으로도 적극적으로 지원될 것입니다. 우리는 R Markdown을 떠나는 것이 아니라 범위를 확장하고 있습니다. 수년간 많은 기능 요청이 있었고, 이를 모두 R Markdown에 구현하기보다는 특정 기능은 Quarto에서 제공하기도 합니다. 현재 R Markdown에 있는 모든 기능은 계속 동작하고 지원됩니다. 폐기할 계획은 없습니다.
이 내용은 Yihui Xie의 블로그 글 With Quarto Coming, is R Markdown Going Away? No.에서 더 자세히 다룹니다.
R Markdown에서 Quarto로 전환해야 하나요?
R Markdown을 즐겨 사용한다면 전환할 필요는 없습니다! R Markdown은 계속 지원되며 지금까지와 동일하게 동작합니다. 원하면 Quarto를 사용해볼 수 있지만 필수는 아닙니다. 다만 새로운 기능 중 일부는 Quarto에만 있을 수 있으므로 그런 기능이 필요하다면 Quarto를 시도해 볼 수 있습니다.
전환은 필수가 아니라는 점을 강조하고 싶습니다. R Markdown과 관련 패키지에 대한 대규모 신규 기능 개발 계획은 없지만, 앞으로도 오랫동안 유지보수(작은 개선과 버그 수정)는 계속할 예정입니다. 또한 Rmd 파일은 대부분 수정 없이 Quarto에서 렌더링할 수 있으므로, 전환을 결정하더라도 비용은 최소화됩니다.
X(bookdown, blogdown 등)를 사용 중입니다. Quarto에서 대응되는 것은 무엇인가요?
R Markdown 생태계의 다양한 패키지와 기능에 대한 Quarto 대응은 다음과 같습니다(일부는 아직 제공되지 않지만 올해 안에 제공될 수 있습니다).
| 기능 | R Markdown | Quarto |
|---|---|---|
| 기본 형식 | ||
| Beamer |
|
|
| PowerPoint |
|
|
| HTML 슬라이드 |
|
|
| 고급 레이아웃 | - tufte | - Quarto Article Layout | | - distill | | ||
| 상호 참조 | ||
| 웹사이트 및 블로그 | ||
| 책 | ||
| 상호작용 | Shiny Documents | Quarto Interactive Documents |
| 저널 아티클 | rticles | Quarto Journal Articles | |
| Paged HTML | pagedown | 예정됨 |
| 대시보드 | flexdashboard | Quarto Dashboards | |
| 인터랙티브 튜토리얼 | learnr | Quarto Live 확장 |
R Markdown처럼 Quarto에서도 커스텀 형식을 만들 수 있나요?
Quarto는 쇼트코드나 필터를 사용해 형식에 기능을 추가할 수 있는 확장 메커니즘을 제공하며, 커스텀 형식도 만들 수 있습니다. R Markdown의 커스텀 출력 형식과의 큰 차이는 Quarto 확장이 R이 아니라 Lua를 사용한다는 점입니다. 예를 들어 커스텀 메타데이터 필드 뒤에 로직을 추가해야 한다면 Lua를 사용합니다. 필요하다면 Lua로 개발하기에서 시작해 보세요. Quarto에서는 R Markdown의 커스텀 형식 기능 중 일부(예: knitting 동작 커스터마이즈)를 실행 옵션 YAML에서 처리할 수도 있습니다.
Quarto의 커스텀 형식 예로, Quarto Journal Articles은 rticles R 패키지의 커스텀 출력 형식을 이식한 것입니다. 확장은 Quarto Journals GitHub 조직에 있으며, 템플릿 커스터마이즈와 형식의 저자 관리 방법도 확인할 수 있습니다.
R Markdown 커스텀 형식의 고급 개발자라면(예: pre/post processor) 현재 확장 메커니즘에 제약이 있을 수 있습니다. Quarto의 확장 기능은 계속 개선될 예정이므로, 사용 사례나 요청 사항을 Discussion Board에 공유해 주세요.
R Markdown 대신 Quarto에서 새 프로젝트를 시작하기에 좋은 시점은 언제인가요?
Quarto v1.0은 rstudio::conf(2022)에서 발표되었습니다. 이는 첫 번째 안정 릴리스로, Quarto에서 새 프로젝트를 시작하거나 기존 R Markdown 프로젝트를 이전하는 데 충분히 좋은 기반입니다(원한다면). Quarto를 사용하기 시작했다면 개발이 활발하므로 최신 릴리스 및 변경 사항을 계속 확인해 주세요.
RStudio IDE는 Quarto를 지원하나요?
네! RStudio v2022.07 이상 버전을 사용해야 하며, 이 버전에는 Quarto 문서 편집과 미리보기 지원이 포함되어 있습니다.
최신 RStudio는 https://posit.co/download/rstudio-desktop/에서 내려받을 수 있습니다.
Posit Connect는 Quarto를 지원하나요?
네! Quarto 콘텐츠는 Posit Connect v2021.08.0 이상에 배포할 수 있습니다. Posit Connect 관리자 가이드에 따라 Quarto를 활성화해야 합니다. Connect 사용자 문서는 RStudio IDE에서 배포하는 방법을 Quarto.org 문서로 안내합니다. Python 기반 Quarto 콘텐츠는 VSCode, JupyterLab, 터미널 등에서 rsconnect-python CLI를 사용해 배포할 수 있습니다.
R Markdown처럼 YAML 옵션과 헤더에서 !expr 또는 !r 문법을 사용할 수 있나요?
사용 위치에 따라 다릅니다.
- knitr 셀 내부에서 YAML 문법으로 옵션을 지정하는 경우: 예,
!expr은 문서대로 사용할 수 있습니다. 하지만!r은 Quarto의 YAML 검증에 걸리므로 사용할 수 없습니다. - Quarto 문서나 프로젝트 설정의 YAML 블록 내부: 아니요,
!expr과!r모두 지원되지 않습니다.
Quarto는 YAML 처리를 R에 완전히 의존하지 않는다는 점에서 R Markdown과 다릅니다. !expr은 yaml R 패키지에서, !r은 knitr의 xfun::yaml_load()에서 처리됩니다. 이는 R의 YAML 파싱에 특화된 문법이므로 Quarto의 YAML 메타데이터 블록에서는 지원되지 않습니다. 다만 engine: knitr를 사용하면(기본적으로 R 셀을 포함한 문서에서 사용), knitr 셀 내부 YAML 옵션은 knitr가 파싱하므로 !expr을 사용할 수 있습니다.
마지막으로 Quarto의 YAML 검증은 !expr만 지원하며 !r은 지원하지 않습니다. !r 사용자는 호환성을 위해 !expr로 전환하세요.