마크다운 완벽가이드 2편 - 확장 문법
마크다운 완벽가이드 2편 - 확장 문법
요약
이 글의 핵심 3가지
- 확장 문법의 본질: 기본 문법을 넘어서는 테이블, 코드 블록, 각주 등 고급 기능
- 실용성: GitHub, 옵시디언, Astro 등에서 바로 사용 가능한 실전 문법
- 호환성 주의: 모든 에디터가 지원하지 않으므로 확인 필요
읽는 시간: 20분 | 난이도: 초급
출처
이 글은 다음 자료를 바탕으로 작성되었습니다.
- Markdown Guide - Extended Syntax - 확장 문법 완전 가이드
대상 독자: 기본 문법을 익히고 더 강력한 마크다운 기능을 배우고 싶은 분
선수 학습: 마크다운 완벽가이드 1편 - 기초
확장 문법이란?
확장 문법은 기본 마크다운에 없는 고급 기능을 제공합니다.
John Gruber가 만든 기본 문법만으로는 부족한 부분이 있었습니다.
그래서 여러 개발자가 테이블, 코드 블록, 각주 같은 기능을 추가했습니다.
주의: 모든 마크다운 애플리케이션이 확장 문법을 지원하는 건 아닙니다. 사용 전 호환성을 확인하세요.
주요 확장 문법 지원:
- GitHub Flavored Markdown (GFM): GitHub, Discord, Reddit
- CommonMark: 표준화된 마크다운 스펙
- Markdown Extra: PHP 기반 확장
- MultiMarkdown: 다양한 출력 형식 지원
Astro와 옵시디언은 대부분의 확장 문법을 지원합니다.
1. Tables (테이블)
테이블로 데이터를 정리할 수 있습니다.
기본 문법
하이픈(---)으로 헤더를 만들고, 파이프(|)로 열을 구분합니다.
| 항목 | 설명 || -------- | --------------------- || 마크다운 | 가벼운 마크업 언어 || HTML | 웹 페이지 마크업 언어 |결과:
| 항목 | 설명 |
|---|---|
| 마크다운 | 가벼운 마크업 언어 |
| HTML | 웹 페이지 마크업 언어 |
정렬
콜론(:)으로 정렬을 지정합니다.
| 좌측 정렬 | 중앙 정렬 | 우측 정렬 || :-------- | :-------: | --------: || 왼쪽 | 가운데 | 오른쪽 || Left | Center | Right |결과:
| 좌측 정렬 | 중앙 정렬 | 우측 정렬 |
|---|---|---|
| 왼쪽 | 가운데 | 오른쪽 |
| Left | Center | Right |
정렬 규칙:
| 문법 | 정렬 |
|---|---|
:--- | 좌측 정렬 (기본값) |
:---: | 중앙 정렬 |
---: | 우측 정렬 |
테이블 안에 서식 추가
| 기능 | 문법 | 예시 || ------ | --------------- | ---------------------------- || 굵게 | `**텍스트**` | **굵게** || 기울임 | `*텍스트*` | _기울임_ || 코드 | `` `코드` `` | `console.log()` || 링크 | `[텍스트](URL)` | [Google](https://google.com) |결과:
| 기능 | 문법 | 예시 |
|---|---|---|
| 굵게 | **텍스트** | 굵게 |
| 기울임 | *텍스트* | 기울임 |
| 코드 | `코드` | console.log() |
| 링크 | [텍스트](URL) |
제약사항:
테이블 안에서는 다음 요소를 사용할 수 없습니다.
- 제목 (
#) - 인용구 (
>) - 목록 (
-,1.) - 수평선 (
---) - 이미지 (
![]()
2. Fenced Code Blocks (펜스 코드 블록)
기본 문법의 4칸 들여쓰기 대신, 백틱 3개로 코드 블록을 만들 수 있습니다.
기본 문법
```function hello() { console.log('Hello, World!');}```결과:
function hello() { console.log('Hello, World!');}장점:
- 들여쓰기 불필요
- 언어 지정 가능 (문법 하이라이팅)
- 복사-붙여넣기 편리
문법 하이라이팅
백틱 다음에 언어명을 지정하면 색상 강조가 됩니다.
```javascriptfunction greet(name) { return `Hello, ${name}!`;}```결과:
function greet(name) { return `Hello, ${name}!`;}지원 언어 예시:
| 언어 | 키워드 |
|---|---|
| JavaScript | javascript, js |
| TypeScript | typescript, ts |
| Python | python, py |
| Java | java |
| C++ | cpp, c++ |
| HTML | html |
| CSS | css |
| JSON | json |
| Markdown | markdown, md |
| Bash | bash, shell |
여러 예시
Python 코드:
```pythondef factorial(n): if n == 0: return 1 return n * factorial(n - 1)```결과:
def factorial(n): if n == 0: return 1 return n * factorial(n - 1)JSON 데이터:
```json{ "name": "마크다운", "version": "1.0.0", "description": "가벼운 마크업 언어"}```결과:
{ "name": "마크다운", "version": "1.0.0", "description": "가벼운 마크업 언어"}3. Footnotes (각주)
참고 자료나 추가 설명을 각주로 달 수 있습니다.
기본 문법
마크다운은 2004년 John Gruber가 만들었습니다.[^1]
[^1]: https://daringfireball.net/projects/markdown/결과:
마크다운은 2004년 John Gruber가 만들었습니다.1
여러 각주
마크다운[^markdown]은 HTML[^html]로 변환됩니다.
[^markdown]: Markdown - 가벼운 마크업 언어
[^html]: HyperText Markup Language특징:
- 식별자는 숫자 또는 단어 가능
- 공백, 탭 사용 불가
- 자동으로 순차 번호로 변환됨
4. Heading IDs (제목 ID)
제목에 사용자 정의 ID를 추가할 수 있습니다.
기본 문법
### 제목 {#custom-id}링크 연결
[이 제목으로 이동](#custom-id)사용 예시:
## 설치 방법 {#installation}
설치는 다음과 같습니다...
---
자세한 내용은 [설치 방법](#installation)을 참고하세요.외부 링크:
https://example.com/docs#installation5. Definition Lists (정의 목록)
용어와 정의를 작성할 수 있습니다.
기본 문법
마크다운: 읽기 쉽고 쓰기 쉬운 문서 작성 문법
HTML: 웹 페이지를 만드는 마크업 언어여러 정의
마크다운: 가벼운 마크업 언어: 2004년 John Gruber가 만듦: GitHub, Reddit 등에서 사용참고: 모든 에디터가 정의 목록을 지원하는 건 아닙니다.
6. Strikethrough (취소선)
텍스트에 취소선을 그을 수 있습니다.
기본 문법
~~취소된 텍스트~~결과: 취소된 텍스트
사용 예시
- ~~할 일 1~~ (완료)- ~~할 일 2~~ (완료)- 할 일 3 (진행 중)결과:
할 일 1(완료)할 일 2(완료)- 할 일 3 (진행 중)
7. Task Lists (체크리스트)
할 일 목록을 만들 수 있습니다.
기본 문법
- [x] 마크다운 기본 문법 익히기- [x] 확장 문법 배우기- [ ] Astro 블로그 포스팅하기- [ ] 옵시디언 노트 정리하기결과:
- 마크다운 기본 문법 익히기
- 확장 문법 배우기
- Astro 블로그 포스팅하기
- 옵시디언 노트 정리하기
체크 표시:
[ ]: 미완료[x]: 완료
중첩 체크리스트
- [x] 프로젝트 시작 - [x] 요구사항 정의 - [x] 디자인 작성 - [ ] 개발 - [x] 프론트엔드 - [ ] 백엔드결과:
- 프로젝트 시작
- 요구사항 정의
- 디자인 작성
- 개발
- 프론트엔드
- 백엔드
8. Emoji (이모지)
이모지를 텍스트에 추가할 수 있습니다.
방법 1: 직접 복사-붙여넣기
😀 😃 😄 😁 😆 😅🎉 🎊 ✨ 🎈 🎁👍 👎 ✅ ❌ 💡결과:
😀 😃 😄 😁 😆 😅
🎉 🎊 ✨ 🎈 🎁
👍 👎 ✅ ❌ 💡
방법 2: 이모지 단축코드
:smile: :tada: :rocket: :fire: :heart:참고: 단축코드는 에디터마다 다를 수 있습니다. GitHub, Slack, Discord 등에서 사용 가능합니다.
자주 쓰는 이모지 단축코드:
| 이모지 | 단축코드 | 의미 |
|---|---|---|
| 😀 | :smile: | 웃음 |
| 🎉 | :tada: | 축하 |
| 🚀 | :rocket: | 로켓 |
| 🔥 | :fire: | 불 |
| ❤️ | :heart: | 하트 |
| 💡 | :bulb: | 전구 |
| ✅ | :white_check_mark: | 체크 |
| ❌ | :x: | X 표시 |
9. Highlight (하이라이트)
텍스트를 형광펜처럼 강조할 수 있습니다.
기본 문법
==강조할 텍스트==HTML 사용
<mark>강조할 텍스트</mark>참고: == 문법은 일부 에디터만 지원합니다. HTML <mark> 태그가 더 안전합니다.
10. Subscript & Superscript (아래/위 첨자)
수식이나 화학식에 사용합니다.
Subscript (아래 첨자)
H~2~O결과: H2O
HTML 사용:
H<sub>2</sub>O결과: H2O
Superscript (위 첨자)
X^2^결과: X2
HTML 사용:
X<sup>2</sup>결과: X2
참고: ~ 와 ^ 문법은 일부 에디터만 지원합니다. HTML 태그가 더 안전합니다.
11. Automatic URL Linking (자동 URL 링크)
URL을 자동으로 링크로 변환합니다.
기본 동작
https://www.markdownguide.org결과: https://www.markdownguide.org
대부분의 마크다운 프로세서가 자동으로 링크로 변환합니다.
자동 링크 비활성화
백틱으로 감싸면 링크가 되지 않습니다.
`https://www.markdownguide.org`결과: https://www.markdownguide.org
실전 예제
GitHub README 스타일
# 프로젝트 이름
## 기능
- [x] 사용자 인증- [x] 데이터베이스 연동- [ ] API 개발- [ ] 프론트엔드 UI
## 기술 스택
| 분류 | 기술 || -------- | ----------------- || Frontend | React, TypeScript || Backend | Node.js, Express || Database | PostgreSQL |
## 설치 방법
\`\`\`bashnpm installnpm run dev\`\`\`
## 라이선스
MIT License[^1]
[^1]: https://opensource.org/licenses/MITAstro 블로그 포스트
---title: "마크다운 확장 문법 실전 활용"published: 2025-12-31tags: ["마크다운", "블로그"]---
# 마크다운 확장 문법 실전 활용
## 주요 기능 비교
| 기능 | 기본 문법 | 확장 문법 || :--------: | :-------: | :-------: || 테이블 | ❌ | ✅ || 코드 블록 | ⚠️ | ✅ || 체크리스트 | ❌ | ✅ |
## 코드 예시
\`\`\`typescriptinterface User {name: string;email: string;}\`\`\`
## 참고 사항
확장 문법은 ==매우 유용==합니다.[^note]
[^note]: 모든 에디터가 지원하는 건 아닙니다.옵시디언 노트
# 마크다운 학습 노트
## 오늘 배운 것
- [x] 테이블 문법- [x] 펜스 코드 블록- [ ] 각주 활용법
## 핵심 요약
마크다운: 가벼운 마크업 언어: ==Astro와 옵시디언에서 필수==
## 참고 링크
- [[마크다운 기본 문법]]- [[Astro 블로그 설정]]
#마크다운 #확장문법호환성 체크리스트
확장 문법을 사용하기 전에 확인하세요:
| 기능 | GitHub | Astro | 옵시디언 | VS Code |
|---|---|---|---|---|
| 테이블 | ✅ | ✅ | ✅ | ✅ |
| 펜스 코드 블록 | ✅ | ✅ | ✅ | ✅ |
| 문법 하이라이팅 | ✅ | ✅ | ✅ | ✅ |
| 체크리스트 | ✅ | ✅ | ✅ | ✅ |
| 각주 | ✅ | ✅ | ✅ | ⚠️ |
| 취소선 | ✅ | ✅ | ✅ | ✅ |
| 이모지 | ✅ | ✅ | ✅ | ⚠️ |
| 하이라이트 | ❌ | ⚠️ | ✅ | ❌ |
| 정의 목록 | ❌ | ⚠️ | ⚠️ | ❌ |
✅ 완전 지원 | ⚠️ 부분 지원 | ❌ 미지원
참고 자료
공식 문서
- Markdown Guide - Extended Syntax - 확장 문법 공식 가이드
- GitHub Flavored Markdown Spec - GitHub 마크다운 스펙
- CommonMark Spec - 표준 마크다운 스펙
추가 자료
- Markdown Tables Generator - 테이블 생성 도구
- Emoji Cheat Sheet - 이모지 단축코드 목록
- Carbon - 코드 이미지 생성 도구
다음 편 예고
마크다운 완벽가이드 3편 - 고급 활용에서는 다음 내용을 다룹니다.
- 마크다운 활용 팁과 트릭
- HTML과 마크다운 혼합 사용
- 이미지 크기 조정과 정렬
- 커스텀 컨테이너와 콜아웃
- Astro와 옵시디언 고급 기능
확장 문법을 익혔다면, 3편에서 더 고급 기능을 배워보세요!
Footnotes
공유
이 글이 도움이 되었다면 다른 사람과 공유해주세요!