2023년 4월 9일 작성

Markdown - 경량 Markup Language

Markdown은 web contents를 작성하기 위한 경량 Markup 언어이며, 정해진 문법을 사용하여 다양한 형태의 문서를 작성할 수 있습니다.

Markdown : Text 기반 Markup 언어

  • Markdown은 web contents를 작성하기 위한 경량 Markup 언어입니다.
    • 쉽게 쓰고 읽을 수 있으며, HTML로 변환이 가능합니다.
    • 특수 기호와 문자를 이용한 간단한 구조의 문법을 사용합니다.
  • John Gruber와 Aaron Swartz에 의해 2004년에 만들어졌으며, 읽기 쉽고 쓰기 쉬운 평문으로 구성되어 있어 사용자가 직관적으로 문서를 작성할 수 있도록 돕습니다.

  • Markdown의 주된 목적은 web에서의 사용을 염두에 두고 최대한 읽기 쉽게 평문을 작성하는 것입니다.
    • HTML로 쉽게 변환될 수 있어 website contents로 손쉽게 사용될 수 있습니다.

Markdown의 특징

  • 간결함 : Markdown은 tag와 닫는 tag로 복잡하게 구성된 HTML보다 훨씬 간결하고, 읽고 쓰기 쉽습니다.
  • 범용성 : Markdown으로 작성된 문서는 다양한 platform과 편집기에서 사용할 수 있으며, HTML로의 변환이 용이합니다.
  • 가독성 : Markdown은 평문 형태로 작성되므로, Markup이 없는 상태에서도 내용을 쉽게 이해할 수 있습니다.

Markdown의 활용

  • Markdown은 기술 문서 작성, blog posting, README file 작성 등, 다양한 분야에서 널리 사용됩니다.
  • GitHub, Bitbucket과 같은 개발자 도구에서도 Markdown을 지원하여, software project의 문서화에도 활용됩니다.
  • 또한, 많은 현대적인 blog platform과 contents 관리 시스템(CMS)에서도 Markdown을 지원하여, contents 제작자가 보다 쉽게 글을 작성하고 관리할 수 있게 돕습니다.

Markdown 문법

  • Markdown의 다양한 문법을 활용하여 다양한 형태의 문서를 작성할 수 있습니다.

제목 (Header)

  • 제목은 # 기호를 사용하여 표현합니다.
    • #의 개수에 따라 제목의 크기가 달라집니다.
    • 1단계부터 6단계까지 지원합니다.
# 제목 1
## 제목 2
### 제목 3
#### 제목 4
##### 제목 5
###### 제목 6

강조 (Emphasis)

  • Bold체는 text를 **로 감싸거나 __로 감싸서 표현합니다.
  • Italic체는 text를 *로 감싸거나 _로 감싸서 표현합니다.
  • 취소선은 text를 ~~로 감싸서 표현합니다.
**Bold체** 또는 __Bold체__
*Italic체* 또는 _Italic체_
~~취소선~~

목록 (List)

  • 순서가 있는 목록과 순서가 없는 목록을 표현할 수 있습니다.

순서가 있는 목록 (Ordered List)

  1. 첫 번째 항목입니다.
  2. 두 번째 항목입니다.
  3. 세 번째 항목입니다.
1. 첫 번째 항목입니다.
2. 두 번째 항목입니다.
3. 세 번째 항목입니다.

순서가 없는 목록 (Unordered List)

  • 항목 1입니다.
  • 항목 2입니다.
    • 중첩된 항목 2-1입니다.
    • 중첩된 항목 2-2입니다.
  • 항목 3입니다.
- 항목 1입니다.
- 항목 2입니다.
    - 중첩된 항목 2-1입니다.
    - 중첩된 항목 2-2입니다.
- 항목 3입니다.
  • 일반 link는 [Link Text](URL)로 표현합니다.
  • URL 직접 표시는 <URL>로 표현합니다.
