이번 문서에서는 R 프로그래밍의 강점 중 하나인 문서 작성에 대한 이야기를 해보겠습니다. R에서는 현재 Quarto라는 프로그램을 사용하여 문서 작성을 하고 있습니다. 문서 작성에 코딩을 사용하면 무엇이 좋은지 R Quarto의 세계로 빠져보시죠!
R Quarto가 뭔가요?
우리는 앞으로 Quarto 파일을 사용을 할 것입니다. 워드 파일은 `.docx`, 한글 파일은 `.hwp`를 파일 확장자로 사용하고 있듯, R에서 문서 작성을 할 때 사용하는 문서파일의 확장자명은 `.qmd` 입니다. qmd는 Quarto-markdown의 줄임말이구요.
Qmd = Quarto + Markdown
Markdown이란?
먼저 Markdown이란 무엇인지 알아봅시다. 마크다운은 2004년에 처음 개발되었습니다. 마크다운을 짧게 요약하면 `서식을 위한 약속들`입니다.
우리가 문서를 작성을 하면 서식에 많은 생각을 하게 됩니다.
‘제목은 크기는 24포인트가 좋을지 25포인트가 좋을지, 소제목 폰트는 산스가 좋을지 산스세리프가 좋을지? 크기는 18포인트, 본문은 12포인트에 고딕체…’
마크다운은 서식을 꾸미는 시간을 아끼고, 내용에 집중하자는 슬로건을 내건 언어입니다. 즉, 마크다운으로 서식을 생략 한 채 문서를 작성할 땐 문서내용에만 집중하자! 이런 느낌입니다.
예를 들어, `#` 표시를 시작으로 문장을 시작하면, 그것은 워드에서 제목으로 지정하는 효과와 같다고 생각하면 좋습니다. 마크다운 자체에 대한 적은 다른 포스팅으로 미루기로 하고, 지금은 qmd 파일이 무엇인지에 집중해봅시다.
왜 qmd 인가?
마크다운은 서식을 담당하는 약속들이라고 했죠. 그렇다면 왜 `Quarto`를앞에 붙여놓은 것일까요? 마크다운과 다르게 qmd는 네가지 프로그래밍 코드를 사용하여 문서를 작성할 수 있습니다. 즉, 우리가 배운 코드들을 문서에 집어넣을 수 있을 뿐만 아니라, `코드를 돌린 계산 결과들을 사용하여 문서를 작성할 수 있다`는 것 입니다.
Quarto는 라틴어로 숫자 4를 의미하는데요, Quarto에서 지원하는 언어가 4개 (R, Python, Julia, Observable) 이기 때문입니다. 이 수업에서는 R과 Python 두 언어를 사용하는 방법을 배우도록 하겠습니다.
데이터와 연동된 문서
보고서를 공들여 작성해놨는데, 엑셀 데이터의 숫자 하나가 바뀌어 보고서에 들어있는 여러 문장들을 일일히 수정해야하는 수고로움이 없어집니다.
데이터 혹은 데이터 베이스와 문서가 직접적으로 연결 되어있어서 데이터가 바뀌면 문서의 내용도 자동으로 바뀌도록 설정할 수 있습니다. 여기서 말하는 문서의 내용에는 문장과 숫자 뿐이 아닌, 그래프 역시 포함되어 있습니다.
Qurto 파일 생성 및 렌더링
자, 실제로 해보는 것보다 나은게 없죠? Qmd 파일을 생성하고, Render
해보도록 합시다. Render
은 영어로 ’만들다’라는 의미입니다. 수업에서는 프로그래밍 결과와 마크다운 문서를 ’하나의 문서로 만든다’는 의미로 사용됩니다.
qmd 파일 생성하기
Rstudio의 메인 화면에서 다음을 선택합니다.파일 (File) > 새 파일 (New File) > Quarto Document...
다음 화면에서는 output format을 HTML로 설정합니다. Engine은 Knitr로 설정해 준 후, Create 버튼을 누릅니다.
Create
버튼을 누르게 되면, 다음과 같은 화면을 보게 됩니다.
축하합니다. 처음으로 .qmd
파일을 생성하게 되었네요. 왼쪽 위에 보이는 저장 버튼을 누르면, 파일 저장하는 화면이 나오는데, 적당한 이름을 붙여준 후 저장을 해줍시다.
렌더링 하기
뭔가 MS워드 혹은 노션처럼 생겼죠? 보고 계시는 화면은 RStudio에서 제공하는 Visual 에디터입니다. Source 에디터를 클릭해서 넘어가보겠습니다.
qmd
파일에는 앞에서 말씀드린 것처럼 각 문장을 어떻게 서식을 할 것 인지에 대한 마크다운 정보가 담겨져 있다는 것을 생각하고, 이 문서를 Render
해보도록 합시다. 위 화면의 왼쪽 위, 돋보기 옆에 Render 버튼이 보입니다. 파란색의 아래와 같은 모양입니다. 클릭해보시죠. 🙂
렌더링이 다 된 결과는 다음과 같습니다.
눈치 채셨겠지만, 제목, 섹션 제목, 본문의 서식들이 다르죠? qmd 파일의 내용과 결과물을 비교해보면 Render의 개념이 감이 잡히실 겁니다. 눈여겨 봐야할 곳은 바로 R코드 부분과 그의 결과 부분입니다.
1 + 1
qmd파일에는 코드를 돌린 결과를 넣은 적이 없는데, Render된 문서에는 1+1의 결과인 2가 들어있습니다. 렌더링을 할 때 계산한 결과가 문서에 들어있게 된 것이죠. 이 사실은 우리에게 무한한 가능성을 열어줄 수 있습니다. 실제 문서 내용을 다 입력하지 않고, 코딩을 통해서 채워넣으라고 할 수 있다는 것이니까요!
여기까지 첫 Qmd 파일을 생성하는 방법과 문서를 Render 하는 방법에 대하여 알아보았습니다. 이제 본격적으로 Qmd 문서 파일의 구조와 본문 편집 방법에 대하여 알아보시죠.