Canvas 1 Layer 1

덱셋: 마크다운 기반 프레젠테이션 제작 도구

들어가며

프레젠테이션은 간결한 표현을 통해서 핵심 주제를 전달할 수 있도록 도와주는 방법입니다. 윈도우Windows의 파워포인트PowerPoint와 맥OSmacOS의 키노트Keynote는 프레젠테이션을 작성하는 사람들에게는 피해갈 수 없는 도구이기도 합니다. 이러한 도구들은 다양한 기능들을 제공합니다. 프레젠테이션 작성자는 레이아웃을 시작으로 각 객체들의 위치와 크기 각도는 물론 도형들 간의 선후관계까지도 지정할 수 있으며, 객체별로 폰트 사이즈와 색상을 비롯한 다양한 속성들을 편집할 수 있습니다. 관객들의 시선을 사로잡는 애니메이션 효과를 이용해 슬라이드 간에는 물론 슬라이드 안에서도 이러한 효과를 지정해 줄 수 있으며 온갖 외부 객체들을 임베디드 형식으로 삽입하는 것도 가능합니다.

이러한 프레젠테이션 도구들은 한 마디로 말해 웅장하고, 거창합니다.
달리 말하면 거추장스럽습니다.

어떤 새로운 도구를 접할 때 기능이 너무 많으면 사람은 압도 당하기 마련입니다. 그 도구 안에서 어떤 행동을 취해야할 지 가늠하기 어렵기 때문입니다. 다양한 기능은 선택의 폭을 넓혀주지만, 사용자는 매번 이러한 선택의 폭과 씨름을 해야만 합니다. 아쉽게도 파워포인트나 키노트 같은 프레젠테이션 도구들은 이러한 거추장스러움을 간소화할 수 있는 방법이 많지 않습니다. 우리는 매번 매 슬라이드를 작성할 때마다 수많은 선택지들 앞에 놓이고 맙니다.

제약된 표현수단으로서의 프레젠테이션

훌륭한 프레젠테이션 도구들을 뒤로하고, 프레젠테이션으 본질으로 거슬러올라가보죠. 프레젠테이션이라는 건 무엇일까요?

프레젠테이션은 일반적으로 슬라이드들로 구성 됩니다. 각 슬라이드는 화면 전체를 채운다는 전제를 가지고 만들어집니다. 각 슬라이드의 밀도는 일반적인 문서보다는 낮은 편이다. 재미있게도 이러한 특성 때문에 슬라이드는 이미지 편집 프로그램이나 워드프로세스를 통해서 다룰 수 있는 것보다 훨씬 제약적인 환경을 가지고 있습니다. 프레젠테이션 도구들에서 슬라이드를 지나칠 정도로 자유롭게 다룰 수 있는 것과는 달리, 실제로는 훨씬 더 제한된 표현 수단입니다. 슬라이드 위에 표현될 수 있는 것들은 (도형을 제외한다면) 표제와 본문, 목록, 이미지 정도면 충분합니다.

이러한 제약을 좀 더 적극적으로 받아들이면, 프레젠테이션은 훨씬 단순해집니다. 바로 이 지점에서 Deckset for Mac이 등장합니다.

덱셋: FOCUS ON YOUR IDEAS NOT ON DESIGNING SLIDES
덱셋: FOCUS ON YOUR IDEAS NOT ON DESIGNING SLIDES

슬라이드를 디자인하는 대신, 당신의 아이디어에 집중하라.

덱셋의 주장은 정확히 기성 프레젠테이션 도구들이 제공하는 가치의 안티 테제입니다. 프레젠테이션이 정말로 제약된 표현 수단이라면, 제약된 형식으로 프레젠테이션을 표현하는 것도 가능할 것입니다. 덱셋에서는 이를 위해서 마크다운Markdown 문법을 채용하고 있습니다. 마크다운 문법으로 애니메이션을 표현하거나 도형의 위치를 정의하거나 다양한 외부 객체의 임베디드 형식을 선언하는 것은 어렵습니다. 그 대신 표제와 본문, 목록과 이미지 정도는 얼마든지 표현 가능합니다. 제약 위에서 슬라이드들을 작성하고, 슬라이드들을 꿰어 프레젠테이션으로 만들어줍니다.

