Overview
CSV는 표 형태 데이터를 위한 플레인 텍스트 형식으로, 한 줄이 한 행을, 쉼표가 열 구분자를 나타냅니다. 스프레드시트, 데이터베이스, 애플리케이션 간 데이터 교환에서 가장 단순하고 보편적인 형식입니다.
오랫동안 공식 사양 없이 사용되어 왔지만, Excel, Google Sheets, Python pandas, SQL 임포트 유틸리티 등 거의 모든 데이터 도구가 CSV를 지원합니다.
History
쉼표로 구분된 데이터의 역사는 개인용 컴퓨터보다 오래되었습니다. 1960년대 IBM Fortran 컴파일러가 이미 쉼표 구분 입력을 지원했고, 1970~80년대 VisiCalc과 Lotus 1-2-3 같은 초기 스프레드시트 소프트웨어와 함께 널리 보급되었습니다.
2005년 발표된 RFC 4180이 CSV의 첫 공식 사양을 제공하며 따옴표, 이스케이프, 헤더 규칙을 정의했습니다. 그러나 실제 CSV 파일은 구분자, 인코딩, 따옴표 규칙이 제각각인 경우가 많습니다.
Technical Details
CSV 파일은 레코드를 줄바꿈(RFC 4180 권장: CRLF)으로, 필드를 쉼표로 구분하는 플레인 텍스트입니다. 쉼표, 큰따옴표, 줄바꿈을 포함하는 필드는 큰따옴표로 감싸야 하며, 내부 큰따옴표는 두 번 연속 기입하여 이스케이프합니다.
선택적 헤더 행이 열 이름을 지정합니다. 데이터 타입, 인코딩, null 값을 명시하는 표준 방법이 없는데, 이것이 CSV의 최대 장점(단순함)이자 약점(모호함)입니다.
유럽권에서는 세미콜론, TSV에서는 탭, 일부 시스템에서는 파이프(|)를 구분자로 사용하는 변형이 흔합니다.
Pros & Cons
Pros
- 모든 플랫폼과 도구에서 보편적으로 호환
- 텍스트 에디터에서 바로 편집할 수 있는 사람이 읽기 쉬운 형식
- 부가 정보 없이 데이터만 담아 파일 크기가 극히 작음
- 프로그래밍으로 생성·파싱하기 매우 쉬움
- 독점 기술이나 라이선스에 의존하지 않음
Cons
- 데이터 타입 정보가 없음 (모든 값이 문자열)
- 인코딩 표준이 없어 UTF-8 vs. Latin-1 충돌 가능
- 특수 문자와 다중 행 필드의 처리가 모호함
- 시트 구분이나 메타데이터를 지원하지 않음
- 대용량 데이터셋은 바이너리 형식 대비 파싱 속도가 느림
Common Use Cases
- 애플리케이션 간 데이터 가져오기/내보내기
- 데이터베이스 덤프 및 마이그레이션
- 스프레드시트 데이터 교환
- 로그 파일 및 분석 데이터
- 설정 파일 및 조회 테이블