평문이 서식 있는 글로 렌더링되는 마법
Markdown 은 경량 마크업 언어 야. John Gruber 가 2004 년에 만들었어. 평문에다 간단한 기호를 섞어 쓰면, 파서가 그걸 읽어서 헤딩, 굵게, 링크, 코드 블록 같은 풍부한 HTML 로 바꿔.
지금 표준은 CommonMark (spec 0.31.2). CommonMark 이전엔 파서마다 엣지 케이스를 다르게 해석했어. CommonMark 가 그걸 정리해서 '이 Markdown' → '이 HTML' 이 어디서나 일치하게 만든 거야.
이미 만나고 있는 곳
- GitHub — README, issue, PR, discussion, wiki.
- 문서 — MkDocs, Docusaurus, VitePress, Read the Docs.
- 노트 — Obsidian, Notion, Bear, Typora, Logseq.
- 정적 사이트 & 블로그 — Hugo, Jekyll, Astro, Next.js MDX.
- 채팅 — Slack, Discord, Mattermost (Markdown 부분집합).
- 기술 문서 — API 문서, changelog, RFC, runbook.
왜 평문 포맷이 계속 이기나
Markdown 파일은 그냥 텍스트야. git 에서 깔끔하게 diff 되고, 에디터 바뀌어도 살아남고, 어디서 썼는지 잊어버린 그 반짝거리던 도구보다 오래 살아. 2010 년에 쓴 Markdown 열어봐 — 지금도 읽혀. 매크로 박힌 2010 년 워드 문서 열어봐 — 행운을 빌어.
렌더링 흐름
Markdown 프로세서 (parser + renderer) 가 텍스트를 읽고, 블록과 인라인의 추상 구문 트리 (AST) 를 만들고, 트리를 순회하면서 HTML 을 뱉어. 프로세서마다 같은 spec 을 따르지만 확장은 제각각이야.
원칙: Markdown 을 '내 에디터에서 잘 보이는 거' 추측이 아니라 렌더러와의 계약 으로 다뤄. 그 계약이 CommonMark 야.