마크다운(Markdown)
1. 마크다운이란
- 개념
- 마크다운은 일반 텍스트에 몇 가지 기호를 섞어 문서의 구조를 표현하는 표기 방식이다.
- HTML(HyperText Markup Language, 웹 문서를 기술하는 표기 언어)은 # ++제목++처럼 태그로 감싸고, 워드프로세서는 파일 안에 서식 정보를 따로 저장합니다. 두 방식 모두 서식을 적용한 뒤에는 원본이 사람이 읽기 어려운 형태가 된다.
- 즉, 기호를 붙인 상태에서도 그냥 읽히는 것이 목표이다.
- 코드와 함께 텍스트 파일로 보관할 수 있고, 변경 이력을 줄 단위로 비교할 수 있기 때문이다. GitHub의 저장소 설명 문서,이슈와 코드 리뷰 본문,기술 문서가 대부분 마크다운으로 작성된다.
- 표준과 확장
- 마크다운에는 이 점이 처음 배울때 혼란을 일으키는 원인이므로 먼저 정리한다
A["원본 명세<br/>Gruber, 2004"] --> B["ComminMark<br/>표준화"]
B --> C["GFM<br/>GitHub 확장"]
B --> D["Obsidian<br/>자체 확장"]
- 원본 명세 :2004년에 발표된 최초 규격
-CommonMark:**** 모호함을 없애기 위해 만들어진 표준 규격
-GFM: (GitHub Flavored MArkdown) - FitHub이 CommonMark 위에 표, 작업 목록 같은 기능을 얹은 것
-obsidian: 위키링크와 하이라이트가 해당되며, obsidian이 자체적으로 얹는 문법이 따로 있다.
1.문서 제목
이 파일을 마크다운을 이해하는 프로그램(GitHub, Obsidian 등)에서 열면 기호가 실제 서식으로 바뀌어 보입니다. 이 변환 과정을 렌더링(rendering)이라고 하고, 변환하는 프로그램을 렌더러(renderer)라고 부른다.
실행방법
- 저장소를 내려받는다.
- Unity Hub 에서 프로젝트를 연다.
- 'Scenes/Main' 씬을 열고 재상한다.
2.제목
-개념: 문서를 단계로 나누는 표시. 글자를 크게 만드는 기능이 아닌 문서의 뼈대를 만드는 이다.
크기만 맞추려고 굵은 글자를 대신 쓰면 겉보기는 비슷해도 이런 기능이 동작하지 않는다.
2-1. 문법 형식
-'#'의 개수가 단계를 뜻하며 1개부터 6개까지 쓸 수 있다
1단게 제목 -----'#' 1개
2단계 제목 ----'#' 2개
3단계 제목 ----'#' 3개
.
.
.
| 표기 | 단계 | HTML로 바꿈 |
|---|---|---|
| '#' | 1 | '' |
| '##' | 2 | '' |
| '###' | 3 | '' |
- '#' 뒤의 공백은 생략 불가능
ex). '# 제목' -> 제목으로 인식
'#제목' -> #제목 이 표시 - 글 아래 줄에 '='를 이어 쓰면 1단계, '-'를 이어 쓰면 2단계가 된다.
다만, 2단계까지만 되고 '-' 가 다른 문법과 헷갈리기 쉬워 잘 쓰지 않는다
3. 문단과 줄바꿈
3-1 개념
- GitHub 기준으로 줄을 그냥 바꾸면 줄이 바뀌지 않는다.
편집기에서 엔터를 눌러 줄을 나누고 저장했는데, 렌더링 결과는 한줄로 이어져 있는 경우가 해당된다.
줄을 나누는 방법은 두 가지가 있는데, 문단을 나누는 것과 문단 안에서 줄만 바꾸는 것이다.
ex)
연락처는 아래와 같습니다.
담당자: 홍길동\
소속: 개발팀\
내선: 1234
4. 강조
4-1 개념
- 강조는 문장 안의 일부를 굵게 하거나 기울려 표시, 마크다운은 별료('*')나 밑줄('-')로 쓴다.
강조에 두 단계가 있는데, 하나로 감싸면 기울임, 두 개로 감싸면 굵게 표시된다.
4-2 별표와 밑줄의 차이
- 밑줄은 앞뒤가 글자로 둘러싸인 자리에서는 강조로 인식되지 않는다. 별표에는 그런 제약이 없다.
| 입력 | 결과 |
|---|---|
| GameObject | GameObject - 강조가 적용됩니다 |
| Game_Object_ | Game_Object_ - 글자 그대로 표시됩니다 |
-이 방법은 강조 기호 뿐만 아니라 '#', '-', ' [', ` 등에도 쓸 수 있습니다.
4-3 주의
- 빌드 전에 ==반드시== Scenes/Main 씬이 Build Settings에 등록되어 있는지
확인합니다. 등록되지 않은 씬은 빌드 결과물에 포함되지 않는다.
게임 오브젝트에 기능을 붙이는 단위를 컴포넌트라고 부른다.
5. 목록
5-1 개념
- 목록은 여러 항목을 나열하는 표시이다. 순서가 의미를 갖는지에 따라 두 종류러 나뉜다.
순서 없는 목록 - 항목 사이에 순서가 없다. 준비물이나 특징을 나열할 때 쓴다.
순서 있는 목록 - 항목의 순서가 의미를 갖습니다. 절차나 단계를 적을 때 쓴다.
- 순서 없는 목록 줄 앞에 -, +, * 중 하나를 놓고 공백을 넣습니다. 세 기호 모두 같은 결과를 냅니다.
- 첫째 항목
- 둘째 항목
- 셋째 항목
- 순서 있는 목록 줄 앞에 숫자와 마침표를 놓고 공백을 넣습니다.
1. 저장소를 내려받습니다.
2. Unity Hub에서 프로젝트를 엽니다.
3. 씬을 열고 재생합니다.
`
### 5-2 중첩
- 목록 안에 목록을 넣으려면 들여쓰기를 한다.
들여쓰기 칸 수는 ==정해진 숫자가 아니라 상위 항목의 내용이 시작되는 위치==에 맞춘다.
- 상위 항목
- 하위 항목
- 하위 항목
- 상위 항목
### 5-3 목록 안에 다른 내용 넣기
- 목록 항목 아래에 문단이나 코드 블록을 넣으려면 같은 규칙으로 들여씁니다.
```markdown
1. 프로젝트를 내려받는다.
내려받은 뒤 압축을 풀어 둡다.
2. 아래 명령으로 확인한다.
git --version
실행 방법
- 저장소를 내려받는다.
- Unity Hub에서 Add를 눌러 폴더를 지정한다.
- Scenes/Main 씬을 연다.
- 재생 버튼을 누른다.
6. 코드
6-1 개념
- 문서 안에 코드를 넣을 때는 일반 문장과 구분되게 표시한다. 구분하지 않으면 두 가지 문제가 생긴다.
- 코드 안의 기호가 마크다운 문법으로 해석된다.
- 읽는 사람이 어디까지가 코드인지 알기 어렵다
- 코드 표시에는 두 가지가 있는데, 문장 중간에 짧게 넣는 인라인 코드와, 여러 줄을 통째로 넣는 코드 블록이다.
6-2 문법 형식
- 인라인 코드
- 백틱(
)으로 감쌉니다. 백틱은 키보드에서 숫자 1 왼쪽, 물결표(~)와 같은 자리에 있다. 설정 파일은config.json이며Assets` 폴더 아래에 둔다.
설정 파일은 config.json 이며 Assets 폴더 아래에 둔다.
- 코드 블록
- 백틱 세 개로 시작하고 세 개로 닫습니다. 이 표시를 펜스(fence)라고 부른다.
using UnityEngine;
public class Player : MonoBehaviour { private void Start() { } }
- 언어 지정
-
여는 펜스 뒤에 언어 이름을 적으면 그 언어의 문법에 맞게 색이 입혀진다.```csharp
markdown```csharp using UnityEngine; public class Player : MonoBehaviour { [SerializeField] private float _moveSpeed = 5f; private void Update() { float horizontal = Input.GetAxis("Horizontal"); transform.Translate(Vector3.right * horizontal * _moveSpeed * Time.deltaTime); } }csharp```csharp using UnityEngine; public class Player : MonoBehaviour { [SerializeField] private float _moveSpeed = 5f; private void Update() { float horizontal = Input.GetAxis("Horizontal"); transform.Translate(Vector3.right * horizontal * _moveSpeed * Time.deltaTime); } } -
언어를 지정하지 않으면 색 없이 고정폭 글꼴로만 표시
언어 지정자 C# 'csharp' JSON 'json' 마크다운 'markdown' 명령어 'bash'
6-3 백틱 개수
- 여는 펜스가 백틱 3개일 때 안쪽 내용에 백틱 3개짜리 줄이 나오면, 그 줄이 닫는 펜스 조건을 만족하므로 거기서 코드 블록이 끝나 버립니다. 바깥을 4개로 하면 안쪽의 3개는 닫는 조건을 만족하지 않아 내용으로 남는다.
| 바깥 펜스 | 안쪽의 백틱 3개를 | 결과 |
|---|---|---|
| 백틱 3개 | 닫는 펜스로 인식 | 코드 블록이 중간에 끊깁니다 |
| 백틱 4개 | 조건 미달로 판단 | 내용으로 그대로 남습니다 |
ex).
private void Update()
{
float horizontal = Input.GetAxis("Horizontal");
transform.Translate(Vector3.right * horizontal * _moveSpeed * Time.deltaTime);
}
-명령어를 안내할 때도 코드 블록을 쓴다.
````markdown
버전을 확인합니다.
```bash
git --version
---
# 7. 인용문과 수평선
### 7-1 개념
- 인용문은 다른 것에서 가져온 문장이나 특별히 구분해 보일 내용을 표시합니다.
렌더링하면 왼쪽에 세로선이 붙고 안쪽으로 들여쓰인 형태로 표시된다.
수평선은 문서에 **가로선**을 그어 내용을 크게 나눈다.
**인용문**
**-줄 앞에 '>'를 붙인다**
---
7. 인용문과 수평선
7-1 개념
- 인용문은 다른 곳에서 가져온 문장이나 특별히 구분해 보일 내용을 표시한다.
- 렌더링하면 왼쪽에 세로선이 붙고 들여쓰인 형태로 표시된다.
7-2 인용문
- 줄 앞에 '>'를 놓고 공백을 넣는다.
- '>'를 여러 개 겹치면 인용 안의 인용이 된다.
- 인용문 안에는 목록,코드 블록 같은 다은 문법을 넣을 수 있다.
8. 링크와 이미지
8-1 개념
- ㄹ이크는 다른 문서나 웹 주소로 이동하는 표시이고, 이미지는 그림을 문서 안에 표시하는 것이다.
- 두 문법은 형태가 거의 같고 이미지 문법이 링크 문법 앞에 느낌표를 붙인 모양이다.
8-2 문법 형식
- 대괄호에 표시할 글자를, 소괄호에 주소를 쓴다.
- 주소 뒤에 따옴표로 설명을 붙이면 마우스를 올렸을 떄 표시된다.
문서 내 이동
- 같은 문서 안의 제목으로 이동하는 링크를 만들 수 있다.
- 주소 자리에 '#'과 제목을 소문자로 바꾸고 공백을 '-'로 바꾼 값을 쓴다.
상대 경로
- 같은 저장소 안의 다른 파일로 연결할 떄는 전체 주소 대신 상대 경로를 쓴다.
| 요소 | 위치 | 역할 |
|---|---|---|
| ! | 맨 앞 | 링크가 아니라 이미지임을 표시 |
| [대체 텍스트] | 대괄호 | 이미지를 볼 수 없을 때 표시할 설명 |
| (경로) | 소괄호 | 이미지 파일의 위치 |
9. 표
9-1 개념
- 표는 항목을 행과 열로 정리해 보이는 것이다.
- 여러 대상을 같은 기준으로 비교할 때 문장보다 읽기 쉽다.
9-2 문법 형식
- 파이프(|)로 칸을 나눕니다. 첫 줄이 열 이름이고, 둘째 줄은 -로 이뤄진 구분행이며, 셋째 줄부터 내용입니다.
| 컴포넌트 | 역할 |
|---|---|
| Transform | 위치·회전·크기 |
| Rigidbody | 물리 연산 |
| Collider | 충돌 판정 |
정렬
- 구분행에 콜론을 넣어 열의 정렬을 지정합니다.
markdown
| 왼쪽 | 가운데 | 오른쪽 | |:---|:---:|---:| | 1 | 2 | 3 | | 10 | 20 | 30 |
10. 확장 문법
10-1 개념
- 표준 마크다운에 없지만 GitHub에서 쓸 수 있는 문법들이 있다.
- 표도 그중 하나였고, 이 장에서는 나머지를 모아 다룬다
- GFM에는 공식 명세 문서가 있는데, 그 문서에 실린 확장 목록과 GitHub이 실제로 렌더링하는 문법의 범위가 같지 않는다.
10-2 문법 형식
- 목록 항목 앞에 대괄호를 넣어 완료 여부를 표시한다.
- [x] 플레이어 이동 구현
- [x] 장애물 생성
- [ ] 점수 표시
- [ ] 사운드 추가
렌더링하면 각 항목 앞에 체크 상자가 붙고, [x]로 표시한 항목은 체크된 상태로 나타난다.
취소선
- 물결표 두 개로 감싼다
~~취소된 내용~~
취소된 내용
수정 이력을 남길 때나 더 이상 유효하지 않은 항목을 표시할 때 쓴다.
각주
- 본문에 표시를 남기고 문서 아래쪽에 내용을 적는다.
알림 상자
- 인용문 첫 줄에 정해진 표시를 넣으면 색과 아이콘이 붙은 상자로 표시된다.
markdown
> [!NOTE] > 참고할 내용입니다. > [!WARNING] > 주의가 필요한 내용입니다.
GitHub이 지원하는 종류는 다섯 가지입니다.
| 표시 | 용도 |
|---|---|
| [!NOTE] | 알아 두면 좋은 내용 |
| [!TIP] | 도움이 되는 요령 |
| [!IMPORTANT] | 반드시 알아야 할 내용 |
| [!WARNING] | 주의가 필요한 내용 |
| [!CAUTION] | 위험을 알리는 내용 |
다이어그램
- 코드 블록의 언어 자리에 ' mermaid'를 적으면 그 안의 내용이 그림으로 그려진다
수식
- 수학 식을 넣을 수 있습니다. LaTeX(레이텍, 수식을 글자로 적는 표기법) 문법으로 쓰면 식의 모양으로 그려집니다.
- 문장 안에 넣을 때는 달러 기호로 감쌉니다.
화면 비율은 $16:9$ 이고 대각선 길이는 $\sqrt{16^2 + 9^2}$ 입니다.
달러 기호를 글자로 쓸 때는 자리에 따라 방법이 다릅니다. 한 줄 안에 달러 기호가 두 개 나오면 그 사이가 식으로 해석될 수 있어, 가격을 적을 때 자주 겪습니다.
문서에 주의 사항을 넣을 때 알림 상자를 씁니다.
> [!WARNING]
> 이 스크립트는 씬에 하나만 존재해야 합니다.
> 두 개 이상이면 입력이 중복 처리됩니다.
11. 렌더러에 따른 차이
11-1 개념
- 같은 .md 파일이라도 어떤 프로그램으로 여느냐에 따라 결과가 달라진다. 표준에 있는 문법은 어디서나 같게 보이지만, 확장 문법은 그 확장을 지원하는 곳에서만 동작한다.
11-2 문법 형식
| 문법 | 뜻 | GitHub에서는 |
|---|---|---|
| [[노트 이름]] | 위키링크. 같은 볼트(vault, Obsidian이 하나의 묶음으로 다루는 폴더)의 다른 노트로 연결 | 글자 그대로 표시됩니다 |
| ![[파일명]] | 임베드. 다른 파일의 내용을 문서 안에 끌어와 표시 | 글자 그대로 표시됩니다 |
| 글자 | 하이라이트. 형광펜 표시 | 등호가 그대로 보입니다 |
비슷하지만 다른 문법
- 인용문에 표시를 넣어 상자를 만드는 문법은 양쪽 모두에 있다.
환경별 지원 정리
| 문법 | 표준 | GitHub | Obsidian |
|---|---|---|---|
| 제목·문단·강조·목록 | O | O | O |
| 인용문·수평선 | O | O | O |
| 링크·이미지 | O | O | O |
| 코드 블록 | O | O | O |
| 꺾쇠 자동 링크 <주소> | O | O | O |
| 맨 주소 자동 링크 | X | O | O |
| 표 | X | O | O |
| 작업 목록 | X | O | O |
| 취소선 | X | O | O |
| 각주 | X | O | O |
| 다이어그램(mermaid) | X | O | O |
| 수식 $...$ · $$...$$ | X | O | O |
| 수식 백틱형 · math 코드 블록 | X | O | 공식 문서에 없음 |
| 알림 상자·콜아웃 | X | O (5종) | O (다수) |
| 하이라이트 == | X | X | O |
| 위키링크 [[ ]] | X | X | O |
| 임베드 ![[ ]] | X | X | O |
11-3 사용 예
- 두 환경 모두에서 문제없이 보여야 하는 문서는 아래 기준으로 쓴다.
-링크와 이미지는 표준 문법으로 씁니다. [[ ]]를 쓰지 않습니다.
-강조는 *와 로 합니다. ==를 쓰지 않습니다.
-표·작업 목록·취소선은 써도 됩니다. 양쪽 모두 지원합니다.
-알림 상자를 쓴다면 GitHub이 지원하는 다섯 종류 안에서 고릅니다.



