개발자 / 오픈소스

"파이썬, 비주얼 스튜디오 사용자 품는다” 차세대 R 마크다운, 콰르토

Sharon Machlis | InfoWorld 2022.07.20
R 마크다운(R Markdown)은 R 생태계의 성장을 이끈 일등 공신이다. R 마크다운을 이용하면 코드 결과물과 텍스트를 쉽게 통합할 수 있으며, 워드, HTML, PDF, 파워포인트 등 다양한 형식으로 파일을 저장할 수 있다. 일종의 퍼블리싱 시스템으로, 책과 웹 사이트 형태의 문서를 만들 때도 이용된다. 
 
ⓒ Getty Images Bank

R 마크다운이 나온 지도 벌써 10년이 지났고, 오랜 시간만큼 아쉬운 점도 생기고 있다. 대표적으로 R 마크다운은 외부 R 패키지로 기능이 많아져 일관된 문법을 유지하기 어렵다. 실제로 같은 문서 테마를 추가해도 HTML 문서, HTML 슬라이드 프레젠테이션 등 그 형식에 따라 코드가 달라진다. 또한 R 마크다운이 R 언어 외에 다른 언어도 지원하긴 하나, 그래도 최적화는 R 언어에 집중돼있다. 

R스튜디오(RStudio)가 차세대 형식으로 콰르토(Quarto)를 따로 만든 이유가 바로 이런 지점에 있다. 콰르토는 파이썬, 줄리아(Julia), 옵저버블 자바스크립트(Observable JavaScript), 주피터 노트북(Jupyter notebook) 같은 다른 언어를 R과 같은 수준으로 지원한다. 또한 콰르토는 특정 언어를 위한 라이브러리가 아닌 별도의 소프트웨어 애플리케이션으로 개발됐다. 

콰르토가 공개된 지는 이미 수개월이 지났으나 R스튜디오는 아직 공식 발표를 하지 않고 있다. 현재까지 베타 버전 수준으로 머물러 있는데 7월 25일 워싱턴 DC에서 열리는 R스튜디오 컨퍼런스(RStudio Conference) 이후에는 상황이 바뀔 것 같다. 이번 컨퍼런스에서는 콰르토가 핵심 주제가 될 가능성이 높다. 메인 컨퍼런스 발표 중 최소 6개가 콰르토에 대한 것이다. 입문자를 위한 콰르토 워크숍도 이틀 동안 진행되며, 기존 R 마크다운 작성법을 콰르토에서 활용하는 법을 알려주는 전문가 세션도 마련됐다. 

콰르토 공식 트위터(Quarto Twitter) 계정은 이미 개설됐으며, 소셜 미디어에서 홍보 활동이 이뤄지고 있다. R스튜디오에 근무하는 듀크대학교 교수 마인 세틴카야 룬델은 ‘콰르토 팁 어 데이(Quarto Tip a Day)’라는 블로그를 운영 중이다. 
혹시나 해서 하는 말이지만 콰르토가 출시된다고 R 마크다운이 없어지는 것은 아니다. R스튜디오의 소프트웨어 엔지니어 크리스토프 데비우스는 직접 “R 마크다운이 사라지지 않을 테니 안심하라. R 마크다운은 계속 개발하고 있다! 필요한 경우를 제외하고 Rstat를 전환하지 않아도 된다”라는 트윗을 올렸다. 물론 일부 수정만 하면 R 마크다운에서 제공되는 거의 모든 기능을 콰르토에서 사용할 수 있다.
 

콰르토를 사용해야 하는 이유

평소에 프로그래밍 언어를 1개 이상 사용하고 있다면 혹은 팀 안에 여러 언어를 사용하는 구조라면 콰르토가 유용할 것이다. 콰르토는 네이티브 다중 언어를 지원한다. 특히 언어나 형식 상관없이 문법 구조를 동일하게 적용할 수 있기 때문에 코드를 매우 일관되게 작성할 수 있다. 

더 흥미로운 기능도 나올 예정이다. R스튜디오의 CEO J.J. 얼레어에 따르면, 콰르토는 마치 구글 문서처럼 공동 편집 기능을 통해 깃(Git) 같은 별도의 제어 도구 없이도 협업할 수 있는 환경을 지원할 계획이라고 한다. 다만 이 기능은 아직 구체적인 개발을 시작하지 않은 상태라 실제로 이용하기까지 어느 정도 시간이 필요하다고 얼레어는 설명했다.

