회계 도구에서 매출 보고서를 내보내고 두 가지 옵션을 받았습니다: CSV 또는 XLSX로 다운로드. 하나를 선택하고 열었더니 뭔가 잘못된 것 같았습니다 — 수식이 사라졌거나, 액센트가 깨진 글자로 변하거나, 날짜가 유럽식과 미국식 사이에서 흔들렸습니다. 이것이 스프레드시트 형식의 일상적인 현실이며, XLSX와 CSV 사이의 선택은 보이는 것만큼 명확하지 않습니다.
두 형식 모두 표 형식 데이터를 저장하지만 서로 다른 작업을 위해 설계되었습니다. 각각이 무엇을 보존하는지 — 그리고 무엇을 조용히 버리는지 — 이해하면 디버깅 시간과 많은 좌절을 절약할 수 있습니다.
CSV가 실제로 무엇인가
CSV는 Comma-Separated Values(쉼표로 구분된 값)의 약자입니다. 1970년대 메인프레임 데이터 교환으로 거슬러 올라가는, 여전히 널리 사용되는 가장 오래되고 단순한 표 형식입니다.
CSV 파일은 일반 텍스트 파일입니다. 각 줄은 행이며, 행 내에서 값은 구분자 — 보통 쉼표, 때로는 세미콜론, 탭, 파이프 — 로 구분됩니다. 서식 없음, 수식 없음, 스타일 없음, 다중 시트 개념 없음. 단지 텍스트의 행과 열입니다.
이 단순함이 CSV의 초능력입니다. 표 형식 데이터를 처리하는 모든 도구 — 50년 된 COBOL 프로그램부터 현대 Python 스크립트까지 — 가 CSV를 읽을 수 있습니다. 독점 파서 없음, 버전 호환성 없음, 라이선스 없음. 텍스트 편집기에서 열면 읽을 수 있습니다.
XLSX가 실제로 무엇인가
XLSX는 Office Open XML Spreadsheet 형식으로, 2007년 Microsoft가 이전 바이너리 .xls 형식을 대체하기 위해 도입했습니다. Microsoft 기원에도 불구하고 XLSX는 개방형 ISO 표준(ISO/IEC 29500)이며 대부분의 현대 스프레드시트 애플리케이션이 기본적으로 지원합니다. XLSX 파일은 단일 파일이 아닙니다 — 수십 개의 XML 문서를 포함하는 ZIP 아카이브입니다. 안에는 다음이 있습니다:
- 셀 데이터와 수식
- 서식(글꼴, 색상, 테두리, 숫자 형식)
- 각각 자체 그리드를 가진 다중 시트
- 차트, 피벗 테이블, 명명된 범위, 조건부 서식
- 내장 이미지 및 매크로
.xlsx 파일의 이름을 .zip으로 변경하고 압축을 풀고 XML을 직접 검사할 수 있습니다. 이는 XLSX를 풍부하면서도 검사 가능하게 만듭니다.
정직한 비교
| 기능 | CSV | XLSX |
|---|---|---|
| 일반 값 저장 | ✅ | ✅ |
| 수식 보존 | ❌ | ✅ |
| 서식 보존 | ❌ | ✅ |
| 다중 시트 | ❌ | ✅ |
| 차트와 피벗 테이블 | ❌ | ✅ |
| 숫자 형식(통화, 날짜) | ❌ (텍스트만) | ✅ |
| 보편적 호환성 | ✅ | ✅ (현대 앱) |
| 텍스트 편집기에서 읽기 가능 | ✅ | ❌ (ZIP) |
| 일반 데이터 크기 | 가장 작음 | 5-10배 큼 |
| 로케일 문제 위험 | 높음 | 낮음 |
| 대용량 파일 스트림 | ✅ | ⚠️ (먼저 압축 해제 필요) |
CSV가 정답일 때
다음 속성 중 하나가 필요할 때 CSV 사용:
- 최대 호환성. 데이터베이스 가져오기, 스크립트 공급, 도구를 모르는 파트너에게 보내기 — CSV는 어디서나 작동합니다.
- 대용량 데이터셋. 백만 행의 CSV는 잘 스트리밍됩니다. 백만 행의 XLSX는 메모리 한계에 도달할 수 있고 Excel의 시트당 1,048,576행이라는 엄격한 상한에 도달할 수 있습니다.
- 버전 관리. CSV는 Git에서 깔끔하게 diff됩니다. XLSX는 바이너리 블롭으로 표시됩니다.
- 순수한 데이터 교환. 값만 필요하고 수신 시스템이 자체 서식을 적용할 때.
XLSX가 정답일 때
다음 중 어느 것이라도 중요할 때 XLSX로 전환:
- 수식이 살아남아야 함.
=SUM(B2:B30)이 있는 예산은 CSV에서 정적 숫자가 됩니다. - 다중 시트. 월별로 시트가 하나씩 있는 월간 추적기는 CSV에서 단일 시트로 무너집니다.
- 서식이 의미를 갖는다. 굵은 합계, 색상 코딩된 카테고리, 통화 기호, 백분율 형식 — 모두 CSV에서 손실됩니다.
- 타입 안전한 날짜와 숫자. XLSX는
2026-05-02를 날짜 유형으로 저장합니다. CSV는 텍스트로 저장하고 다음 도구가 해석 방법을 결정합니다(종종 잘못). - 수신자가 사람. 사람은 XLSX 파일을 읽고 프로그램은 CSV를 읽습니다.
모든 사람을 잡는 함정
몇 가지 특정 문제가 사용자를 반복적으로 물어뜯습니다:
로케일 쉼표 함정 프랑스어, 독일어 및 기타 많은 로케일에서 소수점 구분자는 마침표가 아닌 쉼표입니다. 따라서 1,5는 1.5를 의미합니다. 그러나 CSV는 쉼표를 필드 구분자로 사용합니다. 해당 로케일의 Excel은 대신 세미콜론으로 CSV를 저장합니다 — 그러면 쉼표를 기대하는 도구로 가져올 때 깨집니다. 결과: 잘못된 열의 숫자나 전체 행이 병합됩니다.
날짜 형식 함정 03/04/2026이 있는 CSV는 모호합니다. 4월 3일입니까, 3월 4일입니까? Excel은 로케일에 따라 자동 해석하며 때로는 날짜를 조용히 다시 작성합니다. XLSX는 명시적 유형 메타데이터와 함께 날짜를 숫자(1900년 이후 일수)로 저장하여 모호함을 제거합니다.
선행 0 함정 0으로 시작하는 전화번호, 우편번호 또는 제품 SKU는 XLSX에서 텍스트로 살아남습니다. CSV에서 Excel로 다시 열면 숫자로 구문 분석되어 선행 0이 사라집니다. 영원히.
인코딩 함정 Windows에서 ANSI로 내보낸 CSV는 é가 있는 프랑스 이름이나 일본어 파일명이 도착할 때까지 괜찮아 보입니다. Excel이 다시 열 경우 항상 UTF-8 with BOM으로 CSV를 내보내고, 스크립트가 사용하는 경우 일반 UTF-8로 내보내십시오.
실용적인 경험 규칙
이 간단한 테스트를 사용하세요:
- 사람이 열 것인가? → XLSX
- 프로그램이나 파이프라인이 사용할 것인가? → CSV
- 수식, 다중 시트 또는 서식이 있는가? → XLSX
- 데이터베이스, API 또는 도구를 모르는 파트너에게 가는가? → CSV
- 파일이 100MB 또는 500,000행을 초과하는가? → CSV
의심스러우면 마스터를 XLSX로 유지하고 필요할 때 CSV로 내보내십시오. 반대 방향 — CSV에 풍부한 서식을 구축하고 XLSX로 업그레이드하려고 시도 — 은 각 형식의 이점을 잃습니다.
더 알아보기
매일 스프레드시트로 작업한다면, 브라우저에서 일반적인 워크플로를 다루는 두 가지 짧은 튜토리얼:
- Excel 없이 XLSX 스프레드시트를 온라인으로 편집하는 방법 — Excel 없이 열기, 편집, 수식 실행 및 내보내기.
- JSON, YAML 및 CSV 간 변환 방법 — 구조를 잃지 않고 일반 형식 간에 데이터를 왕복.
둘 다 브라우저에서 완전히 실행되며 파일을 서버에 업로드하지 않습니다.
