CSV란?
쉼표로 구분해 데이터를 담는 텍스트 형식의 기초와 업무에 도움 되는 포인트를 정리합니다.
CSV의 기본
CSV(Comma-Separated Values)는 쉼표로 구분된 텍스트 형식 데이터 파일입니다. 한 줄이 한 레코드이고, 각 열은 쉼표로 구분되며, 보통 첫 줄이 헤더(열 이름)로 쓰입니다.
CSV 예시
id,name,email 1,홍길동,hong@example.com 2,김영희,kim@example.com
이처럼 표 형태 데이터를 그대로 텍스트로 표현할 수 있어, 엑셀·DB·웹 앱 간 데이터 전달에 많이 쓰입니다.
CSV의 장점
- 호환성: OS·앱에 관계없이 열기 쉽고, 시스템 간 연동의 표준 형식 중 하나입니다.
- 가벼움: 바이너리보다 용량이 작아 메일 첨부나 배치 처리에 적합합니다.
- 가독성: 텍스트 에디터로 열 수 있어 확인·간단 수정이 쉽습니다.
구분자에 대해
이름처럼 쉼표(,)가 쓰이지만, 지역·앱에 따라 세미콜론(;)이나 탭을 쓰는 경우도 있습니다. CSV 체커에서는 구분자 자동 감지와 수동 지정이 가능합니다.
문자 코드(인코딩)
CSV는 텍스트 파일이므로 문자 코드 설정이 중요합니다. 한국어에서는 주로 다음이 쓰입니다.
- UTF-8: 국제적으로도 표준. BOM을 붙이면 엑셀에서도 잘 열립니다.
- EUC-KR / CP949: 한국 업무 시스템에서 자주 쓰입니다. 엑셀 저장 시 이 형식이 되는 경우가 많습니다.
문자 코드가 맞지 않으면 깨짐이 납니다. 자세한 내용은 글자 깨짐·인코딩 문제를 참고하세요.
CSV와 엑셀의 차이
엑셀(.xlsx)은 셀·서식·수식·여러 시트 등을 가진 바이너리 형식입니다. CSV는 “순수 텍스트 표 데이터”에만 집중하며, 서식은 없고 1파일=1시트 정도로 보면 됩니다. 데이터 전달·가져오기에는 CSV가 많이 쓰이며, CSV와 엑셀의 차이에서 비교해 두었습니다.
CSV에서 주의할 점
- 중복 ID: 같은 ID가 여러 행에 있으면 DB 등록·매칭에서 오류가 납니다. 중복 데이터 찾기를 참고하세요.
- 보이지 않는 문자: 복사·다른 시스템에서 가져온 데이터에 보이지 않는 제어 문자가 섞일 수 있습니다. CSV 오류 가이드에서 대처법을 설명합니다.
- 열 개수 불일치: 행마다 열 개수가 다르면 가져오기 시 오류가 나기 쉽습니다. 형식·기본 검사로 미리 확인할 수 있습니다.
CSV의 역사와 RFC 4180 표준
CSV는 컴퓨팅 초기부터 사용되어 온 형식입니다. 2005년 RFC 4180으로 쉼표·따옴표·줄바꿈 처리 방식이 공식 정의되었습니다. 오래된 형식임에도 불구하고, 단순함과 거의 모든 소프트웨어의 지원 덕분에 현재도 가장 널리 쓰이는 데이터 교환 형식 중 하나입니다. CSV 파일을 열거나 만들기 위해 별도의 전용 앱이 필요하지 않다는 점이 큰 장점입니다.
실무에서 CSV가 쓰이는 곳
CSV는 거의 모든 산업 분야에서 활용됩니다.
- 이커머스: 상품 카탈로그, 주문 내보내기, 재고 목록을 쇼핑몰·물류 시스템 간에 CSV로 주고받습니다. 스마트스토어, 쿠팡, 카페24 등에서의 상품 대량 등록도 CSV를 씁니다.
- 금융·회계: 은행 거래 내역 내보내기, 급여 데이터, 총계정원장 항목을 회계 소프트웨어에 가져올 때 CSV 형식이 표준으로 쓰입니다.
- 의료: 환자 명단, 예약 기록, 검사 결과를 병원 내 시스템과 외부 도구 사이에서 CSV로 교환합니다. 전용 소프트웨어 없이도 내용을 확인할 수 있어 편리합니다.
- 공공·연구: 공공 데이터 포털과 학술 데이터셋은 누구나 전문 도구 없이 열 수 있다는 이유로 CSV로 공개하는 경우가 많습니다.
- 마케팅: 이메일 구독자 목록, CRM 내보내기, 광고 성과 보고서를 플랫폼 간에 CSV로 관리하고 전달합니다.
CSV vs JSON vs XML: 어떤 형식을 써야 할까?
CSV만이 텍스트 기반 데이터 형식은 아닙니다. 선택에 도움이 되도록 간단히 비교합니다.
- CSV: 행·열로 구성된 단순 표 데이터에 최적. 비개발자도 스프레드시트에서 바로 열고 편집 가능. 단일 테이블만 표현 가능하며 계층 구조를 담을 수 없음.
- JSON: 계층적·중첩 구조 데이터에 적합. REST API와 웹 개발에 많이 쓰임. 개발 도구 없이는 편집이 어렵고 비개발자에게 낯선 형식.
- XML: 스키마·유효성 검사가 필요한 복잡한 구조를 지원. 기업 시스템과 레거시 연동에 사용. 장황하고 육안으로 파악하기 어려움.
상품 목록이나 고객 내보내기처럼 데이터가 단순한 행·열 표 구조라면 CSV가 거의 항상 올바른 선택입니다. 중첩 객체나 여러 관련 테이블, API 연동이 필요하다면 JSON이 더 적합합니다.
CSV 문제를 가장 많이 일으키는 실수 3가지
실무에서 발생하는 CSV 오류의 대부분은 다음 세 가지 실수로 귀결됩니다.
- 인코딩 불일치: EUC-KR이나 CP949로 저장한 파일을 UTF-8 환경에서 열면 글자가 깨집니다. 파일을 주고받기 전에 반드시 인코딩을 확인하세요. 형식·기본 검사 도구를 쓰면 자동으로 인코딩을 감지합니다.
- 구분자를 포함한 필드 미처리:
홍길동, 서울처럼 쉼표가 들어간 필드를 큰따옴표로 감싸지 않으면 열 구조가 깨집니다. 대용량 파일에서는 육안으로 찾기 어렵고, 열 개수 불일치 오류의 가장 흔한 원인 중 하나입니다. - 복사·붙여넣기로 유입된 보이지 않는 문자: 웹 페이지, PDF, 채팅 도구에서 데이터를 복사하면 영폭 공백, 줄바꿈 없는 공백, 기타 제어 문자가 함께 붙여넣어집니다. 엑셀에서는 보이지 않지만 DB나 API에서는 가져오기 실패를 일으킵니다. CSV 검사 도구로 한 번에 탐지·제거할 수 있습니다.