이 CSV 마크다운 변환기는 GitHub, GitLab, Obsidian, 대부분의 정적 사이트 생성기가 렌더링하는 파이프 표를 만듭니다. 스프레드시트에서 복사했거나 데이터베이스에서 내보낸 행을 붙여 넣으면 헤더 줄, 구분 줄, 레코드별 줄이 만들어져 README, 이슈, 문서 페이지에 바로 넣을 수 있습니다.
손으로 표를 쓸 때 흔히 깨지는 부분은 변환기가 처리합니다. 셀 안의 파이프는 열을 일찍 끝내 버리므로 \|로 이스케이프하고, 줄바꿈은 행을 끊어 버리므로 <br>로 바꿉니다. 숫자만 있는 열에는 오른쪽 정렬 ---: 구분자를 붙이고, ‘열 너비 맞추기’는 원문에서도 열이 나란히 보이도록 공백을 채워 diff에서 읽기 쉽게 만듭니다. 이때 한글·한자 같은 CJK 문자는 두 칸 너비로 셉니다. 셀 값의 타입은 바꾸지 않아 4.50은 4.50 그대로입니다.
표는 브라우저 안에서 만들어지며, 입력한 내용은 서버로 전송되지 않습니다. 입력 한도는 20 MiB, 데이터 행 50,000개, 열 200개입니다.
사용 방법
CSV 붙여 넣기 또는 열기
행을 붙여 넣거나 .csv, .tsv 파일을 끌어다 놓거나 예제를 불러옵니다. 엑셀이나 구글 시트에서 바로 복사한 셀은 탭으로 구분되어 들어오며 구분자 감지가 이를 알아봅니다.
구분자와 헤더 확인
입력창 아래 배지에 ‘자동 감지’가 앞쪽 레코드들의 열 수를 비교해 고른 구분자가 표시됩니다. 첫 행을 표 헤더로 쓰려면 ‘첫 행은 헤더’를 켜 두고, 데이터에 헤더가 없으면 끄세요. 그러면 헤더 행이 column_1, column_2 식으로 채워집니다.
정렬과 너비 맞추기 정하기
‘숫자 오른쪽 정렬’은 숫자만 있는 열에
---:구분자를 붙입니다. ‘열 너비 맞추기’는 고정폭 편집기에서 파이프가 나란히 서도록 공백을 넣으며, 가장 간결한 원문을 원하면 끄세요.셀 수가 다른 레코드 확인
‘빈 줄 건너뛰기’는 빈 줄을 버립니다. 셀이 남는 레코드가 있으면 column_N이라는 열이 추가되고, 모자란 레코드는 빈 셀로 채워지며, 셀 수가 다른 레코드 수가 안내에 표시됩니다.
표 복사
마크다운을 복사하거나 table.md로 내려받아 GFM 표를 지원하는 편집기에 붙여 넣습니다.
작동 원리
GFM 표의 구조
GitHub Flavored Markdown 표(CommonMark 위에 GFM 명세가 정의한 확장)는 헤더 행, 구분 행, 본문 행으로 이뤄집니다. 셀은 파이프로 나누고, 구분 행이 정렬을 정합니다. ---는 기본, :---는 왼쪽, :---:는 가운데, ---:는 오른쪽입니다. 명세상 맨 앞과 맨 뒤의 파이프는 생략할 수 있지만 변환기는 항상 붙여 씁니다. 렌더러는 대시 개수와 채움 공백을 무시하므로, 너비를 맞춘 출력과 간결한 출력은 렌더링하면 똑같습니다.
파이프 표는 한 셀 안에 여러 문단, 목록, 병합 셀을 담을 수 없습니다. 인라인 텍스트를 넘는 내용은 납작하게 풀어야 하며, 줄바꿈이 <br>로 바뀌는 이유가 이것입니다.
| name | role | score |
| ---- | -------------------- | ----: |
| Ari | designer \| lead | 9.5 |
| Bea | Line one<br>Line two | 12 |이스케이프, 정렬, 너비 맞추기 규칙
헤더 셀을 포함한 모든 셀에서 먼저 역슬래시를 두 개로 만들고, 파이프를 \|로 이스케이프한 다음, 줄바꿈(LF, CRLF, CR)을 <br>로 바꿉니다. 나머지 텍스트는 그대로 복사하므로 HTML 태그나 *, _ 같은 마크다운 문자는 서식으로 렌더링됩니다.
채워진 셀이 모두 사람이 읽는 숫자 표기일 때 숫자 열로 봅니다. 천 단위 쉼표, 소수부, 끝의 퍼센트 기호가 붙어도 되므로 1,250, 4.50, 12%도 숫자입니다. 값을 변환하지 않으니 앞자리 0도 괜찮습니다. ‘열 너비 맞추기’가 켜져 있으면 숫자는 왼쪽, 텍스트는 오른쪽에 공백을 채우고, CJK 문자와 전각 문자는 두 칸으로 세어 고정폭 글꼴에서 파이프가 나란히 섭니다.
| 셀 내용 | 출력 |
|---|---|
| a|b | a\|b |
| C:\temp | C:\\temp |
| 첫 줄 + 줄바꿈 + 둘째 줄 | 첫 줄<br>둘째 줄 |
| 4.50 | 4.50 (타입 변환 없음) |
헤더와 셀 수가 다른 레코드
‘첫 행은 헤더’가 켜져 있으면 헤더 셀은 앞뒤 공백만 다듬어 CSV에 적힌 대로 쓰고, 빈 헤더는 위치에 따라 column_N이 됩니다. 마크다운 표는 같은 이름을 두 번 보여 줄 수 있으므로 반복된 이름은 안내 없이 그대로 둡니다. 헤더보다 셀이 많은 레코드가 있으면 column_N 열이 추가되고, 모자란 레코드는 빈 셀로 채워지므로 버려지는 값은 없습니다. 변환기가 새로 지은 열 이름은 안내에 모두 표시됩니다.
이 스위치를 끄면 CSV 첫 행도 데이터로 다루고 헤더 행에는 column_1, column_2 등이 들어갑니다. GFM 표는 헤더 행 없이는 존재할 수 없기 때문입니다.
실제 예시
name,role,score
Ari,designer | lead,9.5
Bea,"Line one
Line two",12| name | role | score |
| ---- | -------------------- | ----: |
| Ari | designer \| lead | 9.5 |
| Bea | Line one<br>Line two | 12 |기본 옵션입니다. 파이프는 이스케이프되고, 따옴표로 감싼 두 줄짜리 셀은 <br>로 한 행에 남으며, score 열은 오른쪽 정렬됩니다.
city pop_m note
서울 9.4 수도
Busan 3.3 | city | pop_m | note |
| ----- | ----: | ---- |
| 서울 | 9.4 | 수도 |
| Busan | 3.3 | |스프레드시트에서 복사한 탭 구분 데이터입니다. 서울은 네 칸 너비로 계산되어 고정폭 글꼴에서 파이프가 나란히 섭니다. pop_m은 숫자만 있어 오른쪽 정렬되고, 빈 note 셀은 공백으로 채워집니다.
item,price,stock
Tea,4.50,12
Coffee,3.00,| item | price | stock |
| --- | ---: | ---: |
| Tea | 4.50 | 12 |
| Coffee | 3.00 | |‘열 너비 맞추기’를 끈 결과입니다. 구분 행은 단순한 ---와 ---:를 쓰고, 빈 stock 셀은 파이프 사이 공백 두 칸뿐입니다. 4.50과 3.00은 끝자리 0을 그대로 지킵니다.
Seoul,21
Busan,19| column_1 | column_2 |
| -------- | -------: |
| Seoul | 21 |
| Busan | 19 |‘첫 행은 헤더’를 끈 결과입니다. CSV 두 행이 모두 데이터가 되고, 헤더에는 나중에 이름을 바꿀 수 있도록 column_1과 column_2가 들어갑니다.
item,price,
Tea,4.50,hot
C:\temp,,
Coffee,3.00,iced,extra| item | price | column_3 | column_4 |
| -------- | ----: | -------- | -------- |
| Tea | 4.50 | hot | |
| C:\\temp | | | |
| Coffee | 3.00 | iced | extra |비어 있던 세 번째 헤더는 column_3이 됐고, 마지막 레코드의 남는 셀은 column_4 열을 만들었으며, 셀 수가 다른 레코드와 새로 지은 두 이름이 안내에 표시됩니다. C:\temp의 역슬래시는 마크다운이 이스케이프로 읽지 않도록 두 개가 됐습니다.
자주 하는 실수
셀 안의 HTML·마크다운은 이스케이프되지 않음
<b>x</b>나*y*가 든 셀은 그대로 복사되어 굵게나 강조로 렌더링되거나 sanitizer가 지울 수 있습니다. 글자 그대로 보이게 하려면 CSV에서 미리 이스케이프하세요.단위나 자리 표시가 있으면 텍스트 열
오른쪽 정렬은 채워진 셀이 모두 숫자처럼 보여야 적용됩니다.
n/a,$5,12 kg가 하나라도 있으면 기본---구분자를 쓰는 텍스트 열이 됩니다. 자리 표시를 지우거나weight_kg처럼 단위를 헤더로 옮기세요.이모지는 너비 맞추기를 어긋나게 함
너비 계산에서 CJK와 전각 문자는 두 칸으로 세지만, 이모지와 많은 기호는 한 칸으로 셉니다. 대부분의 편집기는 이모지를 두 칸 너비로 그리므로 이모지가 든 표는 원문에서 살짝 어긋나 보일 수 있습니다. 렌더링 결과에는 영향이 없습니다.
너무 넓은 표는 원문이 읽기 어려움
파이프 표는 렌더링은 쉽지만 열이 많거나 셀이 길면 diff로 검토하기 어렵습니다. 열이 대여섯 개를 넘으면 CSV 파일을 두고 링크하는 편이 낫습니다.
모든 렌더러가 표를 지원하지는 않음
파이프 표는 CommonMark 자체가 아니라 GFM 확장입니다. 순수 CommonMark 렌더러는 파이프를 그냥 글자로 보여 줍니다. 위키나 채팅 앱 같은 대상에서 표가 켜져 있는지 확인하세요.
자주 묻는 질문
엑셀 시트를 마크다운 표로 바꾸려면?
엑셀이나 구글 시트에서 셀을 선택해 복사하고 여기에 붙여 넣으세요. 복사한 셀은 탭으로 구분되어 들어오고 ‘자동 감지’가 탭을 알아봅니다. 그다음 마크다운 출력을 복사하면 됩니다.
GitHub에서 잘 보이나요?
네. GitHub는 README, 이슈, 풀 리퀘스트, 위키에서 파이프 표와 ---: 오른쪽 정렬을 렌더링합니다. 출력은 표준 헤더·구분·본문 행 구조를 씁니다.
셀 안의 파이프 문자는 어떻게 처리되나요?
파이프 앞에 역슬래시를 붙여 이스케이프하므로 새 열이 시작되지 않고 셀 안에 남습니다.
헤더 행이 없는 데이터도 바꿀 수 있나요?
네. 마크다운 표에는 헤더 행이 꼭 필요하므로, ‘첫 행은 헤더’를 끄면 첫 행은 데이터로 남고 헤더에는 column_1, column_2 등이 들어갑니다. 이 이름은 나중에 바꾸면 됩니다.
마크다운 원문에서 열 너비가 맞춰지나요?
기본으로 맞춰집니다. ‘열 너비 맞추기’는 각 셀을 같은 열에서 가장 넓은 셀에 맞춰 채우며, 한글 같은 CJK 문자는 두 칸으로 셉니다. 끄면 파이프 양옆에 공백 한 칸만 두며, 렌더링 결과는 같습니다.
어떤 열이 오른쪽 정렬되는 이유는?
‘숫자 오른쪽 정렬’이 켜져 있고 그 열의 채워진 셀이 모두 12, 4.50, 1,250, 12%처럼 숫자로 보이기 때문입니다. 모든 열을 ---로 쓰려면 이 스위치를 끄세요.
데이터가 서버로 전송되나요?
아니요. 입력한 내용은 브라우저 안에서 처리되며 서버로 전송되지 않으므로, 붙여 넣은 내부 수치가 기기 밖으로 나가지 않습니다.
마지막 업데이트:
