CSV 테이블 (.csv)

RFC 표준

CSV(Comma-Separated Values)는 표 형태의 데이터를 위한 보편적인 일반 텍스트 형식으로, 각 줄이 데이터 레코드를 나타내고 필드는 구분자로 분리됩니다.

XLSX을(를) CSV(으)로 변환

무료 브라우저 내 XLSX에서 CSV로 변환하는 도구입니다. 기기에서 파일을 즉시 변환할 수 있습니다.

CSV 온라인 압축

비공개 - 파일은 기기를 벗어나지 않습니다

검사 및 메타데이터

운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 CSV 파일을 식별합니다:

여기에 파일을 선택하거나 놓으십시오

비공개 - 파일은 기기를 벗어나지 않습니다

또는 붙여넣기 Ctrl+V
네트워크 전송 없음에 대한 개인정보 보호 보장: 외부 서버로 업로드된 데이터는 0바이트입니다. 모든 처리는 브라우저 샌드박스 내에서 로컬로 수행되었습니다.

바이트 단위 헤더 시그니처 (매직 바이트)

운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 CSV 파일을 식별합니다:

16진수 시그니처 (오프셋 0):

고정 시그니처 없음

ASCII 표현: 텍스트 바이트이며, 인코딩은 다양하지만 대개 UTF-8입니다.

표준화: RFC 4180 / IETF

기술 사양

컨테이너 아키텍처표 형태의 데이터 행과 열을 나타내는 구분된 플레인 텍스트 파일
압축Gzip 및 Deflate는 반복되는 표 형식 레코드에서 85%~95%의 압축률을 달성함
바이트 엔디안UTF-8 텍스트 스트림 (Excel에서 사용하는 선택적 UTF-8 BOM EF BB BF 사용)
색 공간해당 없음
채널 및 구조CRLF로 구분된 행 레코드와 쉼표로 구분된 필드
최대 크기제한 없음; 전체 파일을 메모리에 로드하지 않고 기가바이트 단위로 스트리밍 가능
투명도해당 없음
스트리밍 및 프로그레시브모든 데이터 파이프라인에서 지원하는 기본적으로 지원되는 행 단위 스트림 처리

기술 비교 매트릭스: CSV 대 경쟁사

기술적 속성CSV (현재)Excel (XLSX)ParquetJSON
파일 유형일반 텍스트 표압축된 XML 스프레드시트바이너리 열 기반 스토리지계층형 텍스트
다중 시트아니오 (단일 평면 테이블만 지원)예 (여러 통합 문서 및 시트)파티션 기반 스토리지중첩된 배열 및 객체
데이터 형식데이터 유형이 지정되지 않은 원시 텍스트형식화된 셀, 수식, 서식엄격한 바이너리 열 형식기본 형식(문자열, 숫자, 불리언)
빅데이터 분석느림 (모든 행을 선형으로 읽어야 함)빅데이터에 부적합매우 빠름 (열 가지치기 및 술어 푸시다운)보통

일반적인 손상 모드 및 헥스 복구 가이드

열이 오른쪽으로 밀리거나 행 개수가 일치하지 않음.

근본 원인: 따옴표로 둘러싸이지 않은 이스케이프되지 않은 쉼표를 포함하는 텍스트 필드.

복구: RFC 4180은 쉼표를 포함하는 필드를 큰따옴표("Smith, John")로 감싸도록 요구합니다.

Excel에서 악센트 문자가 이상한 기호(é 대신 é 같은 깨진 문자)로 깨져서 표시됨.

근본 원인: Excel이 레거시 Windows ANSI/CP1252 문자 인코딩을 가정하고 UTF-8 CSV를 열었음.

복구: 파일 시작 부분에 3바이트 UTF-8 바이트 순서 마크(0xEF 0xBB 0xBF)를 추가하십시오.

보안 분석 및 파서 공격 벡터

CSV 파일은 Excel 및 Google Sheets 같은 스프레드시트 소프트웨어에서 직접 열리기 때문에 사용자가 수식 주입(CSV 주입) 공격에 노출됩니다.

