최근에 깃허브 README도 쓰고, 주피터 노트북 안에서 보고서를 쓰다보면 마크다운(Markdown)을 정말 자주 쓰게 된다. 근데 문법을 알아도 막상 "결과가 어떻게 나오지?" 싶을 때가 있어서 이번엔 문법과 렌더링 결과를 정리해봤다. 헤더부터 표, 코드블록, 링크, 이미지까지 자주 쓰는 마크다운 문법을 전부 정리해보았으니 도움이 되기를!
📌 바로가기
1. 마크다운이란?
마크다운(Markdown)은 일반 텍스트에 간단한 기호를 붙여서 서식을 표현하는 경량 마크업 언어다. HTML처럼 복잡한 태그 없이도 제목, 굵기, 목록, 링크 등을 깔끔하게 표현할 수 있어서 개발자들 사이에서 특히 많이 쓰인다.
주로 쓰이는 곳은 이런 데들이다:
- 깃허브(GitHub) README.md 파일
- Jupyter Notebook, Jupyter Lab
- Notion, Obsidian 같은 노트 앱
- 개발 블로그, 기술 문서
파일 확장자는 .md 또는 .markdown을 쓴다. 이제 문법 하나씩 살펴보자.

2. 헤더 (Header)
# 기호의 개수로 제목의 크기를 정한다. # 하나가 가장 큰 제목(h1)이고 ###### 여섯 개까지 지원한다. # 뒤에 반드시 띄어쓰기를 해야 헤더로 인식된다는 점 주의.
| 문법 | 결과 |
| # 제목 1 | 제목 1 |
| ## 제목 2 | 제목 2 |
| ### 제목 3 | 제목 3 |
| #### 제목 4 | 제목 4 |
| ##### 제목 5 | 제목 5 |
| ###### 제목 6 | 제목 6 |
실제로 h1은 페이지 대제목, h2~h3는 섹션 구분, h4 이하는 잘 안 쓰는 편이다. README에서는 보통 ## 와 ### 조합을 가장 많이 쓴다.
3. 텍스트 강조 (Bold / Italic / 취소선)
텍스트에 굵기, 기울기, 취소선 효과를 줄 수 있다. 문법과 결과를 나란히 보면 바로 이해될 거다.
| 효과 | 문법 | 결과 |
| 굵게 | **텍스트** 또는 __텍스트__ | 텍스트 |
| 기울임 | *텍스트* 또는 _텍스트_ | 텍스트 |
| 굵게+기울임 | ***텍스트*** | 텍스트 |
| 취소선 | ~~텍스트~~ | |
| 인라인 코드 | `텍스트` | 텍스트 |
조합도 된다. 예를 들어 **~~취소선+굵게~~** 이렇게 쓰면 취소선+굵게 이렇게 나온다.
4. 목록 (List)
목록은 세 가지 종류가 있다. 순서 없는 목록, 순서 있는 목록, 체크박스 목록.
① 순서 없는 목록 (Unordered List)
| 문법 | 결과 |
|
- 사과 - 바나나 ◦ 바나나 하위 항목 ▪ 더 깊은 하위 항목 - 딸기 |
들여쓰기는 스페이스 2칸 또는 4칸으로 한다. - 대신 *, + 써도 결과는 동일하다.
② 순서 있는 목록 (Ordered List)
| 문법 | 결과 |
|
1. 첫 번째 2. 두 번째 3. 세 번째 1. 하위 항목 |
재미있는 건 숫자를 1. 1. 1. 이렇게 다 1로 써도 렌더링하면 자동으로 1, 2, 3으로 바뀐다. 항목 순서 바꿀 때 숫자 일일이 안 고쳐도 된다는 장점이 있다.
③ 체크박스 목록 (Task List)
| 문법 | 결과 |
|
☑ 블로그 글 작성 완료 ☑ 커밋 푸시 ☐ PR 리뷰 요청 ☐ 배포 확인 |
체크박스는 GitHub 이슈, PR, 프로젝트 보드에서 특히 유용하다. - [x]는 완료, - [ ]는 미완료. 대괄호 안 띄어쓰기 빠뜨리면 안 된다.

