Hey, welcome back! 지난번 포스트 "Level Up Your GitHub Repo: 5 Proven Tips for Pro Documentation" 어떠셨나요? 댓글에서 Markdown 고급 기능에 대해 궁금해하신 분들이 정말 많았죠. 그래서 오늘은 그 궁금증을 함께 풀어보려고 해요.
솔직히 말해서, 대부분의 사람들은 Markdown을 헤더 몇 개, 불릿 리스트, 그리고 가끔 이미지를 넣는 정도로 시작해요. 저도 처음 만든 README는 거의 텍스트 벽에 #만 띄엄띄엄 박혀 있었죠. 그런데 프로젝트가 커지고, 보는 사람이 많아질수록 단순한 문서로는 부족하다는 걸 깨닫게 돼요. 더 명확하고, 보기 좋고, 심지어 상호작용까지 되는 문서가 필요해지거든요.
왜 이게 중요할까요? 개발자든, 테크니컬 라이터든, 프로젝트 매니저든, 좋은 문서는 프로젝트의 품격을 높여줍니다. 새로운 기여자가 쉽게 참여할 수 있고, 반복되는 질문도 줄어들고, 리포지토리를 탐색하는 재미까지 생기죠. 그런데 놀랍게도, Markdown에는 이런 문서를 위한 고급 기능이 꽤 많은데, 대부분 잘 안 보이는 곳에 숨어 있어요.
오늘은 그 숨겨진 보물들을 함께 찾아볼 거예요—테이블, 체크리스트, 접기 섹션, 코드 하이라이팅, 각주, 수식, 그리고 확장된 이미지/링크 트릭까지! 단순히 문법만이 아니라, 실제 예제와 코드 스니펫, 그리고 제가 직접 겪은 실수담(!)과 플랫폼별 호환성 팁까지 아낌없이 공유할게요. GitHub, VS Code, MkDocs, Jekyll 등에서 어떻게 다르게 보이는지도 꼼꼼히 짚어드릴 거고요.
이 글을 다 읽고 나면 이런 걸 얻으실 수 있어요:
- Markdown 고급 기능을 자신 있게 활용해서 문서를 더 인터랙티브하고 탐색하기 쉽게 만들 수 있다!
- 실전 팁으로 렌더링 오류나 호환성 문제를 미리 피할 수 있다.
- 문서는 완벽할 필요 없고, 우리 모두 시행착오를 겪으며 성장한다는 안도감까지!
자, 에디터 켜고, Markdown의 진짜 힘을 함께 열어볼까요? 평범한 문서에서, 잊지 못할 문서로! 준비되셨죠? 그럼 시작합니다.
Table of Contents
- Introduction to Advanced Markdown Features
- Creating Tables in Markdown
- Using Checklists for Project Management
- Inserting Mathematical Formulas with LaTeX Extensions
- Enhanced Links and Images Syntax
- Embedding HTML Tags within Markdown
- Practical Use Cases of Advanced Markdown Features
- Limitations and Compatibility Challenges
- Conclusion and Best Practices
Introduction to Advanced Markdown Features
README 파일을 GitHub에 올려봤거나, Reddit에 노트 공유해봤거나, 블로그 초안이라도 써봤다면 Markdown을 이미 만난 적 있을 거예요. #로 헤더 만들고, **로 굵게, -로 리스트 만들고—정말 쉽죠. 저도 처음엔 이 심플함에 반해서 썼어요. 복잡한 HTML도 필요 없고, 툴바도 필요 없고, 그냥 내용에만 집중할 수 있으니까요.
그런데 어느 순간, 좀 더 복잡한 문서를 써야 할 때가 오더라고요. 기술 명세서, 논문, 프로젝트 위키 같은 거요. 그때 벽에 부딪혔죠. 테이블이 필요하면? 어라, 기본 Markdown에선 안 돼요. 각주나 참고문헌? 더더욱 어렵죠. 저도 처음엔 이 한계 때문에 좌절했어요.
이럴 때 등장하는 게 바로 고급 Markdown 기능입니다. GitHub Flavored Markdown(GFM), Pandoc, Typora 같은 툴이 등장하면서 테이블, 체크리스트, 각주, LaTeX 수식, 코드 하이라이팅, 인용문, 심지어 인용관리까지 지원하게 됐어요. 이거 알게 된 순간, “오, 이제 진짜 문서다운 문서 쓸 수 있겠다!” 싶었죠.
이 글에서는 그런 고급 기능을 실제 예제와 함께, 플랫폼별 차이까지 꼼꼼히 살펴볼 거예요. 저도 실수 많이 했으니, 여러분은 그 함정에 빠지지 않도록 팁도 아낌없이 드릴게요. 준비되셨나요? 자, 고급 Markdown의 세계로 출발!
💡 Practical Tips
- GFM, Pandoc 등 확장된 Markdown 플러그인을 사용하면 테이블, 각주 등 고급 기능을 쓸 수 있어요.
- 코드 블록에 언어명을 붙이면(예: ```python) 코드 하이라이팅이 적용돼서 가독성이 확 올라갑니다.
- 논문이나 기술문서에는 Pandoc의 인용문법을 활용해 참고문헌 관리도 가능해요.
Creating Tables in Markdown
자, 테이블 만드는 법부터 시작해볼까요? 불릿 리스트로 정보 정리하다가, 내용이 뒤죽박죽 돼서 답답했던 적 있으시죠? 저도 그랬어요. 테이블이 있으면 한눈에 정리할 수 있어서 정말 편해요. 그런데 처음 테이블 문법 봤을 땐 “이게 뭐지?” 싶더라고요. 같이 하나씩 뜯어볼게요.
기본 문법
| Header 1 | Header 2 |
|----------|----------|
| Row 1 | Data |
| Row 2 | More |
첫 줄은 헤더, 둘째 줄은 구분선(대시), 그 아래는 데이터. 각 칸은 |로 구분해요. GitHub README나 오픈소스 문서에서 자주 보셨을 거예요.
열 정렬
정렬도 할 수 있어요! 콜론(:)을 써서 왼쪽, 가운데, 오른쪽 정렬을 지정할 수 있죠.
| Left | Center | Right |
|:--------|:--------:|--------:|
| apple | banana | cherry |
| dog | cat | mouse |
:---→ 왼쪽 정렬:---:→ 가운데 정렬---:→ 오른쪽 정렬
실전 예제: API 파라미터 테이블
API 문서에서 자주 쓰는 테이블 예시입니다.
| Parameter | Type | Required | Description |
|-----------|--------|----------|-----------------------------|
| userId | int | Yes | Unique identifier for user |
| email | string | No | User’s email address |
| isActive | bool | No | Is the user active? |
저는 처음에 구분선(|---|)을 빼먹어서 테이블이 아예 안 나왔던 적이 있어요. 꼭 두 번째 줄을 확인하세요!
한계와 팁
- 멀티라인 셀이나 셀 병합(merge)은 기본 Markdown에선 안 돼요. 저도 억지로 파이프 추가하다가 다 깨진 적 있어요. 꼭 필요한 경우엔 HTML
<table>을 써야 하는데, GitHub에선 일부만 지원되고, MkDocs나 Jekyll에선 렌더링이 다를 수 있으니 주의! - 행마다 파이프 개수 맞추기! 안 맞으면 레이아웃이 깨져요. 저도 이거 때문에 3시간 날린 적 있습니다...
- 큰 테이블은 여러 개로 쪼개거나, 불릿 리스트로 대체하는 게 더 보기 좋을 때도 있어요.
플랫폼별 호환성
- GitHub: GFM에서 표 지원. 셀 병합은 불가.
- VS Code: 미리보기에서 표 잘 보임. 일부 확장 플러그인(예: Markdown All in One)으로 표 편집 가능.
- MkDocs/Jekyll: 표 지원. HTML
<table>도 렌더링 가능하지만, CSS 스타일이 달라질 수 있음.
💡 Practical Tips
- 헤더와 구분선은 꼭 포함! 그래야 대부분의 Markdown 렌더러에서 깨지지 않아요.
- 정렬은 콜론으로, 셀 병합은 HTML로(단, 플랫폼별 지원 확인).
- 미리보기로 꼭 확인하고, 표가 너무 크면 쪼개서 쓰세요.
Using Checklists for Project Management
이번엔 체크리스트! 프로젝트 시작할 때 “이건 꼭 해야지” 생각했다가, 막상 진행하다 보면 절반은 까먹는 경험, 다들 있으시죠? 저도 그래서 체크리스트 없이는 일 못 해요.
기본 문법
- [ ] Set up project repository
- [ ] Write initial README
- [x] Add .gitignore file
- [ ] Invite collaborators
[ ]는 미완료,[x]는 완료.- GitHub 이슈나 PR에선 실제로 클릭해서 체크할 수 있어요. 이거 처음 써보고 “이런 게 있었어?” 감탄했죠.
실전 예제: 오픈소스 프로젝트 To-Do
## To-Do
- [ ] Translate documentation to Spanish 🌎
- [ ] Fix bug in payment gateway (see [Issue #12](https://github.com/org/repo/issues/12))
- [x] Update contributors list
저는 처음에 서브태스크(하위 작업) 들여쓰기를 까먹어서, 전부 같은 레벨로 나와버렸어요. 이렇게 하면 됩니다:
- [ ] Deploy to production
- [ ] Update DNS settings
- [ ] Test endpoint from US and Korea
플랫폼별 호환성
- GitHub: 체크박스 클릭 가능, 이슈/PR/README 모두 지원.
- VS Code: 미리보기에서 체크박스 보임, 클릭은 불가.
- MkDocs/Jekyll: 체크박스 렌더링은 되지만, 클릭해서 상태 변경은 불가.
팁 & 교훈
- 체크리스트는 팀원 모두가 진행상황을 한눈에 볼 수 있어서, “이거 했나?” 헷갈릴 일이 줄어요.
- 링크, 이모지, 들여쓰기로 가독성 UP!
- 문법 헷갈리면 구글링하세요. 저도 매번 찾아봅니다. 우리 모두 초보였으니까요.
💡 Practical Tips
- GitHub 이슈에서 체크리스트로 큰 작업을 쪼개면, 팀원들이 각자 맡은 부분을 쉽게 체크할 수 있어요.
- README에 체크리스트를 넣으면, 신규 기여자도 “뭐부터 하면 되지?” 한눈에 알 수 있습니다.
- 하위 작업은 들여쓰기(
- [ ])로 표현!
Inserting Mathematical Formulas with LaTeX Extensions
이번엔 수식! Markdown에서 수식 넣으려다 멘붕 온 적 있으신가요? 저도 처음엔 “2+2=4” 이상만 쓰면 다 깨져서 포기할 뻔했어요. 그런데 LaTeX 확장 덕분에 이제는 멋진 수식도 문제없어요.
왜 기본 Markdown으론 안 될까?
Markdown은 리스트, 헤더, 코드엔 강하지만, 분수나 적분, 그리스 문자 같은 수식에는 약해요. 저도 처음엔 괄호랑 슬래시로 억지로 써봤는데, 완전 난장판이 되더라고요.
LaTeX 확장 사용법
대부분의 최신 Markdown 툴은 $...$로 인라인 수식, $$...$$로 블록 수식을 지원해요.
-
인라인 수식
$E = mc^2$→ $E = mc^2$
-
블록 수식
$$ \int_0^\infty e^{-x} dx = 1 $$→
$$ \int_0^\infty e^{-x} dx = 1 $$
처음엔 “이게 진짜 다야?” 싶었는데, 맞아요. 단, 플랫폼별 지원 여부 꼭 확인하세요!
지원되는 플랫폼
- GitHub: 수식 미지원(2024년 기준). Gist, Discussions 등 일부 영역에서 제한적 지원.
- VS Code: “Markdown+Math” 확장 설치 시 미리보기에서 수식 렌더링.
- MkDocs/Jekyll: MathJax, KaTeX 플러그인 설치 시 완벽 지원.
- Jupyter Notebook: LaTeX 수식 기본 지원.
저는 MathJax 설정 안 하고 블로그에 올렸다가, 수식이 그냥 코드로 나와서 당황한 적 있어요. 꼭 설정 확인하세요!
실전 예제
| 목적 | Markdown 코드 | 렌더링 결과 |
|---|---|---|
| 이차방정식 | $ax^2 + bx + c = 0$ |
$ax^2 + bx + c = 0$ |
| 시그마 | $\sum_{n=1}^\infty \frac{1}{n^2} = \frac{\pi^2}{6}$ |
$\sum_{n=1}^\infty \frac{1}{n^2} = \frac{\pi^2}{6}$ |
| 미분 | $\frac{d}{dx} e^x = e^x$ |
$\frac{d}{dx} e^x = e^x$ |
잠깐, 정리!
- 반드시 LaTeX 지원 여부 확인!
- 인라인은
$...$, 블록은$$...$$. - 실수해도 괜찮아요. 저도 처음엔 다 깨졌어요. 익숙해지면 금방입니다.
💡 Practical Tips
- MathJax/KaTeX 등 LaTeX 확장 지원 여부를 항상 체크!
- 짧은 수식은 인라인, 긴 수식은 블록으로!
- 최종 문서에서 수식이 잘 나오는지 꼭 미리보기로 확인하세요.
Enhanced Links and Images Syntax
이제 링크와 이미지 문법을 좀 더 멋지게 써볼 차례! 긴 문서 쓸 때 링크가 뒤죽박죽 되거나, 이미지가 너무 커서 레이아웃이 깨진 경험, 다들 있으시죠? 저도 한 번은 이미지 크기 조정하다가 CSS까지 건드려봤는데, 그냥 Markdown에서 해결하는 게 훨씬 쉽더라고요.
링크와 이미지에 타이틀 추가
링크나 이미지에 타이틀을 달면, 마우스를 올렸을 때 툴팁이 뜨죠. 독자에게 추가 설명을 줄 수 있어요.
[Visit Google](https://google.com "Google Search Engine")

이거 처음 써보고 “이렇게 간단한데 왜 안 썼지?” 싶었어요.
참조형(Reference-style) 링크로 코드 깔끔하게
같은 URL을 여러 번 쓸 때, 참조형 링크가 진짜 편해요.
Check out [Google][google] and [Naver][naver] for search.
[google]: https://google.com "Google Search"
[naver]: https://naver.com "Naver Search (Korea)"
본문이 훨씬 깔끔해지고, URL 바꿀 때도 한 번만 수정하면 돼요. 저도 긴 문서 리팩토링하다가 이 방법에 푹 빠졌죠.
자동 링크
그냥 URL만 써도 자동으로 링크가 되는 경우가 많아요.
https://github.com
단, 모든 플랫폼에서 되는 건 아니에요. Confluence에서 이거 믿고 썼다가, 그냥 텍스트로 나와서 당황한 적 있습니다.
이미지 고급 옵션
이미지 크기나 속성을 조절하려면 확장 문법이나 HTML을 써야 해요.
<img src="sunset.jpg" alt="Sunset over Seoul" title="A beautiful sunset" width="300" />
또는 일부 Markdown 확장에선 이렇게도 가능:
{width=200px}
CSS로 억지로 조절하다가 깨진 적 있는데, 이렇게 문법으로 해결하는 게 훨씬 안전해요.
플랫폼별 호환성
- GitHub: 타이틀, 참조형 링크, 자동 링크 모두 지원. HTML 이미지 속성 일부 지원(단, width 등은 무시될 수 있음).
- VS Code: 미리보기에서 대부분 지원. HTML 속성도 적용됨.
- MkDocs/Jekyll: HTML 속성, 확장 문법 모두 지원(단, 테마에 따라 스타일 다름).
잠깐, 정리!
- 타이틀은 적당히! 너무 많으면 오히려 산만해져요.
- 긴 문서엔 참조형 링크로 관리!
- 자동 링크는 플랫폼별 지원 확인 필수.
- 이미지 크기 조절은 HTML이나 확장 문법 활용!
💡 Practical Tips
- 타이틀은 꼭 필요한 곳에만! 툴팁이 너무 많으면 오히려 혼란스러울 수 있어요.
- 참조형 링크로 본문을 깔끔하게, URL 관리도 편하게!
- 자동 링크, 이미지 속성 등은 항상 미리보기로 확인!
Embedding HTML Tags within Markdown
가끔 Markdown만으로는 원하는 레이아웃이나 기능을 구현하기 힘들 때가 있죠. 이럴 땐 HTML 태그를 직접 삽입할 수 있어요. 저도 표 병합이나 커스텀 스타일이 필요할 때 종종 써요.
예시: HTML 테이블
<table>
<tr>
<th colspan="2">Header</th>
</tr>
<tr>
<td>Cell 1</td>
<td>Cell 2</td>
</tr>
</table>
예시: 커스텀 스타일
<span style="color: red;">중요!</span>
플랫폼별 호환성
- GitHub: 대부분의 HTML 태그 지원. 단,
<script>,<style>등 보안상 위험한 태그는 무시. - VS Code: 미리보기에서 HTML 렌더링 지원.
- MkDocs/Jekyll: HTML 태그 대부분 지원. 단, 일부 테마/플러그인과 충돌 가능.
팁
- HTML로 너무 복잡하게 꾸미면, Markdown의 심플함이 사라질 수 있어요.
- 보안상 위험한 태그는 자동으로 필터링되니, 꼭 필요한 경우에만 사용하세요.
Practical Use Cases of Advanced Markdown Features
이제 실제로 어디에 어떻게 쓸 수 있는지, 간단히 예시를 들어볼게요.
- API 문서: 파라미터 테이블 + 코드 하이라이팅 + 각주
- 오픈소스 프로젝트: 체크리스트로 작업 분배 + 기여 가이드에 이미지/링크 활용
- 기술 블로그: 수식(LaTeX) + 참조형 링크 + 이미지 크기 조절
- 연구 노트: 표 + 각주 + 인용문
실제로 해보면, 처음엔 문법이 헷갈릴 수 있지만, 한 번 익숙해지면 문서 퀄리티가 확 달라져요. 저도 처음엔 표 하나 만드는데 30분 걸렸는데, 지금은 3분이면 뚝딱!
Limitations and Compatibility Challenges
아쉽게도, 모든 플랫폼에서 모든 고급 기능이 똑같이 지원되는 건 아니에요. 이 부분은 꼭 체크해야 해요.
- GitHub: 표, 체크리스트, 참조형 링크, 일부 HTML 지원. 수식(LaTeX)은 공식 지원 X.
- VS Code: 확장 플러그인 설치 시 대부분 지원. 기본 미리보기엔 한계 있음.
- MkDocs/Jekyll: 플러그인 설치 시 거의 모든 기능 지원. 단, 테마/플러그인 충돌 주의.
- Jekyll: HTML, 표, 체크리스트, 수식(플러그인 필요) 지원. 일부 플러그인은 GitHub Pages에서 제한될 수 있음.
저도 “이거 되겠지?” 하고 썼다가, GitHub에선 깨지고, MkDocs에선 잘 나오는 경험을 여러 번 했어요. 항상 최종 배포 환경에서 미리보기로 확인하세요!
Conclusion and Best Practices
휴, 여기까지 오셨네요! 고급 Markdown 기능을 익히면, 단순한 텍스트 파일이 멋진 인터랙티브 문서로 변신합니다. 테이블, 체크리스트, 수식, 이미지, HTML까지—이 모든 게 여러분의 문서를 더 명확하고, 보기 좋고, 협업하기 쉽게 만들어줘요. 특히 GitHub 같은 오픈소스 환경에선, 이런 문서가 프로젝트의 인상을 좌우하죠.
저도 처음엔 완벽한 문서를 쓰려고 애썼지만, 시행착오를 겪으면서 배웠어요. 중요한 건, 한 번에 다 하려 하지 말고, 오늘 배운 기능 중 하나라도 다음 README나 위키에 적용해보는 거예요. 예를 들어, 프로젝트 보드에 체크리스트 하나 추가해보거나, 표로 비교 섹션을 만들어보세요. 수식이나 이미지 크기 조절도 한 번 실험해보고요. 단, 항상 “내가 쓰는 플랫폼에서 잘 보일까?” 미리보기로 확인하는 것, 잊지 마세요!
꾸준히 이런 고급 기능을 익히고 적용하다 보면, 여러분의 문서는 팀원과 기여자 모두에게 큰 도움이 될 거예요. 그리고 프로젝트의 신뢰도와 매력도도 한층 올라가겠죠. 자, 이제 한 단계 더 성장한 문서로 프로젝트를 빛내보세요. 여러분의 성공을 응원합니다!
📚 References and Further Learning
공식 문서
- CommonMark Spec - CommonMark 공식 스펙
- GitHub Flavored Markdown Spec - GitHub Flavored Markdown(GFM) 상세 문서
- Markdown Guide - Extended Syntax - 확장 문법 가이드
튜토리얼
- 📄 Mastering Advanced Markdown Syntax - 중급
- 🎥 Markdown Tutorial for Advanced Users - 고급
- 🎮 Interactive Markdown Editor - 입문
유용한 도구
- 🔧 Typora - 실시간 미리보기 지원, 고급 기능 풍부
- 🔧 Pandoc - 다양한 포맷 변환, 고급 확장 지원
- 🔧 Mark Text - GFM 및 확장 문법 지원 오픈소스 에디터
커뮤니티
- 🟠 r/Markdown - Reddit Markdown 커뮤니티
- 💭 Markdown Community on Stack Overflow - Q&A 포럼
- 💬 Markdown Discord - 실시간 토론/질문
🔗 Related Topics
- Markdown 문법 심화: 표, 코드블록, 체크리스트, 각주 등
- Markdown 확장/플레이버 비교: CommonMark, GFM 등
- 미디어/인터랙티브 요소 임베딩: 이미지, 영상, 다이어그램, 위젯
- HTML/CSS 커스터마이징: Markdown에 HTML 삽입 및 스타일링
- Linter/Formatter: 문서 품질과 일관성 유지 도구
📈 Next Steps
- 다양한 Markdown 플레이버 실험해보고, 내 프로젝트에 맞는 걸 찾아보세요.
- Markdown Linter를 워크플로우에 통합해보세요.
- Mermaid 다이어그램, 코드 스니펫 등 고급 요소도 한 번 시도!
- 오픈소스 문서에 직접 기여하며 실전 경험 쌓기!
여러분, 오늘 배운 것 중 하나만이라도 바로 적용해보세요. 시행착오도 괜찮아요—저도 맨날 실수합니다. 중요한 건, 한 걸음씩 나아가는 거죠. 여러분의 멋진 문서, 기대할게요!