3  쿼토(Quarto)

쿼토(Quarto)는 다양한 프로그래밍 언어를 지원하는 오픈소스 출판 시스템으로, Pandoc에 기반을 두고 있다. 쿼토는 R, 파이썬, 줄리아, 자바스크립트(Observable JS) 등의 프로그래밍 언어를 지원하며, 사용자는 싱글 소싱(Single Sourcing)을 통해 신속하게 다양한 출판 저작물을 생성할 수 있다. “차세대 R마크다운(Next-Generation R Markdown)”이라는 별명을 가진 쿼토는 약 10년 동안의 R 마크다운의 성공과 실패 경험을 바탕으로 새로운 아키텍처로 재탄생했다. 개발 및 유지보수 팀이 잘 구성되어 있어, 프로젝트 지속 가능성과 신뢰성이 높고, 무료로 제공되므로 누구나 쉽게 접근할 수 있을 뿐만 아니라 오픈소스 프로젝트에 누구나 기여할 수 있다.

앨리슨 호스트(Allison Horst)는 복잡하고 어려운 데이터 과학 및 R 관련 개념을 친근하며 쉬운 그래픽을 제작해 공유하는 것으로 유명한데, 쿼토 작업 프로세스를 그림 3.1를 통해 설명하고 있다. R, 파이썬, 줄리아, Observable JS와 같은 다양한 프로그래밍 언어를 사용해 쿼토로 PDF, HTML, 워드, 웹사이트 등 다양한 형식의 출판저작물을 만드는 방법을 직관적이고 친근한 방식으로 소개하고 있다.

그림 3.1: 쿼토 작업흐름

디지털 글쓰기와 출판(Hyde 2021)에 대한 고민은 콘텐츠, 디자인, 형식의 세 가지 측면으로 구분될 수 있다. 이러한 구분은 저작물의 제작과 배포 과정에서 중요한 역할을 한다.

쿼토는 콘텐츠, 디자인, 형식 세 가지 요소를 충족시키기 위해 다양한 기능을 제공한다. 팬독(pandoc)과 마크다운을 근간으로 수식, 인용, 서지 관리, 콜아웃(callout), 고급 레이아웃 같은 기능들이 포함된다. 저자는 문서 기본요소를 바탕으로 고품질의 논문, 보고서, 발표 슬라이드, 웹사이트, 블로그, 전자책 등 다양한 형태의 출판물을 제작할 수 있으며, 인쇄 매체 뿐만 아니라 HTML, PDF, MS 워드, ePub 등 다양한 디지털 매체를 통해 독자에게 적합한 형태로 전달될 수 있다. 특히, 쿼토는 프로그래밍 언어(R, 파이썬 등)와 문서 저작, 출판 산출물 사이에서 핵심 연결고리로 기능을 하며, 버전 제어, 협업, 재현 가능한 과학 기술 문서나 비즈니스에서 자동화된 생산성 높은 문서 저작에 큰 장점을 제공하고 있다.

프로그래밍(계산) 문서 저작 출력물
파이썬, R, 줄리아, Observable JS Pandoc, 마크다운, \(\LaTeX\) 문서, 웹사이트, PPT, (전자)책, 블로그 등
표 3.1: 쿼토를 구성하는 핵심 요소
쿼토(Quarto) 작명

RStudio(현 Posit) 쿼토(Quarto) 개발자들은 출판의 역사에서 의미 있는 이름을 선택하여 ’Quarto’라는 이름을 정했다. 쿼토는 전지에 8페이지 텍스트를 인쇄하여 한 면에 4페이지씩, 두 번 접어 네 장의 쪽을 만드는 책이나 팸플릿 형식을 의미한다.

쿼토 한국어 번역에 기여한 한국 R 사용자회에서는 ’Quarto’를 콰르토, 쿼터, 쿼르토 등 다양한 한글 표기법을 검토하였으나 ’쿼토’가 원어민 발음에 가까고 의미를 잘 전달한다고 판단하여 쿼토로 통일하였다.

그림 3.2: 햄릿 쿼토 인쇄출판