덱셋에서 정의한 규칙에 따라서 마크다운 문서를 작성하면, 이 내용이 바로 프레젠테이션 파일로 변환됩니다. 표현(Designing sildes)에 대한 섬세한 자유를 버리는 대신, 프레젠테이션의 내용에 좀 더 집중할 수 있게 됩니다(Focus o your ideas).

마크다운(Markdown)의 매력

덱셋에서는 마크다운 포맷으로 프레젠테이션을 작성합니다. 아니, 이렇게 말하는 것이 더 정확합니다. 덱셋은 마크다운 포맷을 프레젠테이션으로 변환해주는 도구입니다. 따라서 먼저 마크다운에 대해서 알아야 합니다. 마크다운 포맷은 이미 플레인텍스트PlainText를 사랑하는 사람들에게는 널리 사랑받고 있습니다. 마크다운 포맷은 서식 없는 텍스트만으로 간단한 서식을 가진 문서를 표현할 수 있는 방법을 제공해주는 일종의 규약입니다.

예를 들어 마크다운에서 표제어는 다음과 같이 작성합니다

Johann Wolfgang von Goethe bibliography
=======================================

이를 HTML로 변환한 결과는 다음과 같습니다.

<h1>Johann Wolfgang von Goethe bibliography</h1>

목록은 다음과 같이 표현합니다.

* Römische Elegien
* Die Belagerung von Mainz
* Reineke Fuchs

이는 HTML로 다음과 같이 변환됩니다.

<ul>
  <li>Römische Elegien</li>
  <li>Die Belagerung von Mainz</li>
  <li>Reineke Fuchs</li>
</ul>

그리고 정확히 같은 내용이 덱셋을 사용하면 아래의 슬라이드로 변환됩니다.

마크다운 목록을 덱셋으로 슬라이드로 변환한 결과
마크다운 목록을 덱셋으로 슬라이드로 변환한 결과

이렇듯 간결한 표현을 통해서 HTML이나 서식이 있는 다른 문서 형식, 심지어 슬라이드로도 출력이 가능합니다. 마크다운에 대한 자세한 해설은 마크다운 문법의 공식 문서에 해당하는 DARING FIREBALL - 마크다운: 문법이나 마크다운 문법의 스펙을 만들고 있는 커먼마크CommonMark 명세CommonMark Spec을 참고해주세요.

마크다운과 같은 플레인 텍스트 기반의 텍스트 포맷을 사용하면 몇 가지 장점을 누릴 수 있습니다. 이를 읽기와 쓰기라는 두 가지 측면에서 살펴보겠습니다.

먼저 읽기라는 측면에서 마크다운 포맷은 단순한 텍스트 파일입니다. 윈도우 메모장으로도 읽을 수 있는 그 텍스트 포맷입니다. 따라서 기본적으로 매우 가볍고 대부분의 상황에서 이 파일을 읽어들일 수 있습니다. 또한 마크다운 같은 포맷은 사람이 편하게 읽을 수 있도록 설계되어있습니다. 즉, 이 텍스트 파일은 언제 어디서라도 별다른 뷰어 없이 직관적으로 그 뜻일 이해하며 읽어나갈 수 있습니다.

쓰기라는 측면에서도 살펴보겠습니다. 마크다운 텍스트는 텍스트를 편집할 수 있는 어떤 프로그램에서라도 편집이 가능합니다. 마크다운 포맷은 그저 텍스트에 불과하기 때문입니다. 이는 더욱 중요한 장점을 이끌어냅니다. 마크다운 문서를 편집하고자 할 때는, 자신이 선호하는 어떤 편집기라도 사용할 수 있습니다.

