에디터로 건너뛰기
mdprint

무료 · 프라이빗 · 가입 불필요

Markdown을 보기 좋게 인쇄

붙여넣고, 입력하고, 파일을 드롭하세요. 프리뷰는 즉시 갱신됩니다. 인쇄 또는 PDF 다운로드 - 모두 브라우저 안에서.

100% local No sign-up 18 languages
Markdown 소스
프리뷰

아래 에디터에서 입력을 시작하세요

코드 하이라이팅 수식 (KaTeX) Mermaid 다이어그램 체크리스트 각주 자동 목차 인쇄 최적화 로컬 처리 가입 불필요 18개 언어 다크 모드 코드 하이라이팅 수식 (KaTeX) Mermaid 다이어그램 체크리스트 각주 자동 목차 인쇄 최적화 로컬 처리 가입 불필요 18개 언어 다크 모드

로컬 처리

Local processing. Your files never leave your device. 업로드도 서버도, 내용 추적도 없습니다.

실시간 프리뷰

보이는 그대로 인쇄됩니다. 프리뷰는 출력물과 일치합니다.

전 세계에서 작동

18개 언어. 오른쪽에서 왼쪽 쓰기 지원. CJK 폰트 내장. 한 번 불러오면 오프라인에서도 동작.

동작 방식

세 단계. 계정도 없이.

에디터 열기
01

붙여넣기 또는 업로드

Markdown을 직접 입력하거나, 클립보드에서 붙여넣거나, .md 파일을 에디터로 끌어다 놓으세요.

02

즉시 프리뷰

입력에 맞춰 프리뷰가 실시간으로 바뀝니다. 제목, 표, 코드, 수식, 다이어그램 - 모두 즉시 렌더링.

03

인쇄 또는 다운로드

인쇄를 누르면 브라우저 대화상자가 열리고, 페이지 나눔이 깔끔한 PDF로 바로 받을 수도 있습니다.

GitHub Flavored Markdown과 실제로 자주 쓰는 확장들까지.

Markdown이 할 수 있는 모든 것을, 인쇄 가능하게

GFM 표

정렬된 열, 헤더, GitHub 스타일 문법 완벽 지원.

코드 하이라이팅

highlight.js가 190+ 언어를 자동 감지합니다.

수식 (KaTeX)

인라인 $x^2$와 블록 $$...$$ 수식을 빠르게 렌더링.

Mermaid 다이어그램

플로우차트, 시퀀스, 간트, 클래스 - 선명한 SVG로 렌더링.

체크리스트

체크박스 문법, 인쇄에도 깔끔한 표현.

각주

참조형 각주는 페이지 나눔에도 흐트러지지 않습니다.

자동 목차

제목 구조에서 자동 생성되는 선택형 목차.

인쇄용 스타일

페이지 나눔, 표 헤더 반복, 깔끔한 타이포그래피.

다크 모드 에디터

기본은 라이트. 야간 작업에는 다크로.

파일 가져오기

.md, .markdown, .txt. 드래그앤드롭 또는 버튼.

18개 언어

영어, 네덜란드어, 프랑스어, 아랍어, 중국어 등 네이티브 UI 제공.

추적 제로

내용을 보지 않습니다. Plausible은 페이지뷰만 셉니다.

기능

mdprint가 지원하는 모든 것, 예시와 함께.

Markdown 파싱

완전한 CommonMark, 거기에 GitHub Flavored Markdown까지.

mdprint는 내부적으로 markdown-it을 사용합니다 - JavaScript로 작성된 빠르고 명세에 충실한 Markdown 파서입니다. CommonMark를 정확히 구현하고, 그 위에 GitHub Flavored Markdown을 올립니다. 물결 두 개로 된 취소선, 맨 URL의 자동 링크, 언어 태그가 붙은 펜스드 코드 블록, 파이프 문법의 표는 모두 github.com과 동일하게 동작합니다. GitHub README에서 보이는 Markdown이라면 여기서도 보입니다.

GFM 파이프와 대시 문법, 정렬 지원.

표는 표준 파이프와 대시 문법을 씁니다. 헤더 행, 열마다 ---가 들어간 구분 행, 그 다음 데이터 행. 구분 행의 왼쪽, 오른쪽, 또는 양쪽 끝에 콜론을 더하면 정렬이 결정됩니다: :-- 왼쪽, --: 오른쪽, :-: 가운데. 페이지를 넘는 긴 표는 인쇄 시 페이지마다 헤더를 자동으로 반복합니다.