5. 링크 & 이미지
링크와 이미지 문법은 구조가 거의 같다. 이미지는 맨 앞에 느낌표(!)만 추가하면 된다고 기억하면 쉽다.
① 링크
| 문법 | 결과 |
| [구글](https://google.com) | 구글 |
| [구글](https://google.com "구글 홈페이지") | 구글 (hover 시 툴팁 표시) |
| https://google.com | https://google.com (자동 링크) |
| <https://google.com> | https://google.com (꺾쇠 링크) |
② 이미지
| 문법 | 설명 |
|  | 기본 이미지 삽입. 이미지 로드 실패 시 대체텍스트 표시 |
|  | hover 시 툴팁 표시 |
| [](링크URL) | 이미지에 링크 걸기 (클릭 시 이동) |
③ 참조형 링크
URL이 길거나 같은 링크를 여러 번 써야 할 때 유용하다. 본문에서 참조명을 쓰고, 링크 정의는 아래에 따로 모아서 관리할 수 있다.
| 문법 | 결과 |
|
구글 네이버 (정의 부분은 렌더링 시 보이지 않음) |
6. 코드 (Code)
코드를 표현하는 방법은 두 가지다. 문장 중간에 쓰는 인라인 코드와, 여러 줄을 묶는 코드 블록.
① 인라인 코드
| 문법 | 결과 |
| `print("Hello")`를 실행하면 | print("Hello")를 실행하면 |
| 변수 `count`에 1을 더한다 | 변수 count에 1을 더한다 |
② 코드 블록 (Fenced Code Block)
백틱 세 개(```) 뒤에 언어명을 붙이면 문법 강조(Syntax Highlighting)가 자동 적용된다.
| 문법 | 결과 (렌더링) |
|
|
|
|
자주 쓰는 언어 키워드는 이렇다: python, javascript, typescript, bash, sql, json, html, css, java, cpp 등.

7. 표 (Table)
마크다운 표는 | 파이프와 - 하이픈으로 만든다. 두 번째 줄의 콜론(:) 위치로 정렬 방향을 지정할 수 있다.
| 문법 | 결과 | |||||||||
|
|
| 정렬 | 문법 | 설명 |
| 왼쪽 | :--- | 기본값 (생략 가능) |
| 가운데 | :---: | 제목이나 상태값에 많이 씀 |
| 오른쪽 | ---: | 숫자, 금액 표현에 유용 |
표 직접 짜는 게 귀찮으면 👉 Markdown Tables Generator 사이트 쓰면 된다.
8. 인용구 (Blockquote)
> 기호로 들여쓰기된 인용 블록을 만들 수 있다. 중첩도 가능하고, 인용구 안에 다른 마크다운 문법도 쓸 수 있다.
| 문법 | 결과 |
|
이것은 인용구입니다. |
|
외부 인용내부 중첩 인용더 깊은 중첩 |
|
굵게도 되고 |
9. 수평선 & 줄바꿈 & 이스케이프
① 수평선 (Horizontal Rule)
| 문법 | 결과 |
| --- 또는 *** 또는 ___ |
주의할 점: ---는 바로 위 줄에 텍스트가 있으면 h2 헤더로 인식된다. 수평선으로 쓰려면 위에 빈 줄을 하나 넣어줘야 함.
② 줄바꿈
마크다운에서 엔터 한 번은 줄바꿈이 아니다. 같은 문단으로 인식된다. 줄을 바꾸려면 아래 방법 중 하나를 써야 한다.
| 방법 | 문법 | 결과 |
| 문단 나누기 | 빈 줄 한 줄 삽입 | 문단이 분리됨 (간격 생김) |
| 줄바꿈 (br) | 문장 끝에 스페이스 2칸 | 줄만 바뀜 (간격 없음) |
| HTML 직접 사용 | <br> 삽입 | 줄바꿈 (마크다운과 혼용 가능) |
③ 이스케이프 (Escape)
마크다운 문법으로 쓰이는 기호를 그냥 텍스트로 출력하고 싶으면 앞에 \(백슬래시)를 붙이면 된다.
| 문법 | 결과 |
| \*별표 그대로 출력\* | *별표 그대로 출력* |
| \# 해시 그대로 출력 | # 해시 그대로 출력 |
| \[대괄호\] | [대괄호] |
| \`백틱\` | `백틱` |
이스케이프 가능한 문자: \ ` * _ { } [ ] ( ) # + - . !
10. 마크다운 치트시트 (전체 요약)
지금까지 다룬 내용 전체를 한 표로 정리했다. 이 표 하나만 북마크해도 충분하다 ㅎㅎ
| 기능 | 문법 | 결과 / 비고 |
| h1 헤더 | # 제목 | 제목 |
| h2 헤더 | ## 제목 | 제목 |
| h3 헤더 | ### 제목 | 제목 |
| 굵게 | **텍스트** | 텍스트 |
| 기울임 | *텍스트* | 텍스트 |
| 취소선 | ~~텍스트~~ | |
| 순서없는 목록 | - 항목 | • 항목 (*, + 도 가능) |
| 순서있는 목록 | 1. 항목 | 1. 항목 (숫자 자동 정렬) |
| 체크박스 | - [x] / - [ ] | ☑ / ☐ |
| 링크 | [텍스트](URL) | 텍스트 |
| 이미지 |  | 링크 앞에 ! 추가 |
| 인라인 코드 | `코드` | 코드 |
| 코드 블록 | ```언어명 | 문법 강조 적용됨 |
| 인용구 | > 텍스트 | 텍스트 |
| 수평선 | --- | ――――――――― |
| 표 | | 헤더 | 헤더 | | :---: 로 정렬 방향 지정 |
| 이스케이프 | \기호 | 기호 앞에 \ 붙이기 |
+ 사용 예시
Jupyter Notebook 안에서 이렇게 코드 정리할 때에 유용하다.


마크다운은 한 번 손에 익으면 HTML 없이도 빠르게 깔끔한 문서를 만들 수 있는 강력한 도구다. 특히 깃허브 README, 노션, 개발 블로그를 자주 쓴다면 오늘 정리한 내용 정도는 외워두는 게 확실히 생산성에 도움이 된다. (쓰다보면 손에 자연스럽게 익는다ㅎㅎ)
'etc.' 카테고리의 다른 글
| [MacOS] 맥북 처음이라면 필수! 단축키 & 터미널 명령어 모음 ⌨️ (맥북 입문자 완전정복) (0) | 2026.03.24 |
|---|---|
| [Tistory] 티스토리 블로그에 수식 넣기 🧮 (MathJax/LaTeX 수식 삽입 완벽 가이드) (0) | 2026.03.14 |
| [Tistory] 티스토리 사이드바 꾸미기 🎨 (커스텀 배너/위젯 추가하기 + 코드 공유) (0) | 2026.03.14 |
| 원문자·로마숫자 특수기호 복사 🔢 [①②③ 동그라미 숫자 모음/특수문자 입력 단축키/체크박스/화살표/연산자/단위기호 모음] (0) | 2026.03.09 |