3.1 싱글 소싱 출판

데이터 과학과 과학기술 분야의 출판저작은 다른 분야와 약간 다를 수 있지만, 출판의 기본적인 접근 방식은 대부분 유사하다고 볼 수 있다. 싱글 소싱(Single Sourcing)1 방식은 콘텐츠 저작부터 디자인, 협업, 검수, 최종 출판물 관리까지 일원화하고 자동화하는 방법으로, 중복 작업과 낭비를 줄이고 재현 가능성을 높이는 데 있어 과학기술 출판저작물에 이상적인 방법으로 평가받고 있다.

싱글 소싱 저작 방식은 데이터, 코드, 수식, 표, 그래프, 다이어그램, 텍스트 등 다양한 저작물 구성 요소를 하나의 소스코드로 관리함으로써, 수정이나 업데이트가 필요할 때 일관성을 유지하면서 효율적으로 출판작업을 수행할 수 있다. 과학기술 분야에서 연구결과의 정확성과 신뢰성을 높이는 재현 가능한 글쓰기에 중점을 두는 경향과도 맞닿아 있다.

챗GPT와 같은 생성형 AI 저작의 증가로 다양한 형태의 출판저작물을 정확하고 신속하게 제작하는 기능이 점점 더 중요해지고 있다. 특히, 싱글 소싱을 통한 자동화는 비즈니스 글쓰기 분야에서 중요성을 더해가고 있으며, 콘텐츠 일관성과 콘텐츠 제작 효율성 향상에 큰 기여를 하고 있다. 향후, AI 기반 글쓰기와 싱글 소싱 결합은 출판저작 과정을 더욱 빠르고 정확하게 만들어 전 세계적으로 글로벌 표준으로 자리매김할 것으로 예상된다. 그리고 과거 개발자와 비개발자로 나뉘어서 서로 다른 도구를 사용해서 문서 및 산출물을 생산했지만 이러한 구분은 생성형 AI의 보급으로 프로그램을 작성하는 것과 글을 저작하는 것의 차이는 점점 줄어들 것으로 예상된다.

graph LR;
    style A fill:#f9d71c,stroke:#333,stroke-width:2px;
    style B fill:#f9d71c,stroke:#333,stroke-width:2px;
    style C fill:#ff6b6b,stroke:#333,stroke-width:2px;
    style J fill:#c4e17f,stroke:#333,stroke-width:2px;
    style K fill:#c4e17f,stroke:#333,stroke-width:2px;
    style L fill:#c4e17f,stroke:#333,stroke-width:2px;

    classDef officeStyle fill:#f9d71c,stroke:#333,stroke-width:2px;
    class AA,AB officeStyle;

    A[콘텐츠 저작] --> B[디자인]
    B --> C[출판]
    
    C --> J[PDF]
    C --> K[HTML]
    C --> L[워드/한글/PPT]
  
   
    J --> W[논문/보고서]
    J --> X["(전자)책"]
    
    K --> Y[웹사이트/블로그]
    K --> Z[대쉬보드]
    
    L --> AA[비즈니스 문서]
    L --> AB[과학기술 문서]
그림 3.3: 싱글 소싱 저작 방식

3.2 작업흐름

데이터 과학에서는 다양한 언어가 필요하다. SQL은 자료 추출 과정에, R은 데이터 전처리, 시각화, 통계 및 다변량 분석에, 파이썬은 기계학습과 딥러닝에, 자바스크립트는 인터랙티브 시각화 및 웹 출판에, 그리고 논문 출판에는 \(\LaTeX\)(Knuth 1984)이 필요하다. R마크다운이 RStudio에서 유사한 작업흐름을 제공했지만, 오직 R 언어만 지원하는 한계가 있었다. 쿼토는 R, 파이썬, 자바스크립트, 줄리아 등 기본적으로 4가지 언어를 지원하지만, 대부분의 데이터 과학 문제는 R과 파이썬으로 해결할 수 있다. 쿼토의 주요 특징 중 하나는 기존 R knitr .Rmd 파일과 파이썬 주피터 .ipynb 파일을 .qmd 파일로 통합한 것이다. 저자 입장에서 보면 RStudio, 주피터 노트북, VS코드 등 특정 언어에 친화적인 개발환경에 얽매일 필요가 없게 되어 하나의 저작도구에서 마크다운, R, 파이썬 등 다양한 언어를 사용할 수 있게 되었다.

