facts

마크다운(Markdown) 문서를 프레젠테이션 자료로 구조화하여 PPTX, HTML, PDF 파일로 렌더링하는 CLI(Command Line Interface, 명령줄 인터페이스) 도구인 mdpresent가 공개됐다. 해당 도구는 GitHub(https://github.com/ch040602/MdPr)를 통해 소스가 제공되며, 테마 미리보기(https://ch040602.github.io/MdPr/theme-preview/)를 통해 출력 결과물을 확인할 수 있다.

가장 핵심적인 기술적 특징은 'NO LLM runtime'이다. 파싱, 슬라이드 분할, 레이아웃 결정, 검증, 최종 렌더링에 이르는 전 과정에서 외부 LLM(대규모 언어 모델)이나 API 호출을 전혀 사용하지 않는다. 모든 변환 과정은 로컬 환경에서 규칙 기반 엔진으로 처리된다. 결과물은 단순 이미지 캡처 방식이 아니라 텍스트, 도형, 강조 표시, 번호 배지 등이 포함된 편집 가능한 PPTX 객체 형태로 생성된다.

how-it-works

mdpresent는 마크다운을 즉시 PPTX로 변환하는 단순 변환 방식이 아니라, 중간 표현 단계(Intermediate Representation, IR)를 두 번 거치는 파이프라인을 채택했다. 전체 처리 과정은 'Markdown $\rightarrow$ Presentation IR $\rightarrow$ Layout IR $\rightarrow$ Renderer' 순으로 진행된다.

첫 번째 단계인 Presentation IR에서는 마크다운의 의미론적 구조를 해석한다. 단순히 텍스트를 옮기는 것이 아니라 리스트, 강조, 블록 인용(Block quote), 화살표 기반의 파이프라인 표현 등을 발표 자료에 필요한 의미 정보로 보존한다. 이후 두 번째 단계인 Layout IR에서 실제 슬라이드에 배치될 시각적 구조를 결정한다.

슬라이드를 나누는 기준은 다음과 같은 규칙 기반의 신호를 활용한다.

- Heading: 제목 수준에 따른 분할

- Density: 텍스트 밀도 측정

- List count: 리스트 항목의 개수

- Sentence unit: 문장 단위의 길이

- Diagram signal: 도식 표현 신호

이러한 구조를 통해 마크다운 원본의 가독성을 유지하면서도, 렌더러가 각 포맷(PPTX, HTML, PDF)에 맞는 최적의 레이아웃을 생성할 수 있도록 제어한다. 사용자는 동일한 Presentation IR을 바탕으로 서로 다른 디자인 프리셋을 적용해 렌더링 결과를 비교할 수 있다.

implementation-impact

개발자와 실무자가 주목해야 할 지점은 결과물의 '결정론적(Deterministic) 특성'이다. LLM 기반의 생성 도구는 동일한 입력값에도 매번 다른 레이아웃이나 내용을 출력하는 확률적 특성이 있어, 정교한 제어가 필요한 기업용 보고서나 기술 문서 작성 시 예측 불가능한 오버플로우나 레이아웃 붕괴가 발생할 가능성이 크다.

반면 mdpresent는 규칙 기반 엔진을 사용하므로 입력된 마크다운 구조에 따라 항상 동일한 결과물을 보장한다. 이는 특히 AI 에이전트와의 협업 워크플로우에서 유용하다. 예를 들어 Codex나 Claude Code와 같은 에이전트가 마크다운으로 발표 초안을 작성하고, 이를 로컬 CLI인 mdpresent가 받아 확정적으로 렌더링하는 방식의 '보조 자동화 스킬'로 활용할 수 있다.

실무 도입 시 고려할 점은 규칙 기반 분할의 한계다. LLM처럼 문맥을 완전히 이해해 슬라이드를 나누는 것이 아니라 설정된 밀도와 신호에 의존하므로, 사용자는 mdpresent가 인식하는 슬라이드 분할 규칙(Heading, Density 등)에 맞춰 마크다운 원본을 최적화하여 작성해야 한다. 이는 생성 AI의 불확실성을 제거하는 대신, 입력 데이터의 구조적 정밀함을 요구하는 트레이드오프(Trade-off)로 작용한다.