마크다운 표 정렬, 공백이 아니라 구분선이 결정한다

마크다운 표를 손으로 쓰다가 글자를 가운데 정렬하고 싶은데 스페이스바를 아무리 눌러도 안 먹힌 적이 있을 겁니다. 마크다운 표의 정렬은 사실 띄어쓰기가 아니라 전혀 다른 곳에서 결정됩니다.
요약 ① 마크다운 표의 정렬은 셀 안의 공백이 아니라, 헤더 바로 아래 구분선 줄의 콜론(:) 위치로 결정됩니다. ②
:---는 왼쪽,:---:는 가운데,---:는 오른쪽 정렬을 뜻하는 약속된 표기입니다. ③ 이 구분선 줄이 없거나 형식이 안 맞으면, 표 모양의 텍스트를 넣어도 표로 인식되지 않고 그냥 글자 그대로 보일 수 있습니다.
표를 표로 인식시키는 두 번째 줄
마크다운에서 표는 최소 두 줄로 이뤄집니다. 첫 줄은 각 칸을 세로선(|)으로 구분한 제목 행이고, 그 바로 다음 줄은 하이픈(-)으로만 이뤄진 구분선입니다. 이 구분선이 있어야 마크다운 렌더러가 "아, 이건 표구나"라고 인식하고, 그 위 줄을 제목으로 처리합니다.
문제는 이 구분선이 정렬 정보까지 함께 담당한다는 점입니다. 눈으로 보기엔 그냥 하이픈이 나열된 줄이지만, 하이픈 앞뒤에 콜론이 붙어 있는지에 따라 그 열의 정렬 방식이 완전히 달라집니다.
콜론 하나의 위치가 정렬을 결정한다
구분선에서 콜론이 어디에 붙어 있는지에 따라 세 가지 정렬이 정해집니다. 왼쪽에만 콜론이 있는 :---는 왼쪽 정렬, 양쪽에 콜론이 있는 :---:는 가운데 정렬, 오른쪽에만 콜론이 있는 ---:는 오른쪽 정렬입니다. 콜론이 아예 없는 ---는 렌더러의 기본값(대개 왼쪽)을 따릅니다.
셀 안에 아무리 스페이스를 많이 넣어 글자를 가운데로 밀어 넣어도 렌더링 결과에는 영향을 주지 않습니다. 마크다운 렌더러는 셀 안의 앞뒤 공백을 무시하고, 오직 구분선의 콜론 위치만 보고 정렬을 계산하기 때문입니다.
행·열과 정렬만 지정하면 정확한 마크다운 표 문법을 즉시 만들어주는 마크다운 표 생성기

구분선 형식이 어긋나면 생기는 일
구분선 줄의 칸 수가 제목 행과 안 맞거나, 하이픈이 아닌 다른 문자가 섞여 있으면 마크다운 렌더러는 이 텍스트 전체를 표로 인식하지 못할 수 있습니다. 이 경우 표 모양을 갖추려던 세로선과 하이픈이 그대로 글자로 노출되어, 의도한 표 대신 알아보기 어려운 기호 나열만 남게 됩니다.
도구가 이 문법을 대신 처리하는 방식
마크다운 표 생성기는 행·열 개수를 정하고 각 칸에 내용을 입력하면, 제목 행과 정렬 정보가 반영된 구분선, 본문 행을 정확한 문법으로 자동 조립합니다. 열마다 왼쪽·가운데·오른쪽 정렬을 선택할 수 있고, 선택한 즉시 구분선의 콜론 위치가 바뀐 결과가 실시간으로 반영됩니다. 셀 안에 세로선(|)이나 줄바꿈처럼 표 문법과 충돌하는 문자를 넣어도 자동으로 이스케이프 처리되어 표가 깨지지 않습니다.
정리
- 마크다운 표의 정렬은 셀 안의 공백이 아니라 헤더 아래 구분선 줄의 콜론 위치로 결정됩니다.
:---(왼쪽) ·:---:(가운데) ·---:(오른쪽) 세 가지 표기로 열마다 다른 정렬을 지정할 수 있습니다.- 구분선의 칸 수가 제목 행과 안 맞거나 형식이 어긋나면 표 전체가 인식되지 않을 수 있습니다.
- 셀 안의 세로선(|)이나 줄바꿈은 표 문법과 충돌하므로 이스케이프 처리가 필요합니다.
- 마크다운 표 생성기는 정렬 선택과 특수문자 이스케이프를 자동으로 처리해 정확한 문법의 표를 만들어 줍니다.
행·열과 정렬만 지정하면 정확한 마크다운 표 문법을 즉시 만들어주는 마크다운 표 생성기
자주 묻는 질문
셀 안에서 스페이스로 글자를 가운데로 밀면 가운데 정렬이 되나요?
되지 않습니다. 마크다운 렌더러는 셀 안의 앞뒤 공백을 무시하고 구분선 줄의 콜론 위치만으로 정렬을 계산합니다. 가운데 정렬을 원한다면 구분선을 :---: 형식으로 만들어야 합니다.
정렬을 지정하지 않으면 어떻게 되나요?
구분선에 콜론 없이 하이픈만 있으면(---) 정렬 정보가 없는 상태이며, 이 경우 화면에 표시하는 렌더러의 기본 정렬(보통 왼쪽)을 따르게 됩니다.
표 모양처럼 세로선을 넣었는데 표로 안 보여요. 왜 그런가요?
가장 흔한 원인은 제목 행 바로 아래에 하이픈으로 된 구분선이 없거나, 구분선의 칸 수가 제목 행의 칸 수와 맞지 않는 경우입니다. 구분선 없이는 렌더러가 표로 인식하지 못하고 입력한 세로선과 글자를 그대로 텍스트로 보여줍니다.
셀 안에 세로선(|) 문자를 그대로 넣고 싶으면 어떻게 하나요?
세로선은 열을 구분하는 문법 기호이기 때문에 그대로 넣으면 새로운 칸이 생긴 것으로 오해될 수 있습니다. 이 도구를 사용하면 셀에 입력한 세로선을 자동으로 이스케이프 처리해 표가 깨지지 않도록 해줍니다.