알려진 공격 벡터

  • 수식 주입: '=', '+', '-', '@'로 시작하는 셀이 스프레드시트 매크로 또는 DDE 명령을 실행함 (예: '=cmd|' /C calc'!A0').
  • 클릭 시 원격 공격자 서버로 민감한 셀 데이터를 전송하는 HYPERLINK() 수식을 통한 데이터 유출.

방어적 모범 사례: 사용자 데이터를 CSV로 내보낼 때 “=”, “+”, “-”, “@”로 시작하는 모든 셀 앞에 작은따옴표(')나 탭을 추가하여 Excel에서 평문으로 렌더링되도록 하십시오.

역사적 배경 및 주요 이력

2015W3C의 웹상의 표 데이터 및 메타데이터 모델이 JSON-LD 메타데이터 서술자와 함께 웹에서의 CSV(CSVW)를 표준화함.
2005IETF가 CSV 파일의 공식 사양을 확립하는 RFC 4180을 발행함.
1972IBM 포트란(H Extended) 컴파일러가 쉼표로 구분된 입력/출력을 구현함.

주요 장점

  • 최고의 단순성: 모든 텍스트 편집기에서 읽을 수 있으며 모든 데이터베이스와 스프레드시트로 가져올 수 있음.
  • 전체 메모리 DOM을 구축하지 않는 매우 빠른 행 단위 스트리밍.
  • 최소한의 오버헤드: 장황한 태그 구문이나 스키마 정의가 없음.

기술적 제한 사항 및 단점

  • 표준 데이터 유형 없음: 숫자, 날짜, 부울, 텍스트 모두 원시 문자열로 저장됨.
  • 여러 시트, 셀 서식, 수식 또는 메타데이터를 지원하지 않음.
  • 구분자 충돌(텍스트 내의 쉼표, 유럽 로케일의 소수점 쉼표)로 인해 빈번한 파싱 버그 발생.

흥미로운 기술적 상식

  • 쉼표를 소수점으로 사용하는 많은 유럽 국가에서는 CSV 구분자로 쉼표 대신 세미콜론(;)을 사용합니다.
  • Microsoft Excel은 비ASCII 악센트 문자를 올바르게 표시하기 위해 역사적으로 UTF-8 BOM(0xEF 0xBB 0xBF)을 요구했습니다.
  • 영국 보건부(NHS)는 2020년에 행 제한이 65,536개로 제한된 구형 Excel 스프레드시트 형식으로 데이터가 가져와졌기 때문에 약 16,000개의 COVID-19 접촉자 추적 기록을 누락하는 사고를 겪었습니다.

자주 묻는 기술 질문

RFC 4180이란 무엇입니까?

RFC 4180은 CSV에 대한 공식 IETF 표준입니다. 쉼표, 줄바꿈 또는 큰따옴표를 포함하는 필드는 반드시 큰따옴표로 묶어야 하며, 내부 따옴표는 두 번 반복("")하여 이스케이프해야 한다고 규정합니다.

CSV 파일을 Excel에서 열면 왜 문자가 깨집니까?

구버전 Microsoft Excel은 CSV 파일을 직접 열 때 UTF-8 대신 로컬 Windows 코드 페이지(예: Windows-1252)를 기본값으로 사용합니다. 파일 시작 부분에 UTF-8 BOM(바이트 순서 마크)을 추가하면 Excel이 UTF-8을 올바르게 디코딩하도록 강제할 수 있습니다.

CSV 주입(수식 주입)이란 무엇입니까?

CSV 주입은 수식 트리거('=', '+', '-', '@')가 포함된 신뢰할 수 없는 사용자 입력이 스프레드시트 파일로 내보내질 때 발생합니다. Excel 같은 소프트웨어에서 열리면 스프레드시트가 자동으로 수식이나 동적 데이터 교환(DDE) 명령을 실행하여 시스템 명령을 실행하거나 데이터를 유출할 수 있습니다.