first_name,last_name,email,mobile,company,city,notes
하은,강,contact1@example.test,010-7356-3618,동해산업,대구,
민준,이,contact2@example.test,010-0782-9016,동해산업,광주,"Met at the trade fair
Prefers email"
하윤,강,contact3@example.test,010-5693-6319,푸른데이터,대전,
도윤,이,contact4@example.test,010-8058-4861,하늘소프트,대전,"VIP, call before 10:00"
서준,김,contact5@example.test,010-9088-9825,하늘소프트,대구,
고정 시드로 만들기 때문에 내려받을 때마다 내용이 같습니다. 대용량 파일 처리를 시험할 때 쓰세요.
CSV 도구를 시험해 보려고 만든 작은 CSV 파일 7개입니다. 등장하는 사람은 모두 가상 인물이고 이메일 주소는 example.test를 씁니다. 파일마다 열 구성, 쓰임새, 그리고 정확히 어떤 함정이 들어 있는지 아래에 정리했습니다. 001041처럼 0으로 채운 ID, 따옴표로 감싼 쉼표, 이스케이프된 따옴표, 셀 안의 줄 바꿈, 비어 있는 가격, 중복 행 등이 들어 있습니다. 모든 파일은 머리글 행이 있는 쉼표 구분 UTF-8 텍스트이며 줄 바꿈 문자는 CRLF입니다.
파일 목록과 열 구성
orders.csv
주문 15건: order_id, customer, city, product, quantity, unit_price, order_date, status. 정렬, 필터, 매핑, 변환에 두루 쓰는 기본 파일입니다.
orders-updated.csv
비교용으로 만든 orders.csv의 나중 버전입니다. 주문 001044는 수량이 바뀌었고, 주문 001046은 사라졌으며, 주문 001099가 새로 추가되었습니다.
contacts.csv
연락처 6건: first_name, last_name, email, mobile, company, city, notes. vCard 같은 주소록 내보내기를 시험하는 용도입니다.
customers.csv
고객 8건: customer_id, name, country, segment. 조인할 때 왼쪽 표로 씁니다.
invoices.csv
청구서 10건: customer_id, invoice_no, total, paid. 조인할 때 오른쪽 표로 씁니다. 일부 청구서는 customers.csv에 없는 고객 00309를 가리킵니다.
signups.csv
일부러 지저분하게 만든 가입 데이터 7건: id, name, email, age, signup_date, plan. 데이터 정리와 검사용입니다.
sales.csv
세로(long) 형식의 월별 매출 18행: month, region, revenue, units. 지역 3곳마다 6개월 치가 들어 있습니다. 차트, 피벗, 행/열 바꾸기용입니다.
열 이름은 대부분의 내보내기 파일처럼 단순한 식별자입니다. 날짜는 ISO 8601 형식(2026-03-25), 월은 2026-01 형식이며, 금액은 마침표를 소수점으로 쓰는 소수 둘째 자리 값입니다.
파일마다 넣어 둔 함정
orders.csv: 모든 order_id가 여섯 자리로 0을 채워 넣은 값(001041~001054)이라, ID를 숫자로 읽는 도구는 앞자리 0을 없애 버립니다. 상품 Monitor 27"는 "Monitor 27"""(이스케이프된 따옴표)로, "Chair, ergonomic"은 따옴표 안에 쉼표를 넣어 적었습니다. 주문 001045는 unit_price가 비어 있고, 주문 001047은 고객 이름 앞뒤에 공백이 있으며, 마지막 행은 주문 001043과 완전히 같은 중복 행입니다.
contacts.csv: notes 셀 하나는 두 줄(Met at the trade fair / Prefers email)에 걸쳐 있고, 다른 하나에는 쉼표(VIP, call before 10:00)가 들어 있습니다. 메모는 대부분 비어 있습니다. 휴대전화 번호는 +1 555로 시작합니다.
customers.csv와 invoices.csv: 둘 다 00301처럼 0을 채운 다섯 자리 customer_id를 키로 씁니다. 따라서 양쪽 모두 텍스트로 유지해야 조인이 맞습니다. 고객 00308은 청구서가 3건, 고객 4명은 청구서가 없고, 00309는 청구서는 있지만 고객 행이 없습니다.
signups.csv: 앞에 공백이 있는 이름, 뒤에 공백이 있는 이름, 공백이 두 칸 들어간 이름이 있습니다. 이메일 열에는 not-an-email과 N/A, age 열에는 thirty와 빈 값이 있습니다. 존재할 수 없는 날짜 2026-02-30과 월·일 순서가 모호한 11/03/2026, 같은 요금제를 두 가지로 적은 pro와 Pro, 완전히 같은 중복 레코드, 완전히 빈 레코드가 있고 id 4인 레코드는 없습니다.
sales.csv: 깨끗하고 전부 숫자로 된 파일입니다. revenue와 units는 정수라서 대조군 역할을 합니다. 이 파일에서 도구가 틀린다면 원인은 지저분한 데이터가 아닙니다.
예시 파일을 쓰는 도구 페이지에서는 예시로 해 보기를 누르면 해당 파일을 바로 불러옵니다. 내 데이터를 열기 전에 도구가 어떻게 동작하는지 먼저 볼 수 있습니다.
실제 데이터인가요?
아닙니다. 사람 이름은 흔한 이름과 성을 무작위로 조합했고, 회사는 지어낸 것이며, 이메일 주소는 모두 RFC 2606이 예약한 .test 도메인을 씁니다. 영어판의 전화번호는 555 대역입니다. 도시 이름은 실제 지명이지만 라벨로만 쓰였습니다. 가격, 수량, 날짜는 고정 시드로 생성하므로 파일을 만들 때마다 내용이 같습니다.
파일 내용은 화면 언어에 맞춰집니다. 한국어 페이지에서는 이름, 도시, 회사, 전화번호 형식이 한국 사용자에게 익숙한 것으로 바뀌고, 열 이름, ID, 함정 구성은 그대로입니다.
다른 파일이 필요할 때
이 파일들은 모든 행을 눈으로 확인할 수 있도록 일부러 작게 만들었습니다. 수천 행이 필요하거나, 다른 유형의 열이나 직접 정한 열 이름이 필요하면 CSV 테스트 데이터 생성기를 사용하세요. 시드와 설정이 같으면 항상 같은 파일이 나오므로 테스트를 똑같이 반복할 수 있습니다.
예시: 까다로운 연락처 행을 읽는 방식
영어판 contacts.csv의 처음 세 레코드를 파일에 적힌 그대로 보여 주고, RFC 4180을 올바르게 따르는 리더가 돌려주는 값을 함께 표시했습니다. 줄 바꿈과 쉼표는 notes 값 안에 그대로 남고, 비어 있는 마지막 필드는 열이 빠진 것이 아니라 빈 문자열입니다.
CSV
first_name,last_name,email,mobile,company,city,notes
Ava,Williams,contact1@example.test,+1 555-235-0351,Harbor Analytics,Atlanta,
Mary,Brown,contact2@example.test,+1 555-073-4622,Bluebird Labs,Chicago,"Met at the trade fair
Prefers email"
Olivia,Garcia,contact3@example.test,+1 555-982-2565,Northwind,Chicago,