체크리스트

체크박스 문법, 인쇄에 친화적인 렌더링.

미완료는 - [ ], 완료는 - [x]로 씁니다. 프리뷰에서는 실제 체크박스로, 인쇄에서는 채워지거나 빈 네모로 출력되어 종이에서도 자연스럽게 읽힙니다. 중첩 글머리 목록 안에서도 동작하므로 계층형 To-Do도 만들 수 있습니다.

각주

페이지 나눔에도 흐트러지지 않는 참조형 주.

본문에 [^1]로 각주 표시를 두고, 다른 곳에 [^1]: 각주 내용 형식으로 정의합니다. 각주는 문서 끝에 모이고, 본문의 등장 위치로 되돌아가는 역참조가 붙습니다. 각주 영역은 별도 스타일과 더 작은 글자로 조판되어, 종이 논문에서 익숙한 모습 그대로입니다.

코드 하이라이팅

highlight.js로 190+ 언어, 자동 감지.

펜스드 코드 블록은 자동으로 문법 하이라이트됩니다. 여는 백틱 바로 뒤에 언어를 명시하면(```python, ```typescript, ```rust) 정확히 파싱되고, 생략하면 highlight.js가 내용으로 추정합니다. 백틱 한 개의 인라인 코드에는 은은한 고정폭 배경이 붙습니다. 코드 블록은 인쇄 시 중간에서 나뉘지 않도록 처리됩니다.

수식 (KaTeX)

인쇄 품질의 인라인·디스플레이 수식.

인라인 수식은 달러 기호 하나로 감싸고($E = mc^2$), 블록 수식은 두 줄짜리 더블 달러 기호 사이에 둡니다. mdprint는 둘 다 KaTeX로 렌더링합니다. MathJax보다 빠르고, PDF로 내보내도 또렷한 인쇄 품질을 유지합니다. 분수, 적분, 합산, 행렬, 그리스 문자, AMS-math 기호 등 표준 LaTeX 수식 명령을 모두 지원합니다.

에디터에서 시도해 보기 →

Mermaid 다이어그램

플로우차트, 시퀀스, 간트, 클래스, 상태 다이어그램.

언어 태그 mermaid를 단 펜스드 코드 블록을 쓰면 mdprint가 선명한 SVG 다이어그램으로 렌더링합니다. graph LR 또는 graph TD의 플로우차트, 배우 간 시퀀스 다이어그램, 날짜가 있는 간트 차트, 관계를 담은 클래스 다이어그램, 상태 머신 등 Mermaid가 지원하는 모든 종류가 동작합니다. SVG 렌더링이므로 어떤 인쇄 해상도에서도 다이어그램이 또렷합니다.

자동 목차

제목 구조에서 자동 생성.

문서 어디에든 ${toc}(또는 [[toc]])를 넣으면 그 뒤에 등장하는 H2·H3 제목으로 자동 목차가 만들어집니다. 프리뷰에서는 링크 목록으로, 인쇄된 PDF에서는 중첩 아웃라인으로 나타납니다. 독자가 특정 섹션으로 빠르게 이동해야 하는 긴 문서에 유용합니다.

인쇄 최적화 스타일

페이지 나눔, 헤더 반복, 깔끔한 타이포그래피.

인쇄 스타일시트는 목적에 맞춰 따로 만들었습니다. 코드 블록, 표, 다이어그램 중간에서는 페이지가 나뉘지 않습니다. 표 헤더는 인쇄되는 모든 페이지 상단에서 반복됩니다. 페이지는 당신의 설정 - A4 또는 Letter, 세로 또는 가로, 보통/좁게/넓게 여백 - 을 그대로 사용합니다. UI 크롬은 사라지고, 렌더링된 문서만 남습니다.

다크 모드 에디터

기본은 라이트, 원할 때 다크.

랜딩 페이지는 라이트를 유지합니다. 긴 글 읽기는 흰 배경이 더 편하기 때문입니다. 에디터는 해가 진 뒤 더 자주 쓰이는 영역이라, 페이지 테마와 별개로 자체 라이트/다크 토글을 갖습니다. 선택은 로컬에 저장됩니다.

파일 가져오기

드래그앤드롭 또는 버튼. .md, .markdown, .txt.

Markdown 파일을 에디터 위 어디든 떨어뜨리면 mdprint가 불러옵니다. "가져오기" 버튼은 파일 선택창으로 같은 일을 합니다. 파일은 브라우저의 FileReader API로 읽히며 어디에도 업로드되지 않습니다. 문서가 H1로 시작하지 않으면 파일 이름이 PDF 파일명 후보로 사용됩니다.

다국어 UI

18개 언어, RTL 지원, CJK 폰트.

인터페이스 자체가 18개 언어로 번역되어 있습니다: 영어, 네덜란드어, 프랑스어, 독일어, 스페인어, 포르투갈어, 간체 중국어, 정체 중국어, 러시아어, 아랍어, 베트남어, 일본어, 한국어, 이탈리아어, 태국어, 인도네시아어, 터키어, 힌디어. 아랍어는 오른쪽에서 왼쪽으로 레이아웃이 뒤집힙니다. CJK와 인도 계열 문자에는 적절한 폴백 폰트를 두어 어떤 기기에서도 올바로 표시됩니다.

mdprint 사용 방법

실용적인 가이드. 위에서 아래로 읽거나, 필요한 섹션으로 바로 가세요.

시작하기

mdprint을 가장 빠르게 시도해 보는 방법은 홈페이지의 에디터에 바로 입력해 보는 것입니다. 표, 코드, 수식, 다이어그램 등 모든 기능을 한 번씩 다루는 샘플 문서가 들어 있어, 완성된 페이지가 어떻게 보이는지 즉시 확인할 수 있습니다. 샘플을 지우고 직접 쓰거나, 다른 곳에서 작성한 내용을 붙여넣으세요.

이미 컴퓨터에 Markdown 파일이 있다면, 두 가지 방법으로 불러올 수 있습니다. 첫째, 파일 관리자에서 에디터 영역으로 끌어다 놓는 방법. 드래그 중에는 드롭 존 주변이 강조 표시되고, 파일을 놓으면 에디터가 그 내용으로 채워집니다. 둘째, 툴바의 "가져오기" 버튼을 눌러 파일 선택창에서 고르는 방법. 두 방식 모두 파일을 로컬에서 읽으며, 어디에도 업로드하지 않습니다.

mdprint은 .md, .markdown, .txt 파일을 받습니다. .txt는 Markdown으로 작성됐지만 다른 도구가 일반 확장자로 저장한 문서를 다룰 때 유용합니다. 다른 확장자의 파일을 가져오려 하면 mdprint은 오류를 표시하고 현재 내용은 그대로 둡니다.

Markdown 작성하기

Markdown을 한 번도 써 본 적이 없어도, 규칙은 5분이면 익힐 만큼 적습니다. 일반 텍스트를 쓰고, 대부분의 일은 네 개의 문자가 합니다. 줄 처음의 #은 제목 - # 하나면 가장 큰 제목, ###### 여섯이면 가장 작은 제목입니다. 단어 양옆에 *나 _를 하나씩 두면 기울임, 두 개씩 두면 굵게가 됩니다. 줄 처음의 -나 *는 글머리 기호를 만듭니다. 공백 두 칸 들여쓰기로 다른 글머리 아래에 중첩할 수 있습니다.

코드는 백틱으로 다룹니다. 어떤 표현 양옆에 백틱 하나씩이면 `inline code`로 서식이 잡힙니다. 줄 하나에 백틱 세 개만 두면 코드 블록 시작이고, 다시 세 개면 끝입니다. 여는 백틱 세 개 바로 뒤에 언어 이름(```python, ```typescript, ```sql)을 적으면 그 언어로 문법 하이라이트가 됩니다. 언어 힌트가 없으면 하이라이터가 내용을 보고 추정하는데, 보편적인 언어라면 보통 잘 맞춥니다.

