마크다운
마크다운(Markdown)은 일반 텍스트 형식으로 문서를 작성하면서, 구조화된 문서(예: HTML)로 변환할 수 있도록 고안된 경량 마크업 언어이다. 존 그루버(John Gruber)가 애런 스워츠(Aaron Swartz)의 도움을 받아 2004년에 만들었으며, 가독성을 높이는 데 중점을 둔 것이 특징이다.
개요
마크다운은 문서를 작성하는 사람이 쉽게 읽고 쓸 수 있는 동시에, 다양한 형식으로 쉽게 변환될 수 있도록 설계되었다. 문법이 간단하고 직관적이어서 특별한 도구 없이도 메모장 등의 일반 텍스트 편집기로 작성할 수 있다. 주로 웹 콘텐츠 제작, 문서화 (README 파일, 기술 문서), 블로그 포스팅, 메모 작성 등 다양한 분야에서 사용된다.
역사
존 그루버는 사람들이 일반 텍스트만으로도 웹에 게시하기 쉬운 형식을 만들고자 마크다운을 개발했다. 그는 텍스트를 HTML로 변환하는 펄(Perl) 스크립트인 Markdown.pl
을 함께 공개했다. 초기 마크다운 문법 사양은 다소 모호한 부분이 있어 다양한 변형(방언)이 나타나게 되었고, 이후 이를 표준화하려는 노력으로 CommonMark 등의 프로젝트가 진행되었다.
문법
마크다운의 문법은 특수한 기호를 사용하여 텍스트의 의미를 표현한다. 이러한 기호들은 일반 텍스트 문서에서도 의미를 쉽게 파악할 수 있도록 고안되었다. 몇 가지 주요 문법 요소는 다음과 같다.
- 제목 (Headers):
#
기호를 사용하여 표현하며,#
의 개수로 제목의 단계를 나타낸다. (예:# 제목 1
,## 제목 2
) - 목록 (Lists):
-
,*
,+
기호 또는 숫자와 마침표(1.
)를 사용하여 순서 없는 목록과 순서 있는 목록을 만든다. - 강조 (Emphasis):
*
또는_
기호를 사용하여 이탤릭체(*기울임*
) 또는 볼드체(굵게
)를 표현한다. - 링크 (Links):
[링크 텍스트](URL)
또는[링크 텍스트][참조 이름]
형식으로 표현한다. - 이미지 (Images):

형식으로 표현한다. - 인용 블록 (Blockquotes):
>
기호를 사용하여 인용문을 표현한다. - 코드 블록 (Code Blocks): 탭 또는 공백 4칸으로 들여쓰거나, 백틱(```) 세 개로 감싸서 코드 블록을 만든다.
특징
- 가독성: 원본 소스 텍스트 자체의 가독성이 뛰어나다.
- 단순성: 문법이 직관적이고 배우기 쉽다.
- 호환성: 일반 텍스트 파일이므로 어떤 환경에서도 작성하고 읽을 수 있다.
- 다양한 변환 도구: Markdown 파서를 통해 HTML, PDF, 워드 등 다양한 형식으로 변환할 수 있다.
- 유연성: 복잡한 HTML 태그는 마크다운 문서 안에 직접 사용할 수도 있다.
확장 및 방언
오리지널 마크다운 사양의 모호함 때문에 다양한 기능을 추가하거나 문법을 확장한 마크다운 방언들이 등장했다. 대표적으로는 GitHub Flavored Markdown (GFM), MultiMarkdown, Pandoc's Markdown 등이 있다. CommonMark는 이러한 방언들의 차이를 줄이고 표준화된 마크다운 사양을 만드는 것을 목표로 한다.
활용
마크다운은 다음과 같은 분야에서 널리 활용된다.
- 기술 문서: GitHub, GitLab 등 코드 호스팅 플랫폼의 README 파일, 위키, 개발 문서 작성.
- 콘텐츠 관리 시스템 (CMS): 일부 블로그 플랫폼이나 CMS에서 마크다운 입력을 지원.
- 메모 및 글쓰기: Simplenote, Typora, Obsidian 등 다양한 메모 앱이나 에디터에서 마크다운을 기본 형식으로 사용.
- 정적 사이트 생성기: Jekyll, Hugo 등 정적 사이트 생성기에서 콘텐츠 작성 형식으로 사용.
- 온라인 포럼 및 채팅: Stack Overflow, Discord 등 일부 서비스에서 메시지 서식 지정에 마크다운 문법 사용.