문서를 작성하는 것은 생각보다 시간이 드는 일입니다.
내용을 정리하고, 구조화하고, 문장을 쓰고, 서식도 다듬어줘야죠.
하지만 Markdown(마크다운) 문법을 활용하면 이 과정을 상당히 간소화 할 수 있습니다.
글의 구조를 짜고, 문장으로 써내리기만 하면 됩니다.
이번 글에서는 Markdown의 특징과 문법을 공유합니다.
Markdown?
Markdown을 소개하기에 앞서 먼저 Markup(마크업)을 이야기해볼까 합니다.
개발을 간단히라도 배웠던 사람이라면 HTML 문법을 배우셨을겁니다.
HTML은 대표적인 Markup언어입니다.
왜 Markup이라고 하는지는 문법을 보면 이해할 수 있습니다.
<html>
<head>
<title>Hello, World!</title>
</head>
<body>
<!-- <mark>내용</mark> -->
<h1>Hello, World!</h1>
</body>
</html>
위 문법과 같이 내용이 Mark로 둘러싸인 형태를 가지고 있기 때문입니다.
Markdown은 이름에서부터 알 수 있듯이 Markup 문법과 반대되는 특징을 가지고 있습니다.
먼저 아래 예제는 Naver SmartEditor의 readme.md 파일의 일부입니다.
# SmartEditor2
## Overview
SmartEdtitor™ 는 JavaScript로 구현된 웹 기반의 WYSIWYG 편집기입니다.
WYSIWYG 모드 및 HTML 편집 모드와 TEXT 모드를 제공하고, 자유로운 폰트 크기 설정 기능, 줄 간격 설정 기능, 단어 찾기/바꾸기 기능 등 편집에 필요한 다양한 기능을 제공하므로 사용자들은 SmartEdtitor™를 사용하여 쉽고 편리하게 원하는 형태의 글을 작성할 수 있습니다.
또한, SmartEdtitor™의 구조는 기능을 쉽게 추가할 수 있는 플러그인 구조로 되어 있어 정해진 규칙에 따라 플러그인을 만들기만 하면 됩니다.
## User Guide
사용자 가이드에서는 SmartEditor2 의 특징과 기능을 소개합니다.
또한, 설치 방법과 기능의 추가/삭제 방법도 알 수 있습니다.
* [사용자 가이드](http://naver.github.io/smarteditor2/user_guide/)
## Demo
아래 데모페이지 에서는 SmartEditor2.0 이 제공하는 다양한 기능을 바로 체험해 볼 수 있습니다.
* [SmartEditor2 Demo 바로가기](http://naver.github.io/smarteditor2/demo/)
위 예제에서 볼 수 있듯이 태그로 둘러싸이지 않고 몇 가지 기호를 사용해서 작성합니다.
Markdown의 서식을 찬찬히 살펴보면 우리가 일상적으로 사용하는 기호와 비슷하다는 것을 알 수 있습니다.
제목에 붙이는 #이나 목록에 붙이는 * 등이 그렇죠.
때문에 Markdown 문법을 모르는 사람이 봐도 어느 정도 이해할 수 있고, 배우기도 쉽습니다.
활용되는 곳
Markdown 문법은 상당히 많은 곳에서 사용되고 있습니다. 아래는 그 중 대표적으로 사용되는 경우입니다.
- README.md
GitHub에 공유되는 코드나, 많은 소프트웨어의 README 파일이 Markdown 문법으로 작성됩니다. - 메모
최근 출시되는 메모 App들은 빠른 작성을 위해 Markdown 문법을 지원하고 있습니다. - 게시물 작성
Tistory나 Jekyll, Atlassian Confluence 등 여러 사이트의 에디터가 Markdown 문법을 지원하고 있습니다.
대표적인 문법
XML과 같은 Markup 문법도 그렇지만 Markdown도 정해진 규칙은 없습니다.
하지만 대표적인 문법들은 대부분의 편집기에서 공통적으로 이용됩니다.
아래는 이러한 문법들입니다.
문단 나누기
첫 번째 문단
두 번째 문단
이전 문단과 다음 문단 사이에 한 줄을 비우면 문단이 나누어집니다.
행 넘기기
첫 번째 문단, 첫 번째 문장
첫 번째 문단, 두 번째 문장
두 번째 문단, 첫 번째 문장
기본적으로 한 문단 안에서의 개행문자는 무시됩니다.
때문에 다음 행으로 넘기고 싶다면 빈 칸 두 개를 입력한 후 다음 행으로 넘기면 한 문단 안에서 행넘김을 할 수 있습니다.
제목
# 제목1
## 제목2
### 제목3
#### 제목4
##### 제목5
###### 제목6
제목의 수준만큼 #을 입력합니다. 보통 6번째까지 지원합니다.
간단한 서식
**굵게**
*기울이기*
~~취소선~~
이건 ~~아마도~~ **진짜** 간단한 문법입니다.
*- jETA*
서식을 지정할 시작 지점부터 끝 지점까지 서식 문자를 입력합니다. 문장 중간에 입력하는 것도 가능합니다.
수평선
---
- - -
***
* * *
문서 중간에 수평선을 입력하려면 간단히 ---를 입력합니다. 물론 몇 가지 다른 형태도 있으니 선호하는 방식을 써도 무관합니다.
목록
1. 1이 나옵니다.
2. 2가 나옵니다.
3. 3이 나옵니다.
3. 4가 나옵니다.
* 사과
* 배
* 감
* 귤
순서 있는 목록은 1. 2. 3. 등을 앞에 입력합니다. 이 때, 1. 1. 1.과 같이 입력해도 숫자는 올바르게 출력됩니다.
순서 없는 목록은 *를 앞에 입력하면 됩니다.
인용
답장
> 메일 1
> 메일 1
>
>> 메일 2
>> 메일 2
>>
>>> 메일 3
>>> 메일 3
>>>
>>>> 메일 4
>>>> 메일 4
>>>>
인용할 문단 앞에 >를 입력합니다. 만약 이메일처럼 다중 인용이 필요하다면 필요한만큼 >를 추가로 입력하면 됩니다.
링크
제 블로그는 [이 곳](https://jetalog.net)을 눌러 이동하실 수 있습니다.
[]괄호 안에 표시될 문구를, ()괄호 안에 연결될 페이지 주소를 입력하면 링크를 생성할 수 있습니다.
코드
Markdown 문법으로 HTML `<strong></strong>`과 같은 효과를 내려면 아래와 같이 작성합니다.
```
강조하려는 내용에 *이렇게* 표현해주세요.
```
문장 안에 코드를 강조하는 경우 ` 한 개를, 여러 줄에 걸쳐서 코드를 강조하는 경우에는 ``` 세 개를 써서 감싸줍니다.
활용 App
Markdown 문법은 지금 바로 써볼 수 있습니다.
Web
- Tistory: 에디터에 마크다운 모드가 있습니다.
- Editor.md: 실시간 미리보기를 지원하며, WYSIWYG 에디터를 통해 문법을 자동으로 입력해줍니다.
- Jekyll: Markdown 문법으로 포스팅합니다.
- StackEdit: WebApp 형태입니다. Google Drive, Dropbox 등의 클라우드 동기화를 지원합니다.
Windows
- HarooPad: 대표적인 Markdown 에디터입니다. 다양한 테마와 확장 문법을 지원합니다.
- MarkdownPad: 기본에 충실한 Markdown 에디터입니다.
MacOS
- Writed: 상당히 깔끔한 테마를 지원합니다.
- Bear: Markdown을 활용한 메모 App입니다. iOS용 App과의 동기화를 지원합니다.
참고 문서
[별별 웹 용어] 마크업(MarkUp)? 마크다운(MarkDown)?: https://blog.cordelia273.space/15
마크다운 - 위키백과, 우리 모두의 백과사전: https://ko.wikipedia.org/wiki/마크다운
마크다운 사용법 · GitHub: https://gist.github.com/ihoneymon/652be052a0727ad59601