링크와 이미지는 모두 대괄호와 소괄호를 씁니다. 링크는 [보이는 텍스트](URL), 이미지는 똑같은 형식 앞에 느낌표를 붙입니다: ![이미지를 설명하는 대체 텍스트](이미지 URL). PDF로 인쇄할 때, 공개 접근이 가능한 서버를 가리키는 이미지 URL은 가져와 임베드됩니다. 로컬 기기에 있거나 인증 뒤에 있는 이미지는 렌더링되지 않습니다 - 필요하다면 base64 데이터 URL로 변환해 에디터에 직접 넣으세요.

표는 Markdown에서 소스가 다소 번잡해 보이지만, 렌더링 결과는 깔끔한 부분입니다. 헤더 행, 대시로 된 구분 행, 그리고 한 개 이상의 데이터 행을 모두 파이프로 구분합니다. 소스에서 열이 가지런할 필요는 없습니다 - 렌더러가 간격을 맞춥니다. 구분 행의 대시 한쪽 끝이나 양쪽 끝에 콜론을 더하면 정렬을 조절합니다: :--- 왼쪽, ---: 오른쪽, :---: 가운데.

고급 기능 사용하기

수식은 달러 기호로 감싼 TeX 문법을 씁니다. 양옆에 달러 기호 하나씩이면 인라인 수식입니다: $a^2 + b^2 = c^2$. 단독 줄에 둘씩 두면 자체 행에 가운데 정렬된 큰 디스플레이 수식이 됩니다. \frac, \int, \sum, \sqrt, 그리스 문자, 행렬, AMS 기호 등 익숙한 LaTeX 수식 명령들이 모두 동작합니다. mdprint이 같은 문법을 구현한 KaTeX를 쓰기 때문입니다.

