← 노트로 돌아가기

Marp: 마크다운 프레젠테이션 도구(그리고 PowerPoint로 내보내는 방법)

Marp는 오픈소스 마크다운 프레젠테이션 생태계입니다. 마크다운으로 슬라이드를 작성한 뒤 Marp CLI로 HTML, PDF, PowerPoint로 내보낼 수 있습니다. 이 가이드에서는 Marp 테마, 마크다운 작성, marp-cli로 pptx(이미지 형태) 내보내기, reveal.js·Slidev와의 비교, 그리고 Agent-Native Design Workspace가 어울리는 지점을 다룹니다.

Marp: 마크다운 프레젠테이션 도구(그리고 PowerPoint로 내보내는 방법)

"marp"를 치과나 교정 용어로 생각하고 검색했다면, 이건 그것과는 다른 쪽입니다. Marp는 Markdown 프레젠테이션 생태계(Markdown Presentation Ecosystem)로, GitHub의 marp-team이 만든, 순수 Markdown을 작성해 슬라이드 덱을 만드는 오픈소스(MIT) 프로젝트입니다. 캔버스에서 상자를 끌어다 놓을 필요도, 독점 파일 형식도 없습니다. # Slide title과 몇 개의 불릿을 쓰고 디렉티브 한두 개를 더하면, Marp가 그것을 프레젠테이션으로 바꿔 줍니다. (봤을지도 모를, 관련 없는 "MARPE"는 교정치과의 상악 확장술로 슬라이드와는 아무 상관이 없습니다. 이 글은 오직 프레젠테이션 도구 Marp만 다룹니다.)

오픈소스 프레젠테이션 도구 중에서 Marp는 가장 단순하고 가장 Markdown에 가까운 선택지이며, 바로 그 점 때문에 개발자들이 손을 뻗습니다. 이 글은 Marp가 무엇인지, 작성과 테마가 어떻게 작동하는지, Marp CLI가 PowerPoint와 PDF로 어떻게 내보내는지(그리고 사람들이 걸려 넘어지는 한 가지 주의점), reveal.js·Slidev와 어떻게 비교되는지, 그리고 Markdown이 한계에 부딪힐 때 디자인 워크스페이스가 어디서 이어받는지를 솔직하게 정리한 가이드입니다.

Marp란

Marp는 하나의 발상을 중심으로 만들어진 작은 도구 모음입니다: 슬라이드는 Markdown. 세 가지 구성 요소가 있습니다. Marpit은 Markdown과 테마를 슬라이드 HTML과 CSS로 바꾸는 저수준 프레임워크입니다. Marp Core는 Marpit 위에 얹힌, 기본 테마·이미지 처리·수식 지원을 갖춘 올인원 엔진입니다. Marp CLI(marp-team/marp-cli)는 당신의 Markdown 파일을 HTML, PDF, PowerPoint로 렌더링하는 명령줄 도구입니다. 입력하는 대로 실시간 나란히 미리보기를 보여 주는 공식 VS Code 확장도 있습니다.

작성은 하나의 .md 파일에서 합니다. 슬라이드는 ---로 구분하고, 슬라이드별·전역 설정은 Marp 디렉티브(theme:, paginate:, class: 등)로 지정하며, 모든 것이 버전 관리가 가능한 순수 텍스트로 남습니다. 바로 그것이 전부의 매력입니다. 당신의 덱은 Git에서 깔끔하게 diff되고, 코드 옆에 놓이며, 결코 바이너리 형식에 갇히지 않습니다.

Marp 테마와 Markdown 작성

Marp 덱 작성은 의도적으로 최소한입니다. 파일 맨 위의 front-matter 블록이 전역 디렉티브를 설정하고, ---가 슬라이드를 나누며, 표준 Markdown——제목, 목록, 코드 펜스, 이미지, 표——이 그대로 콘텐츠가 됩니다. Marp는 내부적으로 HTML과 CSS로 렌더링하므로, Markdown이 표현할 수 있는 것은 추가 문법을 배울 필요 없이 슬라이드로 매핑됩니다.

