CSV와 엑셀의 차이
형식의 차이와 데이터 전달·검사 시 유의할 점을 정리합니다.
각 형식이란
CSV(Comma-Separated Values)는 순수 텍스트입니다. 모든 행이 줄이고, 열은 구분자 — 보통 쉼표, 때로는 탭·세미콜론·파이프 — 로 구분됩니다. 첫 행은 보통 헤더입니다. 서식, 수식, 여러 시트 없이 값만 있는 단순하고 범용적인 구조로, 어떤 프로그래밍 언어, 데이터베이스, 애플리케이션도 읽을 수 있습니다.
엑셀(.xlsx)은 Microsoft가 개발한 바이너리 컨테이너 형식입니다. 셀 값, 서식(색·테두리·폰트), 수식, 차트, 이미지, 여러 워크시트를 하나의 파일에 저장합니다. 스프레드시트 애플리케이션에서 대화형 편집과 표시에 최적화되어 있으며, 데이터 교환용이 아닙니다.
기능 비교
- 여러 시트
- 엑셀: 시트 무제한. CSV: 없음 — CSV 파일 하나 = 데이터 테이블 하나. 여러 시트를 CSV로 저장하려면 여러 파일이 필요합니다.
- 수식
- 엑셀: 자동 재계산되는 수식(=SUM(A1:A10)) 가능. CSV: 현재 계산된 값만 저장 — 수식은 CSV로 저장 시 사라집니다.
- 서식
- 엑셀: 셀 색, 굵게, 테두리, 숫자 형식, 조건부 서식. CSV: 없음 — 모든 서식이 CSV로 저장 시 소실됩니다.
- 문자 인코딩
- 엑셀: .xlsx는 내부적으로 UTF-16으로 텍스트를 저장하고 인코딩을 자동으로 처리. CSV: 인코딩이 파일 자체에 명시되지 않아 작성자와 읽는 쪽이 합의해야 하며, 이것이 글자 깨짐 문제의 원인.
- 파일 크기
- CSV: 간결. 같은 데이터의 CSV는 .xlsx보다 보통 5~10배 작습니다. 전송이 빠르고 스크립트 처리가 쉽습니다.
- 상호 운용성
- CSV: 모든 OS, 모든 언어, 모든 데이터베이스 — 애플리케이션 의존성 없음. 엑셀: Microsoft Office 또는 호환 소프트웨어(Google Sheets, LibreOffice)가 있어야 기본 지원.
CSV를 사용해야 할 때
- 시스템 연동 — 데이터베이스 가져오기, API 배치 업로드, ETL 파이프라인은 파서 의존성이 필요 없는 CSV를 자주 사용
- 원시 데이터 보관 — CSV는 내구성 있는 형식. .xlsx 파일은 생성 애플리케이션을 사용할 수 없게 되면 읽기 어려울 수 있음
- 스크립팅·자동화 — 라이브러리 없이 어떤 언어에서도 쉽게 읽고 쓸 수 있음
- 플랫폼 간 데이터 공유 — CSV는 Windows, Mac, Linux, 모바일, 텍스트 편집기 어디서나 호환성 문제 없이 열림
엑셀을 사용해야 할 때
- 대화형 분석 — 피벗 테이블, 차트, 조건부 서식, 필터는 엑셀 고유 기능
- 수식·계산 — 데이터 자체에 살아있어야 하는 계산 필드가 있을 때
- 다중 시트 통합 문서 — 관련 테이블을 시트 간 참조와 함께 하나의 파일로 관리
- 비기술 사용자에게 데이터 제시 — 서식, 색상, 차트가 데이터를 읽기 쉽게 만듦
엑셀 → CSV 변환 시 자주 발생하는 문제
저장 시 잘못된 인코딩
”다른 이름으로 저장 → CSV(쉼표로 분리)”는 UTF-8이 아닌 시스템 지역 인코딩(한국어 Windows에서는 EUC-KR/CP949)으로 파일을 생성합니다. 다른 시스템에서 열면 한글이 깨집니다. 항상 ”다른 이름으로 저장 → CSV UTF-8(쉼표로 분리)”을 사용해 UTF-8 BOM 파일을 만드세요. 인코딩 문제 참고.
앞자리 0 소실
엑셀은 숫자처럼 보이는 값을 숫자로 처리합니다. 0으로 시작하는 상품 코드·우편번호·ID(예: 00123)가 123으로 저장·내보내집니다. 이를 방지하려면 데이터 입력 전 해당 열을 텍스트로 지정하거나, 내보내기 후 단일 검사로 수정하세요.
날짜 형식 변경
엑셀은 날짜를 내부적으로 일련번호로 저장하고 지역 설정에 따라 표시 형식을 적용합니다. CSV로 저장하면 날짜가 엑셀이 현재 표시 중인 형식으로 나타납니다 — 로케일에 따라 12/31/2024, 31/12/2024, 2024-12-31이 될 수 있습니다. 이 불일치가 다운스트림 시스템의 날짜 파싱을 망가뜨릴 수 있습니다.
수식이 값으로 내보내짐
=A1&”-”&B1 수식이 있는 셀은 현재 계산된 결과로 내보내집니다. 수식 자체는 영구히 사라집니다. 다운스트림 처리가 원래 수식 로직에 의존한다면 변환 전에 별도로 문서화하세요.
다중 시트 데이터 소실
CSV는 시트 하나만 담을 수 있습니다. 여러 시트 통합 문서를 CSV로 저장하면 엑셀이 활성 시트만 저장하고 나머지를 자동으로 버립니다. 필요한 각 시트를 개별적으로 내보내세요.
CSV를 엑셀에서 열 때 자주 발생하는 문제
글자 깨짐
엑셀은 BOM 없는 CSV를 열 때 지역 인코딩을 가정합니다. BOM 없는 UTF-8 파일은 비ASCII 내용이 깨집니다. 수정: 글자 깨짐 복원으로 UTF-8 BOM으로 변환한 뒤 엑셀에서 엽니다.
열이 올바르게 구분되지 않음
CSV가 세미콜론이나 탭 구분자를 사용하는데 엑셀이 쉼표를 기대하면(또는 반대) 모든 데이터가 하나의 열에 나타납니다. 형식·기본 검사로 구분자를 확인한 뒤, 올바른 구분자를 지정해 엑셀의 텍스트 가져오기 마법사로 여세요.
숫자가 텍스트로 처리됨
CSV에서 따옴표로 묶인 ”001”같은 값이 엑셀에서 텍스트로 열려 산술 연산이 불가능할 수 있습니다. 소수점 구분자로 마침표를 사용하는 1.5 같은 값은 쉼표를 소수점 구분자로 사용하는 로케일에서 올바르게 파싱되지 않을 수 있습니다.
도구로 열기
- 형식·기본 검사 — 엑셀에서 저장 후 인코딩·구분자 확인
- 글자 깨짐 복원 — 엑셀에서 올바르게 보이도록 UTF-8 BOM으로 변환
- CSV 단일 검사 — 앞자리 0, 공백, 중복 키 감지
- 인코딩 문제 가이드 — CSV 인코딩 문제 상세 설명