여기에 콰르토는 R스튜디오와 유사한 수준으로 비주얼 스튜디오 코드(Visual Studio Code)와 주피터를 지원할 예정이다. R스튜디오는 이런 전략으로 기존에 R을 사용하지 않던 팀에서도 콰르토가 사용될 것으로 기대하고 있다. 코드 없이 텍스트 작업만 필요한 사용자는 콰르토를 일반적인 문서 편집기로 활용할 수 있다. 콰르토로 작성된 결과물은 HTML 문서로 추출해서 웹 브라우저에서 확인할 수 있다.

얼레어는 콰르토의 가장 큰 장점으로 YAML 지원을 꼽았다. YAML은 R 마크다운과 콰르토 문서의 헤더 정보를 작성하는 언어로, 그동안은 콜론, 쉼표, 들여쓰기를 적용할 때 일부 불편함이 있었다. 일반 프로그래밍 언어와 흡사하지만 IDE에서 쓰기 어렵고 오류도 확인할 수 없었기 때문이다. 콰르토에서는 자체적으로 YAML을 지원해 문서를 추출하기 전에 문제점을 발견하고 오류를 표시한다.

또한 콰르토는 오픈소스이기 때문에 누구나 확장 프로그램을 만들어서 콰르토에 필요한 기능을 만들 수 있다. 콰르토 개발팀은 이미 여러 콰르토 확장 프로그램을 개발했다.

결과물을 다양한 형식으로 추출할 수 있는 것도 콰르토의 장점이다. 콰르토 결과물은 워드, 오픈오피스(OpenOffice), 파워포인트, ePub, 지라 위키(Jira Wiki), 주피터, 옵저버블 자바스크립트 웹 사이트 등 40개 이상의 파일 형식으로 내보낼 수 있다. R 마크다운보다 지원하는 형식이 훨씬 많다.

R 마크다운도 계속 업데이트되겠지만 시간이 지날수록 새로운 기능은 콰르토에서 볼 수 있을 것으로 예상된다. R스튜디오의 엔지니어 이휘 자이는 블로그를 통해 “작업 과정이 아주 쉬운 게 아니라면 원칙적으로 콰르토의 기능을 R 마크다운으로 따로 추가하지 않을 것”이라고 밝혔다. 
 

콰르토와 R 마크다운의 차이점

R 마크다운은 ‘R 패키지’이지만 콰르토는 R 언어 외에 다른 언어를 지원하는 범용 애플리케이션이다. 콰르토를 사용하려면 우선 공식 홈페이지(quarto.org)에서 ‘시작하기(Get Started)’ 페이지를방문해 파일을 다운로드하고 설치해야 한다.
R스튜디오에서 콰르토를 사용하려면 반드시 최신 버전의 R스튜디오가 필요하다. 비주얼 스튜디오 코드의 경우 ‘VS 코드 콰르토(VS Code Quarto)’라는 확장 프로그램을 설치해야 한다.

이전에 R 마크다운을 사용해봤다면 콰르토 문서를 익숙하게 사용할 수 있다. 제목, 저자, 출력 형식이 있는 YAML 헤더가 있다. 본문 텍스트는 일반적인 표현식을 사용한다. 헤더를 표현할 때는 파운드 기호를, 하이퍼링크를 넣을 때는 대괄호/괄호를 넣는 식이다. (예:([linked text](https://theurl.com)). 전체 코드의 시작과 끝은 3개의 백틱을 사용해 구분한다. 
 
ⓒ R스튜디오에서 콰르토를 실행한 예시. 출처:Infoworld

코드 속성을 추가하는 부분에는 큰 차이가 있다. R 마크다운은 다음 예시처럼 코드의 속성을 중괄호 안에 적는다.  

```{r chunk_name, echo=FALSE, warning=FALSE}
code here
```

이렇게 chunk_name이라는 이름의 R 코드 블록이 생성된 경우, 코드 자체는 결과 문서에 표시되지 않는다. 경고 메시지도 문서에 나오지 않는다.

다음은 콰르토에서 코드 속성을 추가한 예다. 중괄호 아래에 따로 줄별로 분리하고, 맨 앞에 파운드 기호와 수직 문자가 붙는 것을 볼 수 있다. 

```
{r}
#| label: chunk_name
#| echo: false 
#| warning: false
```

콰르토에 대한 자세한 내용은 ‘콰르토 웹사이트’를 참고하기 바란다.  
editor@itworld.co.kr
Sponsored

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록발행일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2024 International Data Group. All rights reserved.