도구로 바로 가기
ViewCSV
파일을 업로드하지 않습니다

CSV 예시 파일 다운로드

orders.csv

15행 · 8열 · 앞자리가 0인 ID, 빈 가격, 앞뒤 공백, 중복 행 하나가 들어 있는 주문 데이터

정렬, 필터, 정리, 변환을 해 보세요. ID의 0이 유지되고 중복 행을 찾아야 합니다.

order_id,customer,city,product,quantity,unit_price,order_date,status
001041,주원 이,수원,USB-C cable,4,242.94,2026-01-11,refunded
001042,지아 최,인천,Coffee beans 1kg,5,137.62,2026-02-06,pending
001043,도윤 정,서울,USB-C cable,4,230.94,2026-03-13,pending
001044,하은 최,울산,"Chair, ergonomic",8,173.96,2026-04-25,pending
001045,민준 이,부산,"Chair, ergonomic",1,,2026-05-25,pending

contacts.csv

6행 · 7열 · 여러 줄 메모와 따옴표로 감싼 쉼표가 들어 있는 연락처

‘CSV를 vCard로’용입니다. 머리글이 연락처 항목에 자동으로 연결됩니다.

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,하늘소프트,대구,

customers.csv

8행 · 4열 · 다섯 자리 ID를 가진 고객 데이터

‘CSV 파일 합치기·조인’에서 송장 파일과 customer_id로 조인해 보세요.

customer_id,name,country,segment
00301,서준 윤,대한민국,retail
00302,시우 박,대한민국,education
00303,시우 윤,대한민국,education
00304,민준 장,대한민국,business
00305,하윤 임,대한민국,education

invoices.csv

10행 · 4열 · 고객 ID를 참조하는 송장 데이터(일부 ID 중복)

조인용 두 번째 파일입니다. 중복된 고객 ID로 일대다 일치가 어떻게 보고되는지 확인할 수 있습니다.

customer_id,invoice_no,total,paid
00301,INV-2400,391.75,true
00301,INV-2401,32.22,true
00303,INV-2402,121.03,true
00301,INV-2403,426.17,true
00306,INV-2404,652.72,true

signups.csv

7행 · 6열 · 잘못된 이메일, 있을 수 없는 날짜, 중복, 빈 행이 섞인 가입자 데이터

규칙을 정해 ‘CSV 검사’를 실행한 다음 ‘CSV 데이터 정리’를 실행해 각각 무엇을 찾는지 비교해 보세요.

id,name,email,age,signup_date,plan
1," 민준 김",first@example.test,34,2026-01-04,pro
2,서연 이,not-an-email,thirty,2026-02-30,Pro
3,서준  박,third@example.test,,2026-03-11,free
3,서준  박,third@example.test,,2026-03-11,free
,,,,,

sales.csv

18행 · 4열 · 세 지역의 월별 매출

차트, 그룹 집계, 피벗(월 × 지역)에 알맞습니다.

month,region,revenue,units
2026-01,서울,818,24
2026-01,부산,1065,25
2026-01,인천,3026,12
2026-02,서울,2478,69
2026-02,부산,2882,18

edge-cases.csv

5행 · 4열 · 파서가 까다로워하는 경우: 따옴표, 줄 바꿈, 탭, 이모지, 수식, 긴 ID

프로그램이 모든 값을 정확히 유지하는지 확인하세요. 0007, 1.2300, 20자리 ID가 그대로 남아야 합니다.

id,label,note,amount
0007,"Comma, inside","He said ""yes""",1.2300
12345678901234567890,"Line
break","Ends with spaces  ",-0.5
003,Café · 東京 · Москва · مرحبا,=SUM(A1:A2),1e-3
004,,Tab	inside,
005,😀 emoji,"""quoted""",9007199254740993

prices-semicolon.csv

5행 · 4열 · 여러 유럽 언어판 Excel이 저장하는 방식대로, 세미콜론으로 구분하고 소수점이 쉼표인 가격 데이터

열어서 구분 기호 자동 감지를 확인하고, 소수점이 쉼표인 숫자로 필터를 걸어 보세요.

item_no;description;price;quantity
000201;Coffee beans 1 kg;12,90;2
000202;Desk lamp;34,50;3
000203;USB-C cable, 2 m;7,99;4
000204;Notebook A5;3,25;5
000205;한빛상사;1.234,50;1

orders-100k.csv

브라우저에서 생성하는 주문 10만 건(약 7 MB)

고정 시드로 만들기 때문에 내려받을 때마다 내용이 같습니다. 대용량 파일 처리를 시험할 때 쓰세요.

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는 정수라서 대조군 역할을 합니다. 이 파일에서 도구가 틀린다면 원인은 지저분한 데이터가 아닙니다.

작업별로 쓸 파일

보기, 정렬, 필터orders.csv를 CSV 뷰어, 정렬, 필터 도구에서 쓰세요. order_id로 정렬해 0을 채운 ID의 순서가 유지되는지 확인합니다.
변환CSV를 JSON으로, CSV를 SQL로, CSV를 Excel로에는 orders.csv를, CSV를 vCard로에는 contacts.csv를 쓰세요. 001041이 그대로 남는지, 두 줄짜리 메모가 값 하나로 유지되는지 확인합니다.
두 버전 비교CSV 파일 비교에서 orders.csv와 orders-updated.csv를 비교하세요. 변경 1행, 삭제 1행, 추가 1행이 나와야 합니다.
조인고객 파일과 청구서 파일(customers.csv, invoices.csv)을 CSV 파일 합치기에서 customer_id 열을 키로 조인해 보세요.
정리와 검사signups.csv를 CSV 데이터 정리나 CSV 검사에 넣어, 위에 적은 문제 중 무엇을 도구가 알려 주거나 고치는지 확인하세요.
차트와 형태 바꾸기sales.csv를 CSV 차트 만들기(월별·지역별 매출)나 CSV 행/열 바꾸기에 쓰세요.

예시 파일을 쓰는 도구 페이지에서는 예시로 해 보기를 누르면 해당 파일을 바로 불러옵니다. 내 데이터를 열기 전에 도구가 어떻게 동작하는지 먼저 볼 수 있습니다.

실제 데이터인가요?

아닙니다. 사람 이름은 흔한 이름과 성을 무작위로 조합했고, 회사는 지어낸 것이며, 이메일 주소는 모두 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,
파싱된 레코드(각 7개 값)
[
  ["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\nPrefers email"],
  ["Olivia", "Garcia", "contact3@example.test", "+1 555-982-2565", "Northwind", "Chicago", ""]
]

자주 묻는 질문

이 파일을 제 테스트나 강좌 자료에 써도 되나요?

실제 인물이나 연락처 정보가 없으므로 테스트용 데이터로 안심하고 쓸 수 있습니다. 다만 도시 이름은 실제 지명이라는 점을 참고하세요.

ID가 왜 0으로 시작하나요?

실제 내보내기 파일에도 주문번호, 우편번호, 상품 코드처럼 0으로 시작하는 값이 많고, CSV 도구가 가장 흔하게 망가뜨리는 부분이기 때문입니다. 001041이 1041로 바뀐다면 그 도구가 텍스트를 숫자로 변환한 것입니다.

orders.csv에 중복 행이 있는 이유는 무엇인가요?

중복 제거와 비교 기능을 시험하기 위해서입니다. 마지막 레코드가 주문 001043을 그대로 반복하므로, 중복 검사를 하면 중복 행 1개가 나와야 합니다.

표준 및 참고 자료