이러한 통합은 복잡한 작업 흐름을 단순화하고 서로 다른 언어를 사용하는 개발자와 연구자 간의 협업을 촉진할 수 있다. 사람과의 커뮤니케이션을 위해 제작되는 일반적인 텍스트는 마크다운으로 작성되고, 기계와 커뮤니케이션을 위해 제작되는 프로그래밍 코드는 R, 파이썬, 자바스크립트, 줄리아 등으로 작성된다. 쿼토는 사람과 기계와의 커뮤니케이션을 위해 제작된 콘텐츠를 컴파일하여 팬독 입력값으로 쓰일 수 있는 마크다운으로 변환시킨다. 팬독은 마크다운을 최종 출력물(PDF, HTML, 워드, PPT 등)로 변환하는 역할을 담당한다. 싱글 소싱 개념이 과거 특정 언어(\(\LaTeX\), R 마크다운 등) 중심에서 전개된 것을 쿼토가 마크다운과 팬독을 중심으로 조율하며 다양한 언어를 지원하는 방향으로 확장한 것으로 볼 수 있다.

graph LR
    qmd -->  주피터
    주피터 -->  마크다운
    마크다운 -->  팬독
    팬독 -->  pdf
    팬독 -->  html
    팬독 -->  docx
    qmd -->  knitr
    knitr --> 마크다운
그림 3.4: 저작 컴파일 출판 쿼토 작업흐름

3.3 쿼토 해부

쿼토는 데이터 과학 문서 작성의 새로운 패러다임을 제시하며, R마크다운의 후속임을 자처하고 있다. 10년 이상의 knitr 경험을 바탕으로 개발되었고, 최근에는 RStudio Visual 편집 기능을 통해 위지위그(What You See Is What You Get) 패러다임도 적극 수용함으로써 저작자는 복잡한 코드 작성 없이도 직관적으로 문서를 작성할 수 있게 되었다.

쿼토 저작은 메타데이터(전문, front matter), 텍스트, 코드라는 세 가지 주요 구성요소로 이뤄진다. 쿼토는 문학적 프로그래밍과 자동화 패러다임을 적극 반영하여 데이터 과학 프로그래밍과 과학기술 문서 작성을 더 효율적이고 일관된 방식으로 저작하고 출판할 수 있도록 지원한다.

  • 메타데이터 (YAML): YAML은 “YAML Ain’t Markup Language”의 약자로, 데이터를 구조화하는 언어이다. 쿼토에서 이를 활용하여 문서 전문(Front Matter)을 구성한다. 문서 상단에 위치하며 문서 제목, 작성자, 날짜, 문서 형식 등을 포함하며 문서의 전반적인 설정과 구성을 담당한다.
  • 텍스트 (마크다운): 마크다운은 2004년에 아론 스워츠와 존 그루버에 의해 개발된 언어로, HTML과 같은 복잡한 마크업 언어 대신 사용되는 간단한 형식의 문서 작성 도구다. 복잡한 디자인보다 콘텐츠 구조와 의미에 중점을 두기 때문에, 문서 저작자는 외양보다 내용에 더 집중할 수 있다.
  • 코드 (knitr, jupyter): knitr는 R 코드를 문서에 통합할 수 있는 패키지, jupyter는 파이썬 사용자에게 인기 있는 패키지이다. 쿼토에서는 이 두 패키지를 활용하여 작성된 코드를 문서에 포함시킬 수 있다. 데이터 분석, 통계값, 그래프, 다이어그램, 지도 등 다양한 코딩 결과물을 문서에 반영시킬 수 있다.
그림 3.5: 쿼토 문서 구성요소

3.3.1 YAML

