CSV의 쉼표가 메모 열 안에 있으면 왜 열이 밀리나
발행
메모에 ‘거실, 주방 수리’라고 적힌 거래 CSV를 쉼표마다 자르면 열이 하나 더 생길 수 있다. 이때 쉼표는 열 구분자일 수도 있고 메모 내용의 일부일 수도 있다. CSV를 일반 문장처럼 단순 분할하는 방식은 따옴표 규칙을 놓칠 수 있다.
따옴표가 필드의 경계를 알려 준다
RFC 4180은 쉼표, 줄바꿈, 큰따옴표가 들어 있는 필드를 큰따옴표로 감싸는 형식을 설명한다. 예를 들어 메모 전체가 큰따옴표로 묶여 있다면 그 안의 쉼표는 새 열의 시작으로 해석하지 않아야 한다. 필드 안의 큰따옴표는 두 번 적는 방식으로 표현한다. 이 문서는 널리 쓰이는 CSV 형식을 설명하지만 실제 모든 파일이 동일한 구분자나 규칙을 따른다고 보장하지는 않는다.
세 열짜리 예를 직접 구분한다
가상의 레코드가 거래번호, 금액, 메모 세 열이고 메모가 ‘거실, 주방 수리’라면 메모는 한 필드다. 메모 안 쉼표 때문에 네 열이 됐다면 가져오기 설정이나 파서부터 살펴야 한다. 메모에 줄바꿈까지 있으면 파일의 물리적 줄 수와 거래 건수가 다를 수도 있다. 줄 수를 세어 거래가 늘었다고 판단하지 않는다. 원본 헤더의 열 개수와 정상적으로 파싱한 레코드의 열 개수를 비교한다.
내용에서 쉼표를 지우기 전에 원인을 확인한다
메모의 쉼표를 모두 삭제하면 문서가 원본과 달라지고 다른 오류도 숨겨질 수 있다. 원본을 보존하고 텍스트·CSV 가져오기 기능에서 구분자와 인용문자 설정을 확인한다. 따옴표가 닫히지 않은 행은 별도로 찾아 원자료 제공자에게 문의한다. 금액의 천 단위 쉼표와 메모 쉼표가 섞인 파일도 같은 방식으로 점검한다. 최종 검증에는 파싱 오류 행, 예상 열 수, 정상 레코드 수를 남긴다. 파서가 읽었다는 사실과 데이터 내용이 정확하다는 사실은 다른 검증 항목이다.
출처와 확인일
- RFC Editor RFC4180 Common format for CSV files — 확인일 2026-10-16