다이어그램은 mermaid 언어 태그가 붙은 펜스드 코드 블록 안에서 Mermaid 문법을 사용합니다. 가장 간단한 형태는 플로우차트입니다: graph LR(왼→오) 또는 graph TD(위→아래)로 시작하고, 화살표로 노드를 잇습니다. Mermaid는 시퀀스 다이어그램(시간 축 위 배우 간의 메시지 흐름), 간트 차트(의존성이 있는 일정), 클래스 다이어그램(객체 관계), 상태 다이어그램(상태 머신)도 지원합니다. 각 유형의 예시는 Mermaid 공식 문서에 있습니다.

각주는 본문을 깔끔하게 유지하면서 자세한 출처나 부연을 붙이는 데 유용합니다. 본문에 [^1]로 표시를 두고(숫자는 무엇이든 좋습니다 - 출력 시 다시 매겨집니다), 문서 어딘가에 [^1]: 각주 내용 식으로 정의합니다. mdprint은 인쇄 문서 끝에 모든 각주를 모으고, 각 각주를 본문 등장 위치로 잇는 역참조를 추가합니다.

문서가 길다면 목차가 들어갈 위치에 리터럴 [[toc]]를 두세요. mdprint은 그 자리를 문서의 모든 H2·H3로 향하는 중첩 링크 목록으로 바꿉니다. 인쇄된 PDF에서는 같은 목차가 PDF 뷰어가 활용할 수 있는 내비게이션 아웃라인이 됩니다.

출력 사용자 지정

툴바에서 설정 패널을 열면 PDF 생성 방식을 제어할 수 있습니다. 페이지 크기는 두 가지: A4(북미 외 표준) 또는 Letter(북미 표준). 방향은 세로와 가로 사이에서 전환 - 폭이 넓은 표나 다이어그램이 있는 문서에는 가로가 편합니다. 여백 프리셋은 셋: "좁게"는 밀도 높은 콘텐츠에 사용 가능한 영역을 더 주고, "보통"은 관습적인 중간, "넓게"는 인쇄본에 손글씨 주석을 적을 공간을 남깁니다.

에디터는 페이지 나머지와 별개로 자체 라이트·다크 테마를 갖습니다. 툴바 토글로 둘 사이를 오갈 수 있습니다. 프리뷰와 인쇄 출력은 늘 라이트 모드를 유지합니다. 종이에는 밝은 배경이 가장 잘 인쇄되기 때문입니다.

같은 설정을 자주 쓴다면, 마지막 선택이 로컬에 저장되어 같은 브라우저에서 mdprint을 다시 열 때 자동으로 적용됩니다.

인쇄 vs PDF 다운로드

"인쇄" 버튼은 브라우저의 기본 인쇄 대화상자를 엽니다. 거기서 모든 현대 운영체제는 "PDF로 저장"을 출력 대상으로 제공합니다 - Chrome, Firefox, Safari, Edge가 macOS, Windows, Linux에서 모두 지원합니다. 인쇄 대화상자 경로는 제어가 가장 많습니다. 원하는 프린터를 고르고, 페이지마다 미리 보고, 드라이버가 지원하면 페이지별 방향도 바꾸며, 일부 프린터에서는 용지함이나 스테이플을 바꿀 수 있습니다.