덱셋의 프레젠테이션은 원하는 어떤 텍스트 에디터에서도 편집이 가능하다
덱셋의 프레젠테이션은 원하는 어떤 텍스트 에디터에서도 편집이 가능하다

이맥스Emacs, 빔Vim, 울트라에디트UltraEdit, 엠에디터EmEditor, 서브라임텍스트SublimeText, 아톰Atom, 메모장 할 것 없이 자신이 선호하는 어떤 에디터라도 사용할 수 있습니다. 텍스터 에디터를 포함하고 있지 않은 점이 덱셋의 큰 장점이라고 해야할지도 모르빈다. 덱셋은 에디터를 제공하는 대신에 에디트 버튼을 누르면 원하는 에디터를 실행시켜주고, 편집중인 파일을 감시해 프레젠테이션 프리뷰를 실시간으로 업데이트합니다.

플레인텍스트 포맷은 원시적으로 보이기도 합니다. 하지만 워드프레세서나 프레젠테이션 도구들에서 제공하는 고유의 포맷들이 작성한 프로그램에 종속되어있다는 점을 감안해보면, 플레인텍스트 형식은 훨씬 더 범용적이고 일반적입니다. 이러한 매력에 공감한다면 덱셋을 사용해보고 싶어질 것입니다.

GUI 인터페이스

일반적인 프레젠테이션 도구들이 모든 것이 가능하다는 것을 장점으로 내세운다면, 덱셋은 반대로 할 수 있는 게 거의 없다는 것이 장점입니다. 덱셋은 기본적으로 저작도구가 아닙니다. 앞서서 이야기했듯이 마크다운 문서는 자신이 좋아하는 텍스트 에디터로 작성하면 그만입니다.

덱셋은 마크다운 문서를 단순히 슬라이드로 변환하는 역할만 담당한다
덱셋은 마크다운 문서를 단순히 슬라이드로 변환하는 역할만 담당한다

덱셋의 역할은 이렇게 만들어진 마크다운 문서가 프레젠테이션으로 어떻게 보일지를 보여주는 역할을 합니다. 여기에서 지원하는 기능은 먼저 프레젠테이션 테마를 선택하는 기능이 있습니다. 하지만 아쉽게도 그 이상의 것을 기대해서는 안 됩니다. 덱셋은 커스텀 테마를 만드는 기능도, 이미 있는 테마의 스타일을 수정하는 기능도 제공하지 않습니다. 주어진 몇 가지 테마 중에서 맘에 드는 테마를 선택할 수 있을 뿐입니다.

덱셋에서는 스타일을 지원하는 대신 제한된 테마만을 선택할 수 있다
덱셋에서는 스타일을 지원하는 대신 제한된 테마만을 선택할 수 있다

그 외에는 덱셋을 통해서 프레젠테이션을 재생하는 기능과 프레젠테이션을 PDF로 출력하는 기능이 있습니다. 특별히 더 할 수 있는 것도 없기 때문에, 마크다운만 안다면 덱셋의 대부분의 기능을 사용할 줄 안다고 해도 좋습니다.

덱셋의 마크다운 확장 문법

여기서부터는 덱셋에만 있고 마크다운에는 없는 슬라이드 표현을 위한 특별한 문법들을 살펴보겠습니다.

슬라이드 구분

덱셋에서는 ---으로 슬라이드를 구분합니다.

# Silde 1

---

# Silde 2

위 내용을 프레젠테이션으로 변환하면 다음과 같다.

덱셋에서 슬라이드를 나누는 방법
덱셋에서 슬라이드를 나누는 방법

자동맞춤(fit 헬퍼)

일반적으로 텍스트는 자신이 한 줄을 넘는지 그렇지 않는지 신경을 쓰지 않습니다. 덱셋에서는 제목이나 이미지를 넣을 때 길이가 넘치거나 부족하면 한 줄에 딱 맞도록 그 크기를 자동적으로 조절해줍니다. 이 기능이 바로 덱셋의 킬러 피처이기도 합니다. 이 기능이 없었다면 덱셋이 저작도구가 아니라는 사실이 매우 원망스러울 것입니다.

