마크다운 표를 엑셀 CSV로 안전하게 변환하는 법

노션이나 깃허브에서 만든 마크다운 표를 복사해서 엑셀이나 구글 스프레드시트에 바로 붙여넣으면, 표가 셀별로 나뉘지 않고 한 줄에 뭉쳐서 붙거나 헤더 구분선까지 데이터로 취급되어 서식이 망가지는 현상을 자주 겪게 됩니다. 이 문제는 마크다운 표가 사람이 읽기 편하게 파이프(|)와 하이픈(-) 문자로 행과 열을 시각화한 텍스트일 뿐, 스프레드시트가 인식하는 데이터 구조(CSV/TSV)가 아니기 때문에 발생합니다.
핵심 요약 ① 마크다운 표는 파이프(|)와 구분선(|---|)으로 이루어진 텍스트이므로 엑셀에 바로 붙여넣으면 한 열로 뭉칩니다. ② 셀 안에 쉼표나 줄바꿈, 이스케이프된 파이프(|)가 포함되어 있으면 단순 치환 시 데이터 열이 엉뚱하게 밀립니다. ③ 한글이 포함된 마크다운 표를 엑셀에서 열 때는 반드시 UTF-8 BOM이 적용된 CSV로 변환해야 글자 깨짐이 없습니다.
마크다운 표가 엑셀에서 깨지는 근본적인 이유
노션(Notion), 깃허브(GitHub), 옵시디언(Obsidian) 등 마크다운 지원 도구에서 작성한 표는 보통 다음과 같은 형태를 띱니다.
| 이름 | 부서 | 직급 |
|---|---|---|
| 홍길동 | 개발팀 | 선임 |
| 이영희 | 기획팀 | 책임 |
이 표를 마우스로 긁어 엑셀에 붙여넣으면 엑셀은 파이프(|)를 열 구분 기호로 자동 인식하지 못합니다. 그 결과 첫 번째 줄의 "| 이름 | 부서 | 직급 |" 전체가 엑셀의 A1 셀 하나에 통째로 들어가 버립니다.
설령 엑셀의 텍스트 나누기 기능으로 파이프를 구분자로 지정하더라도, 두 번째 줄의 "|---|---|---|" 구분선이 데이터 행으로 그대로 남아 불필요한 행 삭제 작업을 매번 수기로 반복해야 합니다.
무료 · 가입 불필요 · 붙여넣기만 하면 구분선과 정렬 기호까지 자동으로 정리