"PDF 다운로드" 버튼은 인쇄 대화상자를 건너뛰고 브라우저에서 직접 PDF 파일을 만들어 다운로드를 시작합니다. 현재 설정(페이지 크기, 방향, 여백)을 사용해 출력을 구성합니다. 원하는 것이 분명하고 인쇄 대화상자의 유연성이 필요 없을 때 더 빠릅니다. 동작 방식은 페이지를 고해상도 이미지로 렌더링해 그 이미지를 PDF에 넣는 것이라, 결과는 항상 화면에 보이는 그대로입니다. 절충점: 페이지가 이미지가 되므로 이 PDF의 텍스트는 선택도 검색도 되지 않습니다.

두 경로는 파일 안에 무엇이 남는지가 다릅니다. "인쇄" 버튼을 통한 "PDF로 저장"은 텍스트를 텍스트로 유지합니다. 선택과 검색이 되고, 어떤 확대에서도 또렷하며, 다이어그램은 벡터로 남습니다. 반면 "PDF 다운로드"는 한 번의 클릭으로 만든 이미지 스냅숏이라 빠르고 픽셀 단위로 정확하지만, 텍스트는 선택되지 않습니다. 선택 가능한 텍스트나 어떤 확대에서도 가장 선명한 결과를 원하면 "PDF로 저장"을, 인쇄 대화상자를 열지 않고 화면에 보이는 것을 빠르고 정확하게 복사만 하고 싶으면 "PDF 다운로드"를 사용하세요.

문제 해결

페이지가 어색한 곳에서 나뉩니다. mdprint은 코드 블록, 표, 다이어그램 내부에서는 나누지 않지만 본문에는 따로 개입하지 않습니다. 한 페이지 끝에 제목이 남고 본문이 다음 페이지에 시작된다면, 위아래에 문장을 몇 줄 보태 제목을 밀어내는 것이 가장 간단합니다. V1에는 수동 페이지 나눔 문법이 없습니다 - V2 목록에 있습니다.