fit 헬퍼를 붙여서 이 기능을 사용할 수 있다. fit 헬퍼는 마크다운 문법이 아니라 덱셋에서만 해석되는 고유한 표현입니다.

# Johann Wolfgang von Goethe bibliography

위의 제목을 한 줄에 맞도록 작성하고자 한다면 다음과 같이 작성합니다.

# [fit] Johann Wolfgang von Goethe bibliography

다음 이미지는 fit을 통해 어떻게 변환되는 보여줍니다.

fit 지시자를 사용했을 때와 사용하지 않은 경우의 차이
fit 지시자를 사용했을 때와 사용하지 않은 경우의 차이

fit 헬퍼는 줄바꿈에 대한 걱정을 덜어줄 뿐만 아니라, 주제를 강조하는 프레젠테이션 기법인 다카하시 메서드와도 잘 어울립니다. 이를 통해서 직접 폰트 크기 조절해가며 레이아웃 맞추는 일에서 벗어나 전달하고자 하는 이야기에 집중할 수 있습니다

코드

덱셋은 기본적으로 코드 신택스 하이라이팅을 지원합니다.

덱셋은 신택스 하이라이팅을 지원한다
덱셋은 신택스 하이라이팅을 지원한다

또한 코드는 양옆 위아래로 프레젠테이션의 크기에 맞추어 크기가 변환됩니다(즉, 옆으로 길거나, 행이 많으면 폰트가 자동적으로 작아집니다).

덱셋은 코드의 길이를 판단해 자동적으로 폰트 크기를 조절한다
덱셋은 코드의 길이를 판단해 자동적으로 폰트 크기를 조절한다

이미지 배치

덱셋에서는 다양한 이미지 배치를 지원합니다. 좌, 우 배치와 다중 분할 및 인라인 삽입을 할 수 있습니다.

덱셋의 이미지 배치 예제
덱셋의 이미지 배치 예제

수식 지원

수식은 매스젝스Mathjax로 지원합니다. 단, 수식 모듈은 별도로 결제를 해야한다. 가격은 $9.99인데 덱셋 자체가 비싸다보니, 이것도 부담으로 다가올 수 있습니다.

매스젝스는 코드와 거의 동일하게 동작합니다. 기본적으로 하나의 수식은 한 줄에 작성되며 fit 기능과 같이 알아서 크기를 조절해줍니다. 수식 기능을 사용하면서 특별히 불편한 점은 없었으니, 멀티라인 표현을 하면 의도한대로 표현이 되지 않았습니다.

수식과 표를 사용한 프레젠테이션은 다음을 참조하기 바랍니다

덱셋 치트시트

이외에 덱셋에서 지원하는 마크다운 형식에 대한 더 자세한 정보는 덱셋 치트시트에서 찾아볼 수 있습니다.

한글 지원

한글 지원에는 문제가 있습니다. 일단 커스텀 테마를 사용할 수 없다는 게 너무 치명적인 단점입니다. 영어 폰트와 호환이 되지 않기 때문에 원치 않은 폰트로 한글이 표현될 경우 테마 선택의 폭이 아주 좁아집니다. Next 테마 정도가 그나마 괜찮은 것으로 보입니다.

왼쪽: Next, Olive Green, Plain Jane, Business Class, Zurich, 오른쪽: Poster, Franziska, Letters from Sweden, Sketchnote, Scherzkeks
왼쪽: Next, Olive Green, Plain Jane, Business Class, Zurich, 오른쪽: Poster, Franziska, Letters from Sweden, Sketchnote, Scherzkeks

또한 테마에 따라서 이탤릭과 강조 표현이 제대로 되지 않는 경우도 있다. 아래는 Next 테마에서 기본 스타일을 사용한 슬라이드이다.