[Google](https://www.google.com)
<https://www.google.com>

사진 (Image)

  • image는 ![Alternative Text](Image URL)로 표현합니다.
    • Alternative Text는 image가 load되지 않았을 때 대체할 text입니다.
  • link가 있는 image는 [![Alternative Text](Image URL)](Link URL)로 표현합니다.
![Markdown Logo](https://markdown-here.com/img/icon256.png)
[![Markdown Logo](https://markdown-here.com/img/icon256.png)](https://markdown-here.com)

Code

  • code 성격의 text나 block은 backtick(``` ` ``)으로 감싸서 표현합니다.

Inline Code

  • inline code는 text를 backtick(`)으로 감싸서 표현합니다.
`inline code`

Code Block

  • code block은 backtick 3개( `)로 감싸서 표현합니다.
  • 언어 지정을 통해 syntax highlighting이 가능합니다.
```python
def hello_world():
    print("Hello, World!")
```

표 (Table)

  • 표는 |-를 사용하여 표현합니다.
    • -는 header와 body를 구분하는 역할을 합니다.
  • :를 사용하여 text 정렬을 지정할 수 있으며, header와 body 모두 적용됩니다.
    • :의 위치에 따라 왼쪽 정렬, 가운데 정렬, 오른쪽 정렬이 가능합니다.
    • 왼쪽 정렬 : | --- |, | :--- |.
    • 가운데 정렬 : | :---: |.
    • 오른쪽 정렬 : | ---: |.
  • cell 내의 문자에 강조 효과(두껍게, 취소선, 기울임 등)를 추가할 수도 있습니다.

  • 표 내부에서는 줄 바꿈을 지원하기 않기 때문에, <br> tag를 사용해야 합니다.
| 항목 | 설명 | 가격 |
| --- | --- | ---: |
| 항목 1 | 설명 1 | 1,000원 |
| 항목 2 | 설명 2 | 2,000원 |
| **항목 3** | *설명 3* | ~~3,000원~~ |
항목 설명 가격
항목 1 설명 1 1,000원
항목 2 설명 2 2,000원
항목 3 설명 3 3,000원

인용문 (Blockquote)

  • 인용문은 >를 사용하여 표현합니다.
  • >의 개수에 따라 중첩된 인용문을 만들 수 있습니다.
  • 인용문 내에서는 Markdown의 요소를 그대로 사용할 수 있습니다.
> 인용문입니다.
>
>> 중첩된 인용문입니다.
>
> ## 인용문 내의 제목
>
> 인용문 내의___(공백 3개)
> 줄바꿈
>
> - 인용문 내의 목록 1
> - 인용문 내의 목록 2
> - 인용문 내의 목록 3
>     - 인용문 내의 목록 3-1
>     - 인용문 내의 목록 3-2
>
> ---
> (인용문 내의 수평선)
>
> `인용문 내의 inline code`
>
> ```js
> console.log('인용문 내의 code block');
> ```

인용문입니다.

중첩된 인용문입니다.

인용문 내의 제목

인용문 내의___(공백 3개) 줄바꿈

  • 인용문 내의 목록 1
  • 인용문 내의 목록 2
  • 인용문 내의 목록 3
    • 인용문 내의 목록 3-1
    • 인용문 내의 목록 3-2

(인용문 내의 수평선)

인용문 내의 inline code

console.log('인용문 내의 code block');

수평선 (Horizontal Rule)

  • 수평선은 -, *, _를 3개 이상 나열하여 표현합니다.
    • 또는 <hr> tag를 사용할 수 있습니다.
---
***
___

Check Box (Task List)

  • check box는 - [ ]- [x]를 사용하여 표현합니다.
- [x] 완료된 항목
- [ ] 미완료된 항목
  • 완료된 항목
  • 미완료된 항목

줄 바꾸기 (Line Break)

  • Markdown에서의 줄바꿈에는 특별한 문법을 사용해야 합니다.

3칸 이상 띄어쓰기

줄을___
바꿉니다.

br Tag 사용하기

줄을<br>
바꿉니다.

각주 (Footnote)

  • 각주는 [^1], [^2] 형태로 참조하고, 문서 하단에 [^1]: 각주 내용과 같이 내용을 정의합니다.
각주가 있는 문장[^1]과 또 다른 각주[^2]가 있습니다.

[^1]:  번째 각주 내용입니다.
[^2]:  번째 각주 내용입니다.

각주가 있는 문장1과 또 다른 각주2가 있습니다.

  1. 첫 번째 각주 내용입니다. 

  2. 두 번째 각주 내용입니다. 


목차