YAML(발음은 야믈)은 R 마크다운과 쿼토에서 주로 사용되는 경량언어다. YAML은 문서 전문(front matter) 부분에 위치해 코드와 텍스트로 구성된 문서 본문보다 먼저 위치하며, 문서 메타데이터를 설정하는 역할을 수행한다. 쿼토에서 YAML을 이용해 문서 제목, 작성자, 날짜, 문서 형식, 레이아웃 등을 정의한다. YAML은 기본적으로 KEY: Value 형태로 구성되어 있지만, 이러한 단순한 구조 덕분에 매우 편리하고 유용하다. YAML은 키와 값이 콜론(:)으로 구분되는 키값(key-value) 쌍을 사용해 각종 문서 설정정보를 표현하여 전반적인 문서 설정과 구성을 쉽게 관리한다. YAML을 통한 문서 저작을 경험하게 되면 YAML의 편리성과 유용함을 더 깊게 이해하게 된다.

키값 쌍

---
key: value
---

문서출력형식 PDF 지정

---
format: pdf
---

YAML을 이용한 문서 전문 작성은 가독성이 뛰어나 읽고 이해하기 쉽다는 장점이 있다. 특히 복잡한 문서 구조나 설정을 지정할 때 유용하며, 중첩된 선택옵션 같은 복잡한 구조도 들여쓰기를 통해 명확하게 표현할 수 있다. YAML은 재사용성이 뛰어나서 같은 설정 값을 여러 곳에서 사용해야 할 경우, 하나의 YAML 파일만 수정하면 모든 곳에 적용될 수 있어 시간과 노력을 크게 절약할 수 있다. 텍스트 기반인 만큼 Git과 같은 버전 제어 시스템과도 잘 통합되어, 여러 저자가 공동으로 작업할 때 진가를 발휘하지만, 들여쓰기에 민감하여 실수로 공백을 잘못 넣었을 경우 오류가 발생할 수 있어 주의가 필요하다.

3.3.2 YAML과 팬독

.qmd 파일에 문서 설정을 직접 정의함으로써, 저자는 문서가 어떻게 출력될지 쉽게 파악할 수 있다. 파일 자체에 출력 형식이 정의되어 있으면, 해당 파일을 다른 환경이나 사용자에게 보낼 때 별도의 설명이나 추가 명령어 없이 어디서나 동일한 방식으로 출력할 수 있다. 이는 YAML을 통한 복잡한 문서 설정 관리와 명령어 사용 시 출력 형식을 매번 지정할 필요가 없어지는 것을 의미한다. 특히, 같은 문서를 반복적으로 출력할 때 작업 효율성을 높이는 것은 물론, 배치 프로세스나 스크립트를 사용해 여러 문서를 처리할 때 각 문서의 YAML 설정에 따라 자동으로 다양한 형식으로 출력할 수 있다는 장점이 있다.

쿼토를 사용해 문서를 PDF 형식으로 변환할 때, quarto render document.qmd --to pdf 명령어의 --to pdf 옵션과 .qmd 파일 내 YAML 코드 format: pdf는 같은 기능을 수행한다.

CLI PDF 지정

$ quarto render document.qmd --to pdf

YAML 문서형식 PDF

---
format: pdf
---

quarto render 명령을 사용하여 document.qmd 파일을 HTML 형식으로 제작하는 예시에서 CLI 옵션 -M code fold:true을 사용하여 코드 섹션을 접을 수 있게 만들었다. 이러한 설정을 YAML로 바꾸면, 설정 파일 내에 format 섹션을 생성하고 그 안에 html을 정의한다. 그 후, html 포맷 설정에 목차 생성(toc: true)과 코드 접기 기능(code-fold: true)을 추가하는 것으로 바뀐다.

CLI 옵션을 직접 입력하는 것과 비교하여 YAML 파일에 설정을 담는 것이 훨씬 깔끔하고 우아하다. CLI에서 많은 선택옵션을 직접 입력하면 명령어가 길어져 가독성이 떨어지고, 나중에 어떤 옵션을 사용했는지 확인하기 어렵다. 하지만 YAML 파일을 사용하면, 모든 설정을 한 곳에서 명확하게 관리할 수 있어 유지보수가 쉽고, 공동 저작자들과 공유와 협업에도 유리하다.

