About AI
LLM에서 Markdown을 사용하는 이유
eicon127
2026. 9. 19. 19:28
ChatGPT, Claude, Gemini, Copilot 같은 LLM에서 Markdown은 단순히 글을 예쁘게 표시하기 위한 목적만 있는 것은 아닙니다.
- 구조화된 출력: 제목, 목록, 표 등을 통해 답변을 더 읽기 쉽게 만듦.
- 일관된 포맷: 다양한 플랫폼(채팅, 문서, 웹)에 동일한 형식으로 표시 가능.
- 가독성 향상: 긴 텍스트도 Markdown을 활용하면 핵심이 잘 드러남.
- 표현력 확장: 코드 블록, 수식(LaTeX), 강조 표시 등으로 단순 텍스트 이상의 정보 전달 가능.
Markdown은 LLM에게 명령하는 별도의 언어라기보다는,
LLM에게 정보를 구조적으로 전달하기 위한 매우 편리한 표현 방법이라고 이해하면 좋습니다.
현재 많이 사용하는 LLM들은 기본적인 Markdown을 대부분 이해합니다.
Markdown 문법
공통으로 적용되는 문법
| 문법 | 사용 예 | 설명 | |
| 제목 | # ## ### |
## 소제목 예시 | 글의 구조를 계층적으로 나누는 데 사용 |
| 강조 | **bold** *italic* |
**중요** *강조* |
텍스트를 굵게 또는 기울임으로 강조 |
| 목록 | - * 1. |
- 항목1 1. 항목2 | 순서 없는/순서 있는 항목 나열 |
| 코드 | `code` | `print("Hello")` | 문장 내 코드나 명령어를 표시 |
| 코드 블록 | ``` | ``` python print("Hello") ``` |
여러 줄 코드 표시, 가독성 향상 |
| 인라인 링크 | [text](url) | [구글](https://google.com) | 클릭 가능한 하이퍼링크 삽입 |
| 인용문 | > | > 인용문 예시 | 다른 글이나 문장을 인용할 때 사용 |
| 수평선 | --- | --- | 내용 구분선 삽입 |
LLM별 적용되는 문법
GPT(OpenAI 모델)를 기준으로 작성
| 문법 | 설명 | GPT | Claude | Gemini |
| 수식 델리미터 | 수학 수식을 표시할 때 쓰는 구분 기호. 인라인용/블록용이 따로 있음 | \(...\) = 인라인, \[...\] = 블록 예: \(E=mc^2\) |
$...$ = 인라인, $$...$$ = 블록 예: $E=mc^2$ |
LaTeX 억제 경향, 최근 $...$ 지원 확대 예: $E=mc^2$ (미지원 서피스 있음) |
| 기본 응답 스타일 | 제목(#)·불릿(-)을 얼마나 적극적으로 쓰는지 | 기본값처럼 자주 사용 예: ## 요약 - 포인트1 - 포인트2 |
짧은 답엔 최소화, 산문 위주 예: "포인트는 두 가지입니다. 첫째는 속도, 둘째는 비용입니다." (헤더·불릿 없이 문장으로) |
앱은 많이 씀 예: GPT 동일 |
| 긴 문서/코드 분리 채널 | 대화창과 별개로 문서·코드를 편집 가능한 창에 띄우는 기능 | Canvas 열기 예: "이 코드를 Canvas에 정리해줘" → 별도 편집창 생성 |
Artifact 생성 예: "이걸 파일로 만들어줘" → .md/.html 아티팩트 생성 |
Canvas / Immersive 예: "문서로 만들어줘" → Canvas 창 생성 |
| Mermaid 다이어그램 | ```mermaid 블록 안에 순서도 문법을 써서 그림으로 렌더링 | 지원 (Canvas 등) 예: ```mermaid graph TD; A-->B; ``` → 화살표 그림으로 렌더링 |
지원 (Artifact) 예: 위와 동일 문법, Artifact 안에서 그림으로 렌더링 |
서피스별 편차 예: 일반 채팅에서는 코드 그대로 텍스트 노출되는 경우 많음 |
| 표(Table) 사용 빈도 | | A | B | 문법으로 만드는 표를 얼마나 자주 쓰는지 | 비교 요청 시 적극 사용 예: "A와 B 비교해줘" → 자동으로 표 생성 |
필요할 때만 예: 같은 질문에도 문장으로 설명하고, 다차원 데이터일 때만 표 생성 |
앱은 잘 씀 예: 비교 질문에 표로 응답하는 경우 많음 |
| 체크박스(- [ ]) | 할 일 목록처럼 네모 박스로 렌더링되는 목록 문법 | Canvas에서 렌더링 예: - [ ] 할 일1 - [x] 완료된 일 → 체크박스로 표시 |
Artifact 안에서 렌더링, 대화창에선 텍스트 그대로 노출 예: 대화 응답에 - [ ] 할 일 쓰면 글자 그대로 보이기도 함 |
서피스별 다름 예: 앱에선 렌더링, 일부 서피스는 텍스트 노출 |
| 입력(프롬프트) 구조화 권장 방식 |
사용자가 프롬프트를 쓸 때 섹션을 나누는 데 권장되는 문법 | Markdown 헤딩 또는 XML 둘 다 무난 예: ## 배경 ## 요청사항 |
XML 태그 명시적 권장 예: <document>...</document> <example>...</example> |
Markdown 헤딩 위주 예: GPT 동일 |
| 볼드/강조 사용 빈도 | **텍스트**로 굵게 강조하는 빈도 | 핵심 키워드마다 자주 사용 예: "이 방법은 매우 효율적이며 비용 절감에 도움이 됩니다." |
절제된 사용 예: "이 방법은 효율적이며 비용 절감에 도움이 됩니다." (강조 없이) |
보통 수준 예: 문장당 1개 정도 강조 |
| API 원문 형식 | 개발자가 API로 호출했을 때 응답에 Markdown 기호가 그대로 포함되는지 | 그대로 반환 예: API 응답에 **중요**가 별표 그대로 포함됨 |
그대로 반환 예: GPT 동일 |
그대로 반환 예: GPT 동일 |
Markdown 작성 예
| Markdown 작성 | ```Markdown ## 조건 - 제목과 소제목을 사용 - 핵심은 bullet point로 요약 - 마지막에 표로 비교 ``` 위의 작성된 Markdown 설명 코드 블록 시작: ```Markdown 구조화된 지시사항: # 요청, ## 조건 같은 제목/소제목 조건은 bullet point(-)로 나열 코드 블록 종료: ``` |
| 모델 표시 | ![]() |
프롬프트에 Markdown을 적용하는 장점
- 구조화된 지시: 모델이 답변을 섹션별로 나누도록 유도 가능
- 출력 포맷 제어: 표, 목록, 코드 블록 등 원하는 형식으로 결과를 얻을 수 있음
- 가독성 향상: 긴 답변도 Markdown을 활용하면 핵심이 잘 드러남
- 일관성 확보: 여러 번 요청해도 비슷한 형식으로 결과를 받을 수 있음
프롬프트에 Markdown을 적용하면 모델이 답변을 더 체계적으로 구성하게 만들 수 있고, 특히 비교·정리·코드·표 같은 작업에서 효과가 큽니다.