PDF에 이미지가 보이지 않습니다. 가장 흔한 원인은 이미지 URL이 로컬 파일 시스템(file://)이나 교차 출처 접근을 허용하지 않는 서버를 가리키는 경우입니다. 이미지를 Markdown 소스에 데이터 URL로 직접 임베드하거나, 공개 읽기를 허용하는 이미지 호스트에 올리세요. Imgur, GitHub 사용자 콘텐츠 서버, 대부분의 CDN이 무난히 동작합니다.

수식이 렌더링되지 않습니다. 일반 텍스트에 이스케이프되지 않은 달러 기호가 있는지 확인하세요 - 홀로 떨어진 $ 하나가 수식 영역을 열어 단락 나머지를 삼킬 수 있습니다. 본문에 그대로 달러 기호가 필요하면 이스케이프하세요: \$. 문법이 맞는데도 렌더링되지 않는다면, 해당 LaTeX 명령이 KaTeX의 지원 목록에 없을 수 있습니다 - KaTeX 문서에 완전한 참조가 있습니다.

다이어그램이 비어 있습니다. Mermaid는 문법에 엄격합니다. 흔한 실수는 graph LR 뒤에 공백이 빠지거나, 노드 ID에 공백이 섞이거나(카멜 케이스나 언더스코어를 쓰세요), 화살표가 정의되지 않은 노드를 가리키는 경우입니다. 브라우저 개발자 콘솔을 열어 보세요 - 파싱이 실패하면 Mermaid가 구체적인 오류 메시지를 남깁니다.

표가 이상하게 줄바꿈됩니다. 표가 페이지보다 넓으면 mdprint이 축소해 맞춥니다. 매우 넓은 표라면 설정에서 가로 방향으로 바꾸거나, 표를 목록으로 재구성하세요. PDF는 웹처럼 가로 스크롤을 다루지 못합니다.

팁과 요령

키보드 단축키를 활용하세요. Cmd+P(또는 Windows·Linux에서 Ctrl+P)는 인쇄 대화상자를 엽니다. Cmd+S(Ctrl+S)는 PDF 다운로드를 실행합니다. 브라우저 자체 단축키 - 찾기(Cmd+F), 새로고침(Cmd+R), 확대·축소(Cmd+더하기/빼기) - 는 그대로 동작하며 mdprint과 충돌하지 않습니다.

모든 문서를 H1으로 시작하세요. 첫 H1은 PDF 파일명 후보, 접근성용 문서 제목, 그리고 인쇄 페이지 상단의 가장 두드러진 제목이 됩니다. H2 이하로 시작하면 파일명은 "document.pdf"로 폴백되고, 다운로드 후 직접 바꿔야 합니다.

프라이버시가 중요하면 이미지를 데이터 URL로 임베드하세요. PDF 리더가 파일을 열 때 원격 서버에서 이미지를 가져오는 것이 싫다면, 이미지를 base64 데이터 URL로 바꿔 직접 박아 넣으세요. 대부분의 운영체제에는 이 변환을 위한 내장 또는 단일 목적 도구가 있습니다. 파일은 커지지만 완전히 자기완결적입니다.

인쇄용 체크리스트에 체크리스트 문법을 쓰세요. 짐 싸기 목록, 발송 체크리스트, 단계별 절차 같은 종이 체크리스트라면 - [ ]로 시작하는 Markdown 체크리스트 문법을 사용하세요. 펜으로 표시할 수 있는 네모로 인쇄됩니다.

기술 문서에선 mermaid와 코드를 함께 사용하세요. 흔한 패턴은 어떤 프로세스의 플로우차트를 먼저 보이고, 이어서 그것을 구현하는 실제 코드를 보이는 것입니다. Markdown은 한 파일에 둘을 모두 담을 수 있고, mdprint은 인쇄 시 둘이 나란히 깔끔하게 보이도록 렌더링합니다.

키보드 단축키

Cmd+P 또는 Ctrl+P - 인쇄 대화상자 열기.

Cmd+S 또는 Ctrl+S - PDF로 다운로드.

에디터에서 Cmd+B 또는 Ctrl+B - 선택한 텍스트를 굵게.

에디터에서 Cmd+I 또는 Ctrl+I - 선택한 텍스트를 기울임.

에디터에서 Cmd+/ 또는 Ctrl+/ - 현재 줄의 주석 토글(Markdown 컨텍스트에서는 HTML 주석).

전체화면 상태에서 에디터 내 Esc - 전체화면 종료.

Markdown과 인쇄에 대해 더 알아보기

Markdown이란?

Markdown은 2004년 John Gruber가 만든 가벼운 일반 텍스트 서식 문법입니다. 의도한 대로 - # 은 제목, **는 굵게, -은 글머리 - 그대로 쓰면, 렌더러가 깔끔한 HTML, PDF 또는 인쇄 출력으로 바꿔줍니다. 서식 신경 쓰는 인지 부담을 덜어주기 때문에, GitHub, Reddit, Discord, 그리고 대부분의 현대 개발자 도구에서 기본 글쓰기 형식이 되었습니다. 계속 타이핑하다 보면 구조가 자연스럽게 잡힙니다.

GitHub Flavored Markdown(GFM)은 원래 명세에 표, 체크리스트, 펜스드 코드 블록, 자동 링크, 취소선을 추가합니다. 오늘날 대부분의 도구가 GFM과 더불어 자주 쓰이는 확장(각주, KaTeX 수식, Mermaid 다이어그램, 정의 목록)을 함께 구현합니다. mdprint는 이 모두를 기본으로 지원합니다.

워드프로세서로 쓰는 것과 비교했을 때, 인쇄 관점에서 Markdown은 두 가지 큰 이점이 있습니다. 첫째, 소스가 당신이 소유한 일반 텍스트 파일이라는 점 - 독점 형식도, 벤더 종속도, 다른 컴퓨터에서 열었을 때 갑작스러운 재배열도 없습니다. 둘째, 동일한 소스가 매번 동일한 결과를 만듭니다. 같은 제목은 같은 스타일, 같은 코드 블록은 같은 고정폭 폰트, 같은 표는 같은 테두리. 노트, 문서, 논문, 보고서를 인쇄할 때 정확히 필요한 일관성입니다.

Markdown을 PDF로 바꾸는 방법

흔한 방식은 세 가지입니다. 첫째, Pandoc 같은 커맨드라인 도구 - 강력하지만 설치가 필요하고, 진지한 조판을 하려면 LaTeX 환경도 필요하며, 결과물이 마음에 들기까지 시행착오가 적지 않습니다. 둘째, 통제할 수 없는 서버에 파일을 올리라고 요구하는 온라인 변환기. 초안 정도면 무난하지만 기밀이 섞이면 사용하기 어렵고, 대부분 첫 페이지 이후 워터마크나 결제 장벽이 끼어듭니다.

셋째가 mdprint의 방식입니다: 모든 처리를 브라우저 안에서 합니다. Markdown을 에디터에 붙여넣거나 드롭하면, JavaScript 파서가 HTML로 변환하고, 브라우저가 인쇄 친화 CSS로 렌더링한 뒤, 네이티브 인쇄 대화상자(어느 운영체제든 "PDF로 저장"이 가능합니다)를 호출하거나 클라이언트 라이브러리로 PDF를 바로 생성합니다. 업로드도, 서버 왕복도, 대기 시간도 없습니다.

브라우저 내부 처리를 선택해야 하는 세 가지 이유. 첫째, 프라이버시: 채용 결정, 세금 신고, 계약 초안 같은 문서가 단지 PDF가 되기 위해 남의 서버를 지나가서는 안 됩니다. 둘째, 속도: 페이지가 한 번 로드되면 변환은 즉시이고, 제목을 손보고 인쇄, 다시 손보고를 가볍게 반복할 수 있습니다. 셋째, 오프라인: 한 번 로드된 mdprint는 비행기 안이나 사내 방화벽 뒤에서도 막힘없이 동작합니다.

Markdown 문법 치트시트

제목: # H1, ## H2, ### H3, ... ###### H6까지. 한 문서에 H1은 정확히 하나만 - 그것이 인쇄 출력의 제목이자, PDF 다운로드 시 추천 파일명이 됩니다.

강조: *기울임* 또는 _기울임_, **굵게** 또는 __굵게__, ~~취소선~~. 필요하면 **_굵은 기울임_**도 가능합니다.

목록: 글머리 기호는 -, *, + 중 하나. 번호 목록은 1., 2., 3.(번호는 연속이 아니어도 됩니다 - Markdown이 다시 매깁니다). 들여쓰기는 공백 2칸 또는 4칸. 체크리스트는 미체크가 - [ ], 체크는 - [x].

링크와 이미지: [텍스트](https://example.com)은 링크, ![대체 텍스트](image.jpg)은 이미지. 참조형 링크 [텍스트][id]와 별도 줄의 [id]: https://example.com 조합은 본문 가독성을 살립니다.

코드: 인라인은 백틱으로 `code`, 블록은 백틱 3개로 시작과 끝을 묶고 선택적으로 언어 태그(```python, ```typescript)를 적습니다. 그래야 하이라이터가 올바른 문법을 선택합니다.

표: 파이프와 대시 문법. 한 줄에 | 열 | 열 |, 다음 줄에 |---|---|, 그 다음에 데이터 행. 정렬 표시(:--, --:, :-:)로 인쇄 출력에서의 열 정렬을 조절합니다.

수식: 인라인은 $E = mc^2$, 블록은 $$ \int_0^\infty e^{-x} dx = 1 $$. mdprint는 KaTeX를 사용해 빠르고 선명하게 인쇄됩니다.

다이어그램: 언어 태그 mermaid를 단 펜스드 코드 블록은 SVG 다이어그램으로 렌더링됩니다. 플로우차트, 시퀀스, 간트, 상태 머신, 클래스 - 모두 지원.

왜 로컬 처리가 중요한가

문서가 기기를 벗어날 때마다 당신이 완전히 감사할 수 없는 위험이 늘어납니다. 받은 서버가 요청 본문을 로그에 남길 수도 있습니다. 엣지의 TLS 프록시가 캐시할 수도 있습니다. 업로드 페이지의 서드파티 분석 스크립트가 파일명을 가져갈 수도 있고, 에러 모니터링이 본문 일부가 포함된 스택트레이스를 잡아낼 수도 있습니다. 대부분의 경우 아무 일도 일어나지 않지만 - 어느 한 번이 문제 되는지 알 수 없고, 사후에 되돌릴 수도 없습니다.

로컬 처리는 이 부류의 실패를 통째로 제거합니다. mdprint는 필요한 JavaScript를 한 번 내려받은 뒤, 모든 것을 브라우저 샌드박스 안에서 실행합니다: Markdown 파서, 문법 하이라이터, 수식 렌더러, 다이어그램 렌더러, PDF 생성기. 파일은 결코 이동하지 않습니다. 보고 싶어도 볼 수 있는 서버 자체를 운영하지 않습니다.

이 프라이버시 보증은 약속이 아니라 구조입니다. 잘못 설정될 수 있는 업로드 엔드포인트가 없고, 실수로 초안을 보관할 데이터베이스도 없으며, 사회공학적으로 파일을 들여다보도록 유도될 수 있는 지원 인력도 없습니다. 새지 않을 수 있는 것은, 애초에 보내지지 않은 것뿐입니다.

mdprint과 다른 도구 비교

커맨드라인이 익숙하고 학술 출판이나 책 분량 출력을 만든다면 문서 변환의 정석은 Pandoc입니다. 사용자 정의 LaTeX 템플릿으로 300페이지 원고를 마무리하는 작가에겐 맞는 도구죠. 회의록이나 README 한 장 인쇄에는 과합니다.

Typora와 Obsidian은 PDF 내보내기가 내장된 훌륭한 Markdown 에디터입니다. Markdown이 일상 글쓰기의 주된 캔버스라면 설치할 가치가 있습니다. mdprint는 다른 경우 - 한 번 인쇄하거나 공유할 파일이 있고, 그걸 위해 뭔가 설치하고 싶지는 않은 경우 - 를 위한 것입니다.

Markdown을 PDF로 바꿔주는 브라우저 확장은 대부분 내용을 원격 서비스로 보내는 방식입니다. 그러면 mdprint가 피하려는 프라이버시 문제가 다시 들어옵니다. 변환을 남의 기계에서 처리해야 한다면 mdprint가 아니라 호스팅 서비스가 필요합니다. 그게 아니라면 그것도 필요 없습니다.

Google Docs, Microsoft Word, Pages는 Markdown을 열 수 있지만 렌더링이 일관되지 않고 소스를 보존하지 않습니다. PDF 출력 자체는 괜찮지만, 파일을 열 때마다 다시 독점 에디터에 갇히게 됩니다. mdprint는 소스를 일반 텍스트 그대로 유지합니다. 파일은 영원히 이식 가능합니다.

FAQ

자주 묻는 질문

여기에 없는 질문이라면 anton@fokuus.be로 보내주세요.

네. 완전 무료이며, 가입도 필요 없고, 결제 장벽도 광고도 없습니다. Fokuus가 공공 유틸리티로 만들고 유지합니다.

mdprint 소개

mdprint은 무료, 프라이버시 우선의 Markdown → PDF 도구입니다. 브라우저 안에서 전부 처리합니다 - 업로드도, 계정도, 콘텐츠 추적도 없습니다.

왜 만들었나

대부분의 온라인 Markdown→PDF 변환기는 파일을 서버에 업로드하는 방식입니다. 공개 README라면 합리적인 절충일 수 있지만, 계약 초안, 세금 문서, 작업 중인 파일이라면 시작도 못 합니다. mdprint은 그런 변환기의 "모든 처리를 로컬로" 버전이며, 그 절충 자체를 없앱니다.

누가 만들었나

Fokuus는 벨기에에 있는 작은 웹 스튜디오입니다. mdprint은 Anton Pycarelle이 공공 유틸리티로 만들었습니다 - 우리 스스로가 원했던 도구를, 누구나 무료로 쓸 수 있도록 공개했습니다. 연락처: anton@fokuus.be.

어떻게 무료를 유지하나

V1에는 광고도, 업셀도, 프리미엄 등급도 없습니다. 호스팅 비용은 사실상 없습니다(Netlify의 정적 파일). 회수할 게 별로 없다는 뜻이죠. 이후에 유료 기능이 추가된다면 그건 부가 기능이며, 코어 도구는 계속 무료입니다.

로드맵

V1은 18개 언어로 Markdown → PDF 흐름 전체를 다룹니다. V2 목록에는 HTML 내보내기, DOCX 내보내기, 템플릿 갤러리, 커스텀 테마 에디터가 있습니다. 오픈소스화도 V2 목록에 들어 있습니다.

에디터 열기

계정도, 설치도, 업로드도 필요 없습니다. 위로 스크롤해 입력을 시작하세요.

mdprint