CLI 코드접기

$ quarto render document.qmd --to html -M code fold:true

YAML 코드접기

---
format: 
  html:
    toc: true
    code-fold: true
---
위지위그 vs 위지윔

위지윅(WYSIWYG: What You See Is What You Get)는 “보는 대로 얻는다”는 의미로, 사용자가 문서를 편집할 때 화면에 보이는 형태가 최종 출력물과 동일하게 나오는 편집 방식이다. 대다수 현대 워드 프로세서에서 위지위그 방식을 사용하고 있다. 사용자에게 직관적이고 쉽게 접근할 수 있는 인터페이스를 제공하기 때문이다.

그러나 위지위그 방식에도 단점은 있다. 마크다운, TeX 같은 텍스트 기반 편집 방식은 문서 호환성과 범용성을 위해 쓰이는 반면, 위지위그 저작방식은 호환성과 범용성을 다소 희생할 수 밖에 없다. 특히 복잡한 문서나 웹 페이지를 작성하는 경우, 코딩방식으로 전환하여 수작업으로 최적화를 시도하더라도 완벽한 해결이 어렵다. 예를 들어, 위지위그 편집기에서 문서를 작성하면 뒷단에 불필요한 코드나 태그가 자동으로 생성되어 문서 최적화를 방해하며, 시간이 지남에 따라 누적되어 호환성과 재현성에 심각한 문제를 야기한다.2

위지윔(WYSIWYM: What You See Is What You Mean)은 “당신이 보는 것은 당신이 뜻하는 것이다”라는 의미로, 위지위그(WYSIWYG) 방식의 한계를 극복하기 위해 나온 대안 편집 방식이다. 위지윔 방식에서는 사용자가 무엇을 의미하는지를 중점으로 두어, 본래의 코드 구조를 더 명확하게 알 수 있다. 코드 의미를 직접적으로 반영하여, 불필요한 요소 없이 효율적으로 문서를 작성할 수 있는 장점이 있다.

RStudio의 Visual 편집 기능은 위지윔 지향점을 잘 반영하고 있다. 사용자는 복잡한 코드나 태그 없이도 의미 있는 문서 구조를 쉽게 생성하고 관리할 수 있어 문서 최적화와 호환성을 높일 수 있으며, 더욱 높은 문서 저작 생산성을 달성할 수 있다.

오픈 소스 \(\LaTeX\) 편집기인 LyX는 위지윔 방식을 초기부터 채택하여 사용자에게 코드 본래 구조와 의미를 명확하게 파악할 수 있는 인터페이스를 제공했다. 이러한 접근법은 복잡한 수식이나 과학적인 문서를 작성할 때 특히 유용하며, \(\LaTeX\) 복잡성을 낮추면서도 강력한 기능을 최대한 활용할 수 함으로써 위지위그 한계를 극복했다는 평가를 받고 있다.

문서 컴파일 위지위그

3.3.3 코드 덩어리

쿼토는 다양한 프로그래밍 언어를 지원하여 문서 내에 계산(Computation) 기능을 쉽게 통합할 수 있는 현존하는 얼마 안되는 문학적 프로그래밍 저작도구다. R, 파이썬, SQL, 자바스크립트 등을 활용해 그래프, 표, 다이어그램, 인터랙티브 산출물을 문서에 반영하여 한층 진화된 디지털 문서 저작을 지원한다.

쿼토에서 프로그래밍 코드를 포함하는 방식은 .qmd 파일에서 RStudio를 사용한다면 코드 블록을 생성하고자 하는 위치에 커서를 두고 키보드 단축키 Ctrl+Alt+I를 누르면 된다. 여는 괄호({)와 닫는 괄호(}) 사이에 r, python, sql, julia, ojs 뿐만 아니라 mermaid, tikz 등 다양한 언어를 명세할 수 있고 쿼토 문서를 컴파일하면 실행결과를 쿼토 문서에 남길 수 있다.