📖 실제 사용자들이 겪는 현실적인 마크다운 표 변환 참사 사연
사연 1: 노션 스프린트 백로그 200줄을 엑셀로 옮기다 마감을 놓친 PM
IT 스타트업 프로덕트 매니저 A씨는 노션 페이지에 정리된 200여 개의 스프린트 백로그 표를 경영진 주간 보고용 엑셀 시트로 옮겨야 했습니다. 노션에서 표를 복사해 엑셀에 붙여넣었더니 모든 행이 A열에 한 줄로 뭉개졌습니다. 마감 시간이 1시간도 남지 않은 상황에서 급한 마음에 텍스트 나누기를 시도했으나, 헤더 구분선 줄이 중간에 끼어들고 앞뒤 빈 열이 생기면서 200개 셀을 손으로 일일이 지우느라 보고 시간을 놓쳤습니다.
사연 2: 백엔드 개발자의 DB 스키마 컬럼 밀림 사태
개발자 B씨는 깃허브 README에 정리된 DB 스키마 테이블을 QA팀에 공유하기 위해 메모장에서 파이프(|)를 쉼표(,)로 단순 치환했습니다. 엑셀에서 열어보니 정규식 설명 셀 안에 들어있던 OR 연산자 기호 | (이스케이프 파이프)까지 전부 쉼표로 치환되어 45번째 행부터 모든 컬럼이 오른쪽으로 1칸씩 밀려 데이터가 완전히 오염되었습니다.
사연 3: 마케터의 고객 설문 데이터 줄바꿈 왜곡 현상
마케터 C씨는 고객 만족도 조사 결과 마크다운 테이블을 엑셀로 내보내 피벗 테이블을 돌리려 했습니다. 하지만 고객이 작성한 서술형 답변 안에 줄바꿈(
)과 쉼표(,)가 포함되어 있어, CSV 파일로 저장하자마자 하나의 고객 응답이 여러 줄로 쪼개져 통계 인원수가 150명에서 230명으로 왜곡되는 심각한 오류를 겪었습니다.
🔬 핵심 기술 메커니즘 — 마크다운 파이프 파싱과 RFC 4180 CSV 규격
왜 마크다운 표는 엑셀과 호환되지 않으며, 올바른 변환 파이프라인은 어떻게 동작해야 할까요?
1. GFM(GitHub Flavored Markdown) 표 문법의 파싱 구조
- 양 끝 파이프 트림: 줄의 시작과 끝에 위치한 테두리 파이프를 먼저 제거해야 엑셀에서 빈 열이 생기지 않습니다.
- 정렬 구분선 필터링: 문법용 정렬 구분선 행(|:---|:---:|---:|)을 정규식으로 정확히 감지해 제거해야 합니다.
- 이스케이프 시퀀스 보존: 역슬래시로 보호된 파이프(|)는 열 구분자가 아닌 일반 텍스트로 보존해야 컬럼 밀림이 발생하지 않습니다.
2. RFC 4180 국제 표준 CSV 인코딩 규칙
- 쉼표가 포함된 셀: 값 내부에 쉼표가 들어있다면 해당 셀 전체를 반드시 큰따옴표("")로 감싸야 합니다.
- 줄바꿈이 포함된 셀: 마크다운의
태그를 실제 개행으로 변환할 때는 해당 셀 전체를 큰따옴표로 감싸야 엑셀이 동일한 셀 내의 멀티라인 텍스트로 인식합니다. - UTF-8 BOM(Byte Order Mark) 삽입: 윈도우 엑셀은 UTF-8 문서에 BOM 시그니처가 없으면 기본 ANSI(CP949)로 오인하여 한글을 깨뜨립니다.
📊 마크다운 표 변환 방식별 장단점 비교
| 변환 방식 | 소요 시간 | 이스케이프/줄바꿈 대응 | 한글 깨짐 방지 | 추천 대상 |
|---|---|---|---|---|
| 엑셀 단순 붙여넣기 | 5초 | ❌ 불가 (1개 열로 뭉침) | ❌ 인코딩 오류 빈번 | 1~2줄짜리 단순 텍스트 |
| 메모장 파이프 수기 치환 | 5~10분 | ❌ 실패 (열 밀림 발생) | ⚠️ 수동 ANSI 저장 필요 | 비추천 |
| 엑셀 텍스트 나누기 마법사 | 2~3분 | ⚠️ 부분 가능 (구분선 수동 삭제) | ⚠️ 번거로운 추가 작업 | 엑셀 고급 숙련자 |
| 본 사이트 실시간 변환 도구 | 즉시 1초 | 100% 완벽 자동 처리 | UTF-8 BOM 자동 탑재 | 모든 기획자·개발자·학생 |
⚠️ 마크다운 표를 엑셀로 옮길 때 흔히 하는 5가지 실수
- 헤더 구분선(|---|) 줄 방치: 데이터에 --- 문자가 남아 수식 계산 시 #VALUE! 에러를 유발합니다.
- 텍스트 내 쉼표가 들어간 주소/금액 데이터 파손: 1,000,000이나 서울시, 마포구 같은 데이터가 쉼표 기준으로 쪼개져 엉뚱한 열로 흩어집니다.
- 줄 양 끝 파이프 미정리로 인한 A열/Z열 공백 발생: 엑셀 첫 열과 마지막 열에 빈 셀이 추가되어 VLOOKUP 수식이 깨집니다.
- 한글 깨짐 무시하고 CSV 저장: UTF-8 BOM 없이 저장해 엑셀에서 열었다가 한글이 깨지는 현상이 발생합니다.
- 수식 기호(=, +, -, @)로 시작하는 셀 방치: 셀 첫 글자가 =나 -로 시작하면 엑셀이 이를 수식으로 자동 인식하여 에러를 발생시킵니다.
💡 마크다운 표 ➔ 엑셀 완벽 변환 5단계 실전 워크플로우
- 1단계 (마크다운 원문 복사): 노션의 표 블록 메뉴에서 마크다운으로 복사를 선택하거나, 깃허브 Raw 문서에서 표 텍스트를 복사합니다.
- 2단계 (온라인 변환기 입력): 본 사이트의 마크다운 표 변환기 입력창에 복사한 텍스트를 그대로 붙여넣습니다.
- 3단계 (실시간 정규화 및 미리보기 확인): 도구가 자동으로 헤더 구분선을 제거하고 이스케이프된 파이프를 복원하여 생성한 실시간 표 미리보기를 검수합니다.
- 4단계 (CSV 다운로드 또는 클립보드 복사): CSV 다운로드 버튼을 눌러 UTF-8 BOM이 적용된 파일을 받거나, 엑셀용 복사(TSV) 버튼을 클릭합니다.
- 5단계 (스프레드시트 열기 및 활용): 엑셀이나 구글 시트에서 열어 컬럼 밀림 없이 완벽하게 분리된 데이터를 즉시 필터링 및 수식 연산에 활용합니다.
💼 직무별 마크다운 표 변환 실전 활용 팁
- 개발자 / 엔지니어: DB 테이블 덤프나 Swagger API 응답 스키마 마크다운을 엑셀로 1초 만에 변환하여 기획팀 및 클라이언트 전달용 산출물 문서로 가공합니다.
- 프로덕트 매니저(PM): 노션 스프린트 백로그와 유저 스토리 맵 테이블을 구글 스프레드시트로 내보내 프로젝트 일정 간트차트와 연동합니다.
- 데이터 분석가 / 리서처: 깃허브 오픈소스 저장소의 벤치마크 결과 마크다운 표를 CSV로 변환하여 Python Pandas 데이터프레임으로 즉시 불러옵니다.
- 테크니컬 라이터 / 블로거: 옵시디언이나 벨로그에 작성한 제품 스펙 비교표를 엑셀로 내보내 서식을 입힌 뒤 PDF 보고서로 인쇄 출력합니다.
🔍 마크다운 표 변환 전문가가 공개하는 비밀 팁 7선
- 노션 표 전체 선택 단축키: 표 블록의 왼쪽 상단 6점 핸들을 클릭하거나 Ctrl/Cmd + A를 두 번 누르면 표 안의 서식 없이 순수 마크다운으로 1초 만에 복사됩니다.
- 깃허브 위키 및 PR 템플릿 검증: 복사 전에 마크다운 뷰어에서 파이프 수가 헤더와 행마다 일치하는지 확인하면 불필요한 줄바꿈 오류를 사전에 차단합니다.
- 구글 스프레드시트 직행 단축키: CSV 파일 다운로드 없이 엑셀용 복사(TSV) 버튼을 누른 뒤 구글 시트에서 Ctrl + V를 누르면 즉시 셀 단위로 깔끔하게 들어갑니다.
- 대용량 마크다운 테이블(1,000행 이상) 분할 팁: 브라우저 메모리 부담을 덜기 위해 500행 단위로 나누어 변환하면 초고속으로 완료됩니다.
- 셀 내부 따옴표 처리: 데이터에 이미 큰따옴표가 포함된 경우 RFC 4180 규격에 따라 ""로 자동 이중화 처리되므로 안심하고 변환하셔도 됩니다.
- 날짜 포맷 정규화: 2026.08.11 또는 2026-08-11 형태의 날짜 텍스트는 엑셀이 자동으로 날짜형 데이터로 인식하여 피벗 분석에 즉시 활용 가능합니다.
- 숫자 천단위 쉼표와 텍스트 구분: 숫자 사이에 들어간 쉼표(예: 1,250,000)는 셀 전체 인캡슐레이션을 통해 하나의 통화 데이터로 온전히 보존됩니다.
🎯 최종 결정 트리: 어떤 내보내기 방식을 써야 할까?
- 시나리오 A (마이크로소프트 엑셀에서 바로 열기) ➔ UTF-8 BOM CSV 다운로드 선택 (한글 100% 깨짐 방지)
- 시나리오 B (구글 스프레드시트 / 노션에 바로 붙여넣기) ➔ 클립보드 TSV 복사 선택 (별도 파일 다운로드 없이 즉시 붙여넣기)
- 시나리오 C (웹 개발 / JSON API 연동) ➔ JSON 변환기 선택 (Key-Value 객체 배열로 자동 변환)
- 시나리오 D (SQL 데이터베이스 일괄 INSERT) ➔ SQL INSERT 생성 모드 선택 (테이블명 지정 후 쿼리 추출)
📑 마크다운 표 & CSV 핵심 용어 치트시트
- GFM(GitHub Flavored Markdown): 깃허브에서 표준화한 표, 체크리스트, 취소선 문법 확장 규격.
- RFC 4180: IETF에서 제정한 국제 표준 CSV MIME 타입 및 인코딩 포맷 명세서.
- UTF-8 BOM(\uFEFF): 엑셀 등 구형 소프트웨어에 파일 인코딩이 UTF-8임을 알려주는 선두 3바이트 시그니처.
- TSV(Tab-Separated Values): 쉼표 대신 탭(Tab) 문자로 열을 구분하여 텍스트 내 쉼표와의 충돌을 원천 차단하는 경량 표 데이터 규격.
자주 묻는 질문
노션에서 복사한 표도 이 방법으로 옮길 수 있나요?
노션 표를 마크다운으로 내보내기 하면 파이프와 구분선으로 이루어진 동일한 형식의 텍스트가 되므로 같은 방법으로 옮길 수 있습니다. 다만 화면에 보이는 표를 그냥 드래그해서 복사한 경우에는 이미 렌더링된 표라서 이 글에서 설명한 문제와는 다른 방식으로 다뤄야 합니다.
CSV로 저장한 파일을 엑셀에서 열었더니 한글이 깨져 보입니다.
엑셀은 CSV 파일을 열 때 기본적으로 한글 인코딩을 다르게 해석해서 깨진 글자로 보여주는 경우가 많습니다. 파일 앞에 UTF-8임을 알리는 표시(BOM)를 붙여서 저장하면 엑셀에서도 한글이 그대로 보입니다.
표 안에 쉼표가 들어 있는 셀은 CSV로 바꿀 때 어떻게 되나요?
쉼표는 CSV에서 열을 구분하는 문자이기 때문에 셀 값 안에 쉼표가 있으면 그 값 전체를 큰따옴표로 감싸야 다음 열로 잘못 넘어가지 않습니다. 이 처리를 하지 않으면 엑셀에서 열었을 때 한 셀의 값이 두 개의 열로 나뉘어 보입니다.