Marp 테마는 그저 CSS입니다. Marp Core는 몇 가지 내장 테마(default, gaia, uncover)를 제공하며, theme: 디렉티브 하나로 그 사이를 전환합니다. 내장 테마가 부족할 때는 자신의 테마를 CSS 파일로 작성합니다——Marpit이 노출하는 클래스를 대상으로 하고, --theme--theme-set으로 CLI에 등록하면 모든 슬라이드가 그것을 적용합니다. 인라인 조정을 위해서는 한 슬라이드에 스코프가 지정된 <style> 블록을 넣을 수 있습니다. 이 CSS 네이티브 모델이 Marp의 천장이자 바닥입니다. CSS에 익숙하면 완전한 제어권을 갖고, 그렇지 않아도 기본값은 여전히 깔끔해 보입니다.

Marp를 PowerPoint와 PDF로 내보내기

내보내기야말로 Marp CLI가 제 몫을 하는 지점입니다. Markdown을 가리키고 대상 형식을 고르세요:

  • HTML——marp deck.md -o deck.html은 브라우저에서 발표하는 자체 완결형 웹 덱을 생성합니다.
  • PDF——marp deck.md --pdf는 인쇄에 적합한 PDF를 렌더링하며, 유인물과 공유에 이상적입니다.
  • PowerPoint——marp deck.md --pptx는 PowerPoint나 Keynote에서 열 수 있는 .pptx 파일을 내보냅니다.

분명히 말해 둘 한 가지 주의점: Marp의 PPTX 내보내기는 각 슬라이드를 이미지로 렌더링합니다. 네이티브하고 편집 가능한 PowerPoint 도형이 아닙니다. 모든 슬라이드는 .pptx 래퍼 안에서 전면 이미지가 됩니다. PowerPoint에서 사는, 발표만 하면 되는 사람에게 파일을 넘겨야 할 때는 완벽합니다——하지만 내보낸 뒤에는 텍스트 상자를 클릭해 편집하거나, 도형 색을 바꾸거나, 불릿을 옮길 수 없습니다. 워크플로가 이후에도 PowerPoint에서 계속 편집해야 한다면, Marp의 pptx를 소스 형식이 아니라 전달 형식으로 다루세요. (실험적인 "편집 가능" 내보내기 모드는 왔다가 사라졌습니다. 신뢰할 수 있고 문서화된 동작은 슬라이드당 이미지 하나입니다.)

Marp vs Slidev vs reveal.js

Marp가 Markdown 우선 프레젠테이션 도구의 유일한 선택지는 아닙니다. 당신의 선택을 좌우하는 축들을 기준으로 한 솔직한 비교입니다:

도구작성 방식편집 가능한 PPTX 내보내기템플릿화라이선스
Marp순수 Markdown + 디렉티브pptx는 이미지(편집 가능한 도형 아님)CSS 테마MIT
reveal.jsHTML(Markdown 플러그인 선택)네이티브 pptx 없음HTML/CSS 테마MIT
SlidevMarkdown + Vue 컴포넌트네이티브 pptx 없음(PDF/PNG/SPA)Vue + Windi/UnoCSS 테마MIT
Open Design에이전트에게 설명디자인 시스템에 맞춘 편집 가능한 덱디자인 시스템 + 템플릿 라이브러리Apache-2.0

Marp는 가장 격식을 덜고 싶을 때——Markdown 파일 하나와 CLI——의 선택입니다. reveal.js는 성숙한 웹 슬라이드 프레임워크입니다. HTML 우선, 끝없이 커스터마이즈 가능하며 브라우저 내에서 가장 풍부한 경험을 주지만, 당신이 쓰는 것은 HTML이고 네이티브 PowerPoint 경로는 없습니다. Slidev는 그 중간으로, Markdown에 더해 진짜 Vue 컴포넌트, 코드 하이라이트, 인터랙티브 임베드를 원하는 개발자를 위한 것입니다——Marp보다 강력하지만 설정도 더 많습니다. 셋 다 MIT 라이선스이며, 어느 것도 PowerPoint에서 바로 편집 가능한 것을 내보내지 않습니다.

Open Design이 어울리는 지점

Marp는 딱 한 가지에 탁월합니다: 당신이 이미 작성한 Markdown을 슬라이드로 바꾸는 것. 하지만 그것은 당신에게 덱을 쓰라고 요구합니다——구조, 문구, 테마 CSS. 콘텐츠를 생성하거나, 프로젝트 전반에 걸쳐 브랜드에 맞게 유지하거나, 내보낸 뒤 편집 가능한 산출물을 주지는 않습니다.

