마크다운 문법 치트시트
마지막 업데이트
제목
# 기호 뒤에 공백을 한 칸 넣으세요. 기호의 개수가 1부터 6까지 수준을 정합니다.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 제목 1 | # Page title | 최상위 제목, <h1> |
| 제목 2 | ## Section | 섹션 제목, <h2> |
| 제목 3 | ### Subsection | 하위 섹션 제목, <h3> |
| 제목 4~6 | #### Level 4
##### Level 5
###### Level 6 | <h4>, <h5>, <h6> |
| 제목 1, 다른 방식 | Page title
========== | <h1>, # Page title과 같음 |
| 제목 2, 다른 방식 | Section
------- | <h2>, ## Section과 같음 |
| 닫는 # 기호 | ## Section ## | <h2>Section</h2>. 뒤쪽 # 기호는 무시됨 |
| 공백 누락 | #Not a heading | 평범한 문단. # 뒤의 공백은 필수 |
굵게, 기울임, 취소선
별표는 단어 안에서도 어디서나 동작합니다. 밑줄은 단어 경계에서만 동작하므로 snake_case는 입력한 그대로 남습니다.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 굵게 | **bold text** | 굵은 글씨, <strong>bold text</strong> |
| 굵게, 밑줄 기호 | __bold text__ | 굵은 글씨, 위와 같음 |
| 기울임 | *italic text* | 기울임꼴, <em>italic text</em> |
| 기울임, 밑줄 기호 | _italic text_ | 기울임꼴, 위와 같음 |
| 굵게 + 기울임 | ***bold and italic*** | <em><strong>bold and italic</strong></em> |
| 단어 안의 굵게 | un**believ**able | 단어의 가운데 부분만 굵게 표시 |
| 단어 안의 밑줄 기호 | snake_case_name | 기울임 없이 평범한 텍스트 |
| 취소선 (GFM) | ~~no longer true~~ | 가로줄이 그어진 텍스트, <del>no longer true</del> |
| 밑줄 | <ins>underlined</ins> | 밑줄 친 텍스트. 마크다운에는 밑줄 문법이 없어서 HTML을 씀 |
| 형광펜 | <mark>highlighted</mark> | 사이트가 <mark> 태그를 허용하면 강조 표시된 텍스트. 마크다운에는 형광펜 문법이 없음 |
줄바꿈과 문단
문단 안에서 Enter를 한 번 누르면 출력에서는 새 줄이 시작되지 않습니다. 대신 아래 방법 중 하나를 쓰세요.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 새 문단 | First paragraph.
Second paragraph. | 문단 두 개. 빈 줄이 둘을 나눔 |
| 줄바꿈: 공백 두 칸 | Roses are red,
Violets are blue. | red, 뒤에 <br>이 있는 문단 하나. 첫 줄이 눈에 보이지 않는 공백 두 칸으로 끝남 |
| 줄바꿈: 백슬래시 | Roses are red,\
Violets are blue. | 같은 <br>을 눈에 보이는 기호로. CommonMark와 GitHub에서 동작 |
| 줄바꿈: HTML | Roses are red,<br>Violets are blue. | 같은 <br>. 표 셀 안에서도 동작 |
| 줄바꿈 한 번 | Roses are red,
Violets are blue. | 한 줄로 표시: Roses are red, Violets are blue. GitHub 이슈와 댓글에서는 줄바꿈이 유지되지만 .md 파일에서는 유지되지 않음 |
| 여러 개의 빈 줄 | One.
Two. | 빈 줄 하나와 같음. 간격을 더 두려면 <br>을 한 줄에 따로 쓰기 |
목록
중첩 항목은 위 항목의 텍스트와 줄이 맞도록 들여 쓰세요. - 아래는 공백 2칸, 1. 아래는 공백 3칸입니다.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 글머리 기호 목록 | - Apples
- Pears
- Plums | 글머리 기호 목록, <li> 세 개가 든 <ul> |
| 다른 글머리 기호 | * Apples
+ Pears | *와 +도 글머리 기호가 됨. 기호를 바꾸면 새 목록이 시작됨 |
| 번호 목록 | 1. Install
2. Configure
3. Run | 번호 목록, <ol> |
| 번호 대충 쓰기 | 1. Install
1. Configure
1. Run | 그래도 1, 2, 3으로 번호가 매겨짐. 첫 번째 숫자만 의미가 있음 |
| 특정 숫자부터 시작 | 7. Seventh
8. Eighth | <ol start="7">, 7부터 번호가 매겨짐 |
| 중첩 목록 | - Fruit
- Apple
- Pear
- Vegetables | 첫 번째 항목 안의 목록 |
| 번호 목록 안의 중첩 | 1. Download
- Windows
- macOS
2. Install | 1단계 안의 글머리 기호 목록, 공백 3칸 들여쓰기 |
| 항목 안의 문단 | - First item
More about the first item.
- Second item | 첫 번째 항목 안의 문단 두 개 |
| 항목 안의 코드 | 1. Run this:
```bash
npm install
```
2. Start the app | 1단계 안의 코드 블록, 항목의 텍스트에 맞춰 들여 씀 |
작업 목록 (체크박스)
GitHub Flavored Markdown 확장 기능입니다. [ ]나 [x]로 시작하는 목록 항목은 체크박스가 됩니다.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 빈 체크박스 | - [ ] Write tests | 체크되지 않은 체크박스 |
| 체크된 체크박스 | - [x] Write tests | 체크된 체크박스. [X]도 동작 |
| 체크리스트 | - [x] Draft
- [ ] Review
- [ ] Publish | 체크된 상자 하나와 빈 상자 두 개. GitHub 이슈와 풀 리퀘스트에서는 클릭해서 체크할 수 있음 |
| 중첩 작업 | - [ ] Release
- [x] Tag the commit
- [ ] Write the notes | 첫 번째 상자 아래의 하위 작업 두 개 |
| 공백 누락 | - [] Write tests | [] Write tests로 보이는 평범한 글머리 기호. 대괄호 안에 공백이나 x가 필요함 |
링크
링크 텍스트는 대괄호 안에, 주소는 그 바로 뒤 괄호 안에 쓰고, 둘 사이에는 공백을 두지 않습니다.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 인라인 링크 | [Coddy](https://coddy.tech) | <a href="https://coddy.tech">Coddy</a> |
| 제목이 있는 링크 | [Coddy](https://coddy.tech "Learn to code") | 같은 링크. 마우스를 올리면 제목이 툴팁으로 표시됨 |
| 꺾쇠괄호 안의 URL | <https://coddy.tech> | URL 자체가 링크로 표시됨 |
| URL 그대로 쓰기 (GFM) | https://coddy.tech | GitHub와 다른 GFM 사이트에서는 링크가 되고, www. 주소도 링크가 됨. 엄격한 CommonMark에서는 평범한 텍스트 |
| 이메일 링크 | <hello@example.com> | mailto: 링크 |
| 참조 링크 | Read the [docs][1].
[1]: https://example.com/docs | docs가 URL로 연결됨. [1]: 줄은 표시되지 않음 |
| 축약 참조 | See [GitHub].
[GitHub]: https://github.com | GitHub가 URL로 연결됨 |
| 상대 링크 | [Install guide](docs/install.md) | 이 파일을 기준으로 한 다른 파일로의 링크. GitHub에서는 저장소 안의 파일이 열림 |
| 제목으로 가는 링크 | [Jump to setup](#getting-started) | 같은 페이지의 ## Getting Started로 스크롤됨 |
| 제목 ID | ## Getting Started! | GitHub에서 ID getting-started를 받음: 소문자로 바뀌고, 공백은 하이픈이 되고, -와 _를 제외한 문장 부호는 제거됨 |
| 다른 파일의 제목 | [Requirements](docs/install.md#requirements) | 그 파일의 해당 제목 위치를 엶 |
| URL 안의 공백 | [Report](my%20report.pdf) | 공백을 %20으로 쓰거나, URL을 꺾쇠괄호로 감싸기: [Report](<my report.pdf>) |
| 새 탭에서 열기 | <a href="https://coddy.tech" target="_blank">Coddy</a> | 마크다운에는 이 문법이 없음. 사이트가 target 속성을 유지하는 곳에서는 HTML이 동작함 |
이미지
이미지는 앞에 !가 붙은 링크입니다. 대괄호 안의 텍스트는 대체 텍스트가 되고, 스크린 리더가 이를 소리 내어 읽습니다.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 이미지 |  | <img src="cat.png" alt="A cat asleep on a sofa"> |
| 제목이 있는 이미지 |  | 같은 이미지에 마우스를 올리면 툴팁이 표시됨 |
| URL의 이미지 |  | 웹에서 이미지를 불러옴 |
| 링크가 걸린 이미지 | [](https://coddy.tech) | 클릭하면 링크가 열리는 이미지 |
| 참조 이미지 | ![Logo][logo]
[logo]: images/logo.png | 인라인 이미지와 같고, URL은 아래에 한 번 정의함 |
| 이미지 크기 | <img src="logo.png" alt="Logo" width="200"> | 너비 200픽셀의 이미지. 순수 마크다운에는 크기 문법이 없어서 HTML <img> 태그를 씀 |
| 가운데 정렬한 이미지 | <p align="center">
<img src="logo.png" alt="Logo" width="200">
</p> | 가운데 정렬된 이미지. GitHub README 파일에서 흔히 볼 수 있음 |
코드와 코드 블록
백틱은 줄 안의 코드를, 백틱 세 개로 된 펜스는 블록을 표시합니다. 코드 안의 내용은 서식이 적용되지 않습니다.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 인라인 코드 | Run `npm install` first. | 고정폭 글꼴의 npm install, <code>로 표시 |
| 코드 안의 백틱 | ``Use `git` here`` | 코드 Use `git` here. 코드에 든 것보다 많은 백틱으로 감싸기 |
| 코드 블록 | ```
npm install
npm run dev
``` | 줄바꿈이 유지되는 블록, <pre><code> |
| 구문 강조 | ```python
def greet(name):
return f"Hello, {name}"
``` | 구문에 색이 입혀진 Python 블록. 흔히 쓰는 이름: js, ts, python, bash, json, html, css, sql |
| 물결표 펜스 | ~~~js
console.log("hi");
~~~ | 백틱 펜스와 같음 |
| 들여쓰기 코드 | const total = 42; | 빈 줄 다음에 공백 4칸으로 들여 써서 만든 코드 블록 |
| diff 블록 | ```diff
- const x = 1;
+ const x = 2;
``` | GitHub에서 삭제된 줄은 빨간색, 추가된 줄은 초록색 |
| 블록 안의 펜스 | ````markdown
```js
let a = 1;
```
```` | 안쪽 펜스를 텍스트로 보여주는 블록. 바깥쪽 펜스에 안쪽보다 많은 백틱이 필요함 |
표
GitHub Flavored Markdown 확장 기능입니다. 두 번째 줄인 구분 행이 첫 줄을 헤더로 만듭니다. 구분 행의 셀 개수가 헤더와 같아야 하며, 다르면 표가 만들어지지 않습니다.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 표 | | Name | Role |
| ----- | ------ |
| Ada | Admin |
| Linus | Editor | | 헤더 행과 행 두 개가 있는 표 |
| 열 정렬 | | Left | Center | Right |
| :--- | :----: | ----: |
| a | b | c | | 콜론이 정렬을 정함: 왼쪽, 가운데, 오른쪽 |
| 바깥쪽 파이프 생략 | Name | Role
--- | ---
Ada | Admin | 같은 표. 줄 맨 앞과 맨 끝의 파이프는 생략할 수 있음 |
| 열 너비 | | a | b |
|---|---|
| 1 | 2 | | 너비는 내용에 따라 정해짐. 하이픈 개수는 상관없고, 파이프를 맞춰 정렬할 필요도 없음 |
| 셀 안의 서식 | | Command | Does |
| --- | --- |
| `git status` | Shows **changed** files | | 코드, 굵게, 링크, 이미지 모두 셀 안에서 동작 |
| 셀 안의 파이프 | | Operator | Meaning |
| --- | --- |
| `a \| b` | a or b | | 셀에 a | b가 표시됨. 코드 안에서도 파이프는 \|로 이스케이프 |
| 셀 안의 줄바꿈 | | Step | Notes |
| --- | --- |
| 1 | First line<br>Second line | | 한 셀 안에 두 줄. 실제 줄바꿈을 넣으면 행이 끝남 |
| 셀 병합 | <td colspan="2">Both columns</td> | 마크다운 표는 셀을 병합할 수 없음. colspan이나 rowspan을 써서 HTML로 표를 작성 |
인용문
각 줄을 >로 시작하세요. 인용문 안에는 다른 어떤 마크다운이든 넣을 수 있습니다.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 인용문 | > Simple is better than complex. | 들여 쓴 인용문, <blockquote> |
| 여러 문단 | > First paragraph.
>
> Second paragraph. | 문단 두 개가 든 인용문 하나. >만 있는 줄이 둘을 한데 묶음 |
| 중첩 인용문 | > The reply
>> The original message | 인용문 안의 인용문 |
| 다른 요소 넣기 | > #### Note
> - Back up first
> - Then upgrade | 인용문 안의 제목과 목록 |
| 알림 (GitHub) | > [!NOTE]
> Requires Node 20 or later. | GitHub에서 색이 입혀진 Note 상자. 다른 종류는 [!TIP], [!IMPORTANT], [!WARNING], [!CAUTION] |
수평선
하이픈, 별표, 밑줄 기호 중 하나를 세 개 이상 한 줄에 단독으로 쓰면 페이지를 가로지르는 선이 그려집니다.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 수평선 | --- | 가로선, <hr> |
| 다른 형태 | ***
___ | 수평선 두 개 더 |
| 텍스트 뒤의 수평선 | Some text
--- | 문단 다음에 수평선. 빈 줄을 유지할 것 |
| 빈 줄 누락 | Some text
--- | 수평선이 아니라 제목 2: 텍스트 줄 아래의 ---는 그 줄에 밑줄을 긋는 것으로 읽힘 |
각주
GitHub, GitLab, 그리고 많은 정적 사이트 생성기에서 지원합니다. 엄격한 CommonMark에는 각주가 없습니다.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 각주 | Markdown dates from 2004.[^1]
[^1]: John Gruber created it, with Aaron Swartz. | 주석으로 연결되는 위 첨자 1, 주석은 페이지 맨 아래에 나열됨 |
| 이름 있는 각주 | See the spec.[^spec]
[^spec]: https://spec.commonmark.org | 레이블은 단어여도 되지만, 주석 번호는 여전히 사용된 순서대로 1, 2, 3 |
| 정의하는 위치 | [^1]: The text of the note. | 정의는 파일의 어디에 두어도 됨. 렌더링은 항상 맨 끝에 |
문자 이스케이프
문장 부호 앞에 백슬래시를 붙이면 서식 대신 그 문자 자체가 출력됩니다.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 별표 그대로 | \*not italic\* | 별표가 그대로 있는 평범한 텍스트: *not italic* |
| # 그대로 | \# Not a heading | #으로 시작하는 문단 |
| 숫자와 마침표 | 2024\. A good year. | 2024부터 시작하는 목록이 아닌 문단 |
| 대괄호 그대로 | \[not a link\](page.md) | 대괄호와 괄호가 입력한 그대로 표시됨 |
| 백틱 그대로 | \` | 백틱 하나 |
| 백슬래시 그대로 | \\ | 백슬래시 하나 |
| 이스케이프할 수 있는 문자 | \ ` * _ {} [] () <> # + - . ! | | 모든 ASCII 문장 부호. 글자나 숫자 앞의 백슬래시는 백슬래시로 남음 |
| HTML 엔티티 | © 2026 & <div> | © 2026 & <div>, 텍스트로 표시 |
| 코드 안에서는 이스케이프 없음 | `*stars*` | 코드 *stars*가 입력한 그대로 표시. 코드 안에서 백슬래시는 평범한 문자 |
마크다운 안의 HTML
대부분의 렌더러는 HTML을 그대로 통과시키므로, 마크다운에 문법이 없는 것은 태그로 해결할 수 있습니다. GitHub는 <script>, <style>, <iframe>, style 속성 같은 안전하지 않은 HTML을 제거합니다.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 키보드 키 | Press <kbd>Ctrl</kbd> + <kbd>C</kbd> | Ctrl과 C가 키 모양으로 표시됨 |
| 아래 첨자와 위 첨자 | H<sub>2</sub>O and x<sup>2</sup> | H₂O와 x² |
| 접을 수 있는 섹션 | <details>
<summary>Show the answer</summary>
The answer is **42**.
</details> | 클릭하면 열리는 섹션. 빈 줄이 있어야 안쪽의 마크다운이 렌더링됨 |
| HTML 블록 안의 마크다운 | <div>
**not bold**
</div> | **not bold**가 입력한 그대로 표시. 빈 줄이 블록을 끝내기 전까지 HTML 블록 안의 마크다운은 해석되지 않음 |
| 색 있는 텍스트 | <span style="color: red">red</span> | 인라인 스타일을 허용하는 사이트에서는 빨간 텍스트. GitHub는 style 속성을 제거함 |
주석
마크다운에는 주석 문법이 없습니다. 렌더링된 페이지에 텍스트가 나오지 않게 하는 요령이 두 가지 있습니다.
| 요소 | 마크다운 | 결과 |
|---|---|---|
| 숨긴 주석 | [//]: # (This line is never shown) | 아무것도 표시되지 않음. 이 줄은 어떤 링크도 쓰지 않는 링크 정의라서 HTML에 전혀 도달하지 않음 |
| 다른 형태 | [comment]: <> (Also hidden) | 같은 요령으로 아무것도 표시되지 않음 |
| HTML 주석 | <!-- TODO: add screenshots --> | 페이지에는 아무것도 표시되지 않지만 주석은 HTML 소스에 남음 |
| 여러 줄 주석 | <!--
This whole block
is hidden
--> | 페이지에는 아무것도 표시되지 않음 |
| 위치 | Some text.
[//]: # (comment)
More text. | 문단 두 개. 주석 줄 앞에는 빈 줄이 있어야 하며, 없으면 텍스트로 표시됨 |
GitHub Flavored Markdown과 GitHub 추가 기능
GitHub Flavored Markdown(GFM)은 CommonMark에 표, 작업 목록, 취소선, URL 자동 링크를 더한 것입니다. GitHub는 그 위에 기능을 더 얹습니다.
| 기능 | 마크다운 | 동작하는 곳 |
|---|---|---|
| 표 | | a | b |
| --- | --- |
| 1 | 2 | | GFM: GitHub, GitLab, 대부분의 문서 도구 |
| 작업 목록 | - [x] Done | GFM |
| 취소선 | ~~text~~ | GFM |
| URL 자동 링크 | www.coddy.tech | GFM |
| 언어를 지정한 코드 | ```js
let a = 1;
``` | CommonMark와 GFM. 색은 사이트가 정함 |
| 각주 | Text.[^1]
[^1]: Note. | GitHub와 GitLab. 단, GFM 명세에는 없음 |
| 이모지 | :rocket: :tada: | GitHub와 GitLab이 단축 코드를 이모지로 바꿈 |
| 멘션 | @octocat | GitHub: 사용자에게 링크를 걸고 알림을 보냄 |
| 이슈 링크 | #123 | GitHub: 같은 저장소의 이슈나 풀 리퀘스트 123으로 연결 |
| 다이어그램 | ```mermaid
graph LR
A --> B
``` | GitHub와 GitLab이 Mermaid 다이어그램을 그림 |
| 수식 | $E = mc^2$
$$
\sum_{i=1}^{n} i
$$ | GitHub가 LaTeX 수식을 렌더링함. 인라인은 $ 기호 사이에, 블록은 $$ 줄 사이에 |
모든 마크다운 문법을 한 페이지에, 각각이 어떻게 바뀌는지와 함께 모았습니다. 이 마크다운 치트시트는 기본 문법(제목, 강조, 줄바꿈, 목록, 링크, 이미지, 코드, 인용문)과 GitHub Flavored Markdown의 추가 기능(정렬이 있는 표, 작업 목록, 취소선, URL 자동 링크, 각주), 그리고 이스케이프, HTML, 주석까지 다룹니다.
예제는 CommonMark와 GitHub Flavored Markdown을 따릅니다. GitHub, GitLab, 그리고 대부분의 문서 도구가 기반으로 삼는 규칙입니다. 사이트마다 동작이 다른 경우에는 해당 행에 적어 두었습니다. 입력하면서 예제가 렌더링되는 모습을 보려면 마크다운 에디터에 붙여 넣으세요.
마크다운 치트시트 FAQ
마크다운에서 표는 어떻게 만드나요?
| Name | Role |, | --- | --- |, | Ada | Admin |. 구분 행의 콜론이 열을 정렬합니다: :---는 왼쪽, :---:는 가운데, ---:는 오른쪽. 표는 GitHub Flavored Markdown 기능이라서 GitHub, GitLab, 대부분의 문서 도구에서는 동작하지만 엄격한 CommonMark에서는 동작하지 않습니다.마크다운에서 줄바꿈은 어떻게 하나요?
\)를 두거나 <br>을 쓰세요. 새 문단을 시작하려면 빈 줄을 하나 두세요. GitHub 이슈와 댓글은 예외로, 거기서는 줄바꿈 한 번이 이미 줄바꿈으로 표시됩니다.마크다운에서 주석은 어떻게 쓰나요?
[//]: # (your comment)는 아무것도 쓰지 않는 링크 정의라서 페이지에도 HTML에도 나타나지 않습니다. HTML 주석 <!-- your comment -->도 페이지에는 보이지 않지만 HTML 소스에 남기 때문에, 소스를 보는 사람은 누구나 읽을 수 있습니다.마크다운에서 코드 블록은 어떻게 만드나요?
```python처럼 여는 백틱 뒤에 언어 이름을 붙이면 구문 강조가 적용됩니다. 문장 안의 코드는 백틱 하나로 감싸세요: `npm install`.마크다운에서 체크박스는 어떻게 넣나요?
[ ]로, 체크된 상자면 [x]로 시작하세요: - [ ] Review 또는 - [x] Draft. 빈 대괄호 안의 공백은 지우지 마세요. 체크박스는 GitHub Flavored Markdown의 일부이고, GitHub 이슈와 풀 리퀘스트에서는 클릭해서 체크할 수 있습니다.마크다운에서 이미지 크기는 어떻게 바꾸나요?
는 항상 이미지를 원래 크기로 보여줍니다. 대신 <img src="image.png" alt="alt text" width="300"> 같은 HTML 태그를 쓰세요. GitHub와 대부분의 렌더러가 받아들입니다. 비율을 유지하려면 너비나 높이 중 하나만 지정하세요.마크다운에서 제목으로 가는 링크는 어떻게 거나요?
#와 함께 제목의 ID로 링크하세요: [Setup](#getting-started)은 ## Getting Started로 이동합니다. GitHub는 제목 텍스트를 소문자로 바꾸고, 공백을 하이픈으로 바꾸고, 하이픈과 밑줄 기호를 제외한 문장 부호를 없애서 ID를 만듭니다. 다른 파일의 제목이라면 파일 이름 뒤에 ID를 붙이세요: [Setup](docs/install.md#getting-started)..md 파일이란 무엇인가요?
.md와 .markdown이고, README.md는 GitHub가 저장소 첫 화면에 보여주는 파일입니다. 어떤 텍스트 편집기로도 열 수 있고, GitHub, 문서 사이트, 마크다운 뷰어는 서식이 적용된 텍스트로 렌더링합니다. 편집하면서 렌더링된 모습을 보려면 마크다운 에디터에 붙여 넣으세요.