덱셋에서 한글을 사용하는 경우 테마별로 미리 확인할 필요가 있다
덱셋에서 한글을 사용하는 경우 테마별로 미리 확인할 필요가 있다

한글을 사용할 경우에는 이러한 사항들을 확인할 필요가 있습니다. 다음 프레젠테이션은 Next 흰생 테마로 만들어진 문서입니다.

결론 - 내가 덱셋을 선택한 이유

여기까지 덱셋의 몇 가지 중요한 특징들에 대해서 살펴보았습니다. 덱셋의 가장 중요한 장점은 마크다운 기반이라는 점과 심플한 인터페이스에 있습니다. 반대로 단점은 자유가 지나치게 제약되어있는 점과 높은 가격에 있습니다.

덱셋을 사용하기 이전에도 이미 파워포인트나 키노트는 사용하고 있지 않았습니다. 이 도구들은 슬라이드 한 장 한 장에 너무 많이 공이 들어가기 때문입니다. 거꾸로 말하면 그러한 섬세함이 필요할 때는 도움이 되겠지만, 항상 그런 것은 아닙니다. 프레젠테이션 저작 도구들은 양날의 검입니다. 덱셋은 문제를 좀 더 단순하게 만들어줍니다. 최소한 마크다운 문법을 사용해 프레젠테이션을 작성한다는 데 매력을 느낀다면 덱셋은 현재로서는 같은 표현을 통해 최대한의 효과를 얻을 수 있는 도구입니다.

그렇다면 다른 자바스크립트 기반 프레젠테이션 도구들과 비교한다면 어떨까요? 이미 비슷한 목적을 가진 많은 라이브러리가 있으며, 개중에는 마크다운을 지원하는 도구도 있습니다. 그럼에도 덱셋을 추천합니다.

개인적으로 덱셋 이전에는 항상 org-reveal이라는 도구를 사용해 프레젠테이션을 작성해왔습니다. org-reveal은 org 포맷을 reveal.js 프레젠테이션 형식으로 변환해주는 이맥스Emacs 플러그인입니다. org 포맷을 통한 프레젠테이션 작성이나 마크다운 포맷을 통한 프레젠테이션 작성이나 기본적으로는 크게 다르지 않습니다.

결정적인 문제는 reveal.js와 같은 도구들이 개입되면 또 다시 신경쓸 일들이 늘어난다는 점입니다. 프레젠테이션을 작성하는 단순함은 얻을 수 있지만, 스타일 시트 관리와 PDF 변환, HTML 배포와 같은 문제들을 새로 신경써야만 합니다. 이런 문제들이 사소해 보일지도 모릅니다. 하지만 HTML로 화면을 보다가 PDF 미리보기로 화면을 보자 폰트 크기가 미묘하게 달라져서 생각지도 못 한 곳에서 줄바꿈이 생기고, 이미지들의 크기가 달라지고, 그리고 이런 문제들을 스타일시트나 HTML을 직접 수정하면서 편집해야하기 때문에 또다른 복잡함과 씨름하는 자신을 발견하게 될 것입니다. 자바스크립트 기반 프레젠테이션 도구들은 비슷한 문제들을 가지고 있습니다. 하지만 이런 종류의 복잡함은, 마치 프레젠테이션 저작 도구의 복잡함이 빛을 발할 때가 있는 것처럼, 프레젠테이션에서 자바스크립트를 마음껏 사용하고 싶다면 분명한 장점이 될 것입니다. 그런 장점이 탐날 때가 있지만, 항상은 그런 것은 아닙니다.

정리하면 이렇습니다. 제약을 받아들이면 문제는 단순해집니다. 덱셋의 진짜 역할은 바로 거기에 있고, 마크다운은 이 목표에 달성하기 위한 수단입니다. 이러한 제약을 받아들이기에 충분한 환경에 있다면, 덱셋은 매력적으로 다가올 것입니다.