Open Design은 그 위의 레이어입니다. 이미 사용 중인 코딩 에이전트 바깥에 자리한, 오픈소스(Apache-2.0)이고 로컬 우선이며 키 지참 방식의 Agent-Native Design Workspace입니다. Markdown을 손으로 쓰는 대신 원하는 덱을 설명하면, 에이전트가 디자인 시스템에 맞춰 편집 가능한 덱을 생성합니다——출발점이 되는 퍼스트파티 HTML 덱 템플릿을 플러그인 라이브러리에 갖추고 있습니다. 이는 Markdown으로 작성하는 Marp의 대체품이 아닙니다. 이미 Markdown에 콘텐츠가 있고 명령줄에서 빠른 덱을 원한다면 Marp가 알맞은 도구입니다. 덱이 생성되고, 브랜드에 맞고, 더 큰 디자인 워크플로의 일부로 여전히 편집 가능하길 원한다면, 그건 워크스페이스의 몫입니다. 이미 코딩 에이전트로 슬라이드를 만든다면 코딩 에이전트로 슬라이드 덱 만드는 법을 참고하세요.

자주 묻는 질문

Marp란 무엇인가요? Marp는 GitHub의 marp-team이 만든 오픈소스 Markdown 프레젠테이션 생태계입니다. Markdown으로 슬라이드를 작성하면 Marp CLI가 그것을 HTML, PDF, PowerPoint로 내보냅니다. MIT 라이선스이며 Marp Core, Marpit 프레임워크, VS Code 확장을 포함합니다. 교정치과의 "MARPE" 용어와는 무관합니다.

Marp 덱을 PowerPoint로 어떻게 내보내나요? Marp CLI(marp-cli)를 설치하고 marp deck.md --pptx를 실행하세요. 내보낸 .pptx는 각 슬라이드를 이미지로 렌더링하며, 네이티브하고 편집 가능한 PowerPoint 도형이 아니라는 점에 유의하세요——전달에는 훌륭하지만 이후 PowerPoint 안에서 텍스트나 도형을 편집할 수는 없습니다.

Marp는 편집 가능한 PowerPoint 파일을 내보낼 수 있나요? 확실하게는 아닙니다. Marp의 문서화된 PPTX 동작은 슬라이드당 이미지 하나입니다. 진짜 텍스트 상자와 도형을 갖춘 네이티브 편집 가능한 .pptx가 필요하다면, 그 단계에는 Marp가 맞지 않는 도구입니다.

Marp는 무료인가요? 네. Marp는 MIT 라이선스 오픈소스이므로 자유롭게 사용하고, 셀프호스팅하고, 수정할 수 있습니다.

Marp vs reveal.js vs Slidev——무엇을 써야 하나요? 가장 단순한 순수 Markdown 덱과 손쉬운 PDF/pptx 내보내기를 원하면 Marp, 깊은 커스터마이즈가 가능한 성숙한 HTML 우선 웹 슬라이드 프레임워크를 원하면 reveal.js, Markdown에 더해 인터랙티브 Vue 컴포넌트를 원하면 Slidev를 고르세요. 셋 다 MIT 라이선스이며, 어느 것도 편집 가능한 PowerPoint를 바로 내보내지 않습니다.

핵심 요약

Marp는 이미 가진 Markdown을 슬라이드로 바꾸는 가장 깔끔한 방법입니다——하나의 .md 파일, CSS 테마, 그리고 HTML, PDF, PowerPoint를 내보내는 CLI. 다만 한 가지 솔직한 한계는 기억하세요: pptx는 이미지로 나오므로, PowerPoint에서 계속 편집할 것이 아니라 전달 형식으로 다루세요. 필요가 "Markdown은 있으니 덱을 달라"라면 Marp를 이기기는 어렵습니다. 덱이 생성되고, 브랜드에 맞고, 더 큰 디자인 워크플로 안에서 편집 가능해야 할 때——그때 Agent-Native Design Workspace가 이어받습니다.


← 노트로 돌아가기 GitHub · 소스 ↗