인라인 코드 덩어리(inline code chunk)를 통해 문장 내에 작은 코드 조각을 포함시킬 수 있다. 예를 들어, 텍스트 중간에 계산 결과나 변수의 값을 직접 표시하고 싶을 때 유용하다. 쿼토에서 백틱(`)과 r 표시를 사용하여 인라인 코드 덩어리를 표현한다. 예를 들어, 다음 코드를 실행시키면 “파이 값은 3.1415927 이다.”와 같이 표시된다.

인라인 코드

파이 값은 `r pi` 이다.

실행결과

파이 값은 3.1415927 이다.

코드 덩어리(code chunk)는 문서에 한줄이 아닌 여러줄로 구성된 보다 큰 코드 블록을 포함시킬 때 사용된다. 인라인 코드 덩어리와 마찬가지로 코드를 실행하고 결과를 문서에 직접 포함시킬 수 있다.

쿼토에서 세 개의 백틱(```)과 언어 이름(예: r, python)을 사용하여 R 혹은 파이썬 코드를 여러줄에 걸쳐 작성하고 세 개의 백틱(```)을 마지막에 넣어 닫는다. 예를 들면 R 내장 mtcars 데이터셋 1,2 변수에 대한 요약통계량을 다음과 같이 작성하여 실행시킬 수 있다.

R 코드 덩어리

```{r}
summary(mtcars[,1:2])
```

실행결과

#>       mpg             cyl       
#>  Min.   :10.40   Min.   :4.000  
#>  1st Qu.:15.43   1st Qu.:4.000  
#>  Median :19.20   Median :6.000  
#>  Mean   :20.09   Mean   :6.188  
#>  3rd Qu.:22.80   3rd Qu.:8.000  
#>  Max.   :33.90   Max.   :8.000

3.3.4 통합개발환경

쿼토는 다양한 통합개발환경(IDE)과의 호환성을 지원하고 있다. R 사용자는 RStudio IDE를, 파이썬 사용자는 주피터 노트북/파이참을, 범용 소프트웨어 개발 경험이 있는 사용자는 VS코드/이맥스/VIM 등을 사용해 쿼토와 통합할 수 있다. 또한, 쿼토 CLI를 통해 이러한 IDE에서 저작물을 다양한 형태로 쉽게 출판할 수 있다.

코딩기반 문서저작에 IDE가 필수적인 이유는 다양하다. IDE는 문서 작성 중 발생할 수 있는 오류를 신속하게 발견하고 수정하는 데 도움을 주며, 자동 완성, 구문 강조, 코드 정리와 같은 기능들을 통해 문서 작성의 생산성을 높일 수 있다. 또한, Git과 같은 버전 관리 시스템과의 통합은 문서의 이력을 관리하고 협업을 용이하게 하며, 다양한 프로그래밍 언어와 마크업 언어를 지원함으로써 사용자가 필요에 따라 다양한 언어로 문서를 즉각 작성할 수 있다. 이러한 장점들로 인해, IDE는 코딩기반 문서저작에 있어 필수불가결한 도구로 자리잡고 있다.

예를 들면, IDE에서 제공하는 탭-자동완성 기능은 YAML 전문 코드를 작성하는 데 매우 유용하다. 이 기능을 사용하면 저작자는 첫 글자나 몇 글자를 타이핑한 후 탭 키를 눌러 가능한 모든 명령어, 변수, 함수 이름 등을 볼 수 있다. 이는 오타의 가능성을 줄이고 문서 저작 속도를 향상시킨다. 특히 RStudio에서는 Ctrl + space 단축키를 사용해 YAML 전문 코드를 작성할 때 가능한 키값을 선택할 수 있는 목록을 제공한다. 이러한 기능들은 문서 저작 과정을 효율적으로 만들어 준다.

YAML 키 설정

 

탭 자동완성 선택확정
그림 3.6: RStudio YAML 자동완성

3.4 R 마크다운과 쿼토

R마크다운이 파이썬(배쉬, 줄리아, C, SQL)과 호환되지만, R 마크다운은 주로 R 사용자를 위해 설계되었다. 쿼토는 꼭 R을 필요로 하지 않는다. 3 쿼토는 컴퓨팅을 교체 가능한 언어 “엔진(engine)”으로 실행시킴으로써 다양한 언어를 지원하기 위한 별도의 복잡한 설정이나 추가적인 시스템 구성을 최소화함으로써 사용자가 쉽게 여러 언어를 사용할 수 있게 해주는 내장 기능을 제공한다. 또한, 쿼토는 기존 형식과 호환되도록 설계되어 있기 때문에 대부분의 기존 .Rmd 파일과 주피터 노트북 .ipynb 파일을 쿼토에서 수정 없이 바로 사용할 수 있어 쿼토로의 전환을 수월하게 하고 있다.

쿼토는 “차세대 R 마크다운”이라는 별명에 걸맞게 R 마크다운의 다양한 패키지와 기능을 지원하고 있다. 그러나 쿼토의 개발 기간이 R 마크다운보다 상대적으로 짧기 때문에 아직은 R 마크다운의 모든 기능을 지원하지 않는다. 그럼에도 불구하고, 쿼토는 지속적으로 지원 범위를 확장하고 있으며, 고유한 기능도 추가하고 있다. 이러한 점들은 쿼토가 R 마크다운 생태계에 어떤 새로운 가치를 더하고 있는지를 잘 보여준다. 쿼토 1.4 버전에 대쉬보드(dashboards)가 추가되어 R 마크다운 기능 대부분을 지원하게 되었다. 다음 표 3.2 에 쿼토와 R 마크다운을 다양한 문서 기능별로 비교되어 있다.

기능 R 마크다운 쿼토(Quarto)
파일형식 html_document / pdf_document / word_document html / pdf / docx
비머(Beamer) beamer_presentation beamer
파워포인트(PPT) powerpoint_presentation pptx
웹 슬라이드 xaringan / ioslides / revealjs revealjs
고급 레이아웃 tufte / distill Quarto Article Layout
상호 참조 html_document2 / pdf_document2 / word_document2 Quarto Crossrefs
웹사이트/블로그 blogdown / distill Quarto Websites / Quarto Blogs
bookdown Quarto Books
인터랙티브 문서 Shiny Documents Quarto Interactive Documents
페이지 HTML pagedown 출시 예정
학술 논문 rticles Quarto Journal Articles
대쉬보드 flexdashboard Quarto Dashboards
인터랙티브 자습서 learnr 계획 없음
표 3.2: R 마크다운과 쿼토 비교

연습문제

객관식

  1. 쿼토(Quarto)는 어떤 언어를 지원하나요?
    1. R과 파이썬만
    2. R, 파이썬, 줄리아, 자바스크립트
    3. R과 줄리아만
    4. 자바스크립트와 파이썬만
  1. 쿼토의 작명에 영감을 준 것은 무엇인가요?
    1. 조선 시대의 인쇄술
    2. 셰익스피어의 연극
    3. 중세 유럽의 책 인쇄 방식
    4. 현대 컴퓨터 프로그래밍
  1. 쿼토에서 YAML은 무엇을 위해 사용되나요?
    1. 코드 작성
    2. 그래픽 디자인
    3. 문서의 메타데이터 설정
    4. 데이터 분석

서술형

  1. 쿼토에서 싱글 소싱 출판의 장점은 무엇인가요?
  1. 쿼토를 사용하는 주된 이유와 그것이 문서 저작에 어떤 영향을 미치는지 설명해주세요.

  1. “싱글 소싱(Single Sourcing)”은 하나의 원본 콘텐츠를 여러 형식이나 채널에 적용할 수 있도록 하는 문서 작성 및 관리 방법이다. 콘텐츠를 한 번만 작성하고 다양한 출력 형식(예: PDF, 웹 페이지, PPT, 모바일 앱 등)으로 변환하게 되면, 콘텐츠 일관성 유지 및 업데이트와 관리가 훨씬 효율적이다.↩︎

  2. 위키백과, “위지위그”↩︎

  3. FAQ for R Markdown Users↩︎