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

CSV 파일 검사

signups.csv· 예시 데이터7행 · 6열
열 규칙(선택 사항)
규칙은 Table Schema(Frictionless Data) JSON으로 저장되므로 다른 도구에서도 읽을 수 있습니다.
오류 4개, 경고 2개
보고서
행열문제값
1name앞이나 뒤에 공백이 있습니다. 민준 김
2email올바른 이메일 주소 형식이 아닙니다.not-an-email
2signup_date올바른 날짜(YYYY-MM-DD) 값이 아닙니다.2026-02-30
6email올바른 이메일 주소 형식이 아닙니다.N/A
6signup_date올바른 날짜(YYYY-MM-DD) 값이 아닙니다.11/03/2026
7name앞이나 뒤에 공백이 있습니다.하윤 강

행 번호는 머리글 다음의 데이터 행부터 셉니다. 따옴표 안의 줄 바꿈은 새 행으로 세지 않습니다.

CSV 파일을 열면 구조부터 검사합니다. 모든 레코드의 필드 수가 머리글과 같은지, 빈 열 이름이나 중복 열 이름은 없는지, 엉뚱한 따옴표, 섞인 줄 바꿈 문자, 빈 줄이 있는지 확인합니다. 정수, 날짜, 이메일, 필수, 고유, 허용 값, 정규식 같은 열별 규칙을 추가하면 문제마다 데이터 행, 열, 값을 함께 보여 줍니다. 규칙은 Frictionless Table Schema의 용어를 씁니다. 검사는 업로드 없이 브라우저 안에서 이루어집니다.

CSV 파일을 검사하는 방법

  1. .csv, .tsv, .txt 파일을 여세요. 구분 기호와 UTF-8·UTF-16 BOM은 자동으로 감지됩니다. 열이 이상하게 보이면 가져오기 설정에서 다른 구분 기호나 EUC-KR(CP949) 같은 레거시 인코딩을 고르세요.
  2. 필요하면 모든 레코드가 가져야 할 열 개수를 입력하세요. 비워 두면 머리글의 열 개수를 기준으로 합니다.
  3. 필요하면 확인하고 싶은 열에 규칙을 추가하세요. 유형, 필수 값 여부, 고유 값 여부, 허용 값, 최솟값·최댓값, 길이 범위, 패턴을 정할 수 있습니다.
  4. 검사를 실행하고 보고서를 오류부터 경고 순으로 확인하세요. 값은 CSV 편집기에서 고치거나 CSV 정리로 다듬은 뒤 다시 검사하면 됩니다.

규칙을 쓰기 전에 열마다 유형, 빈 값, 고유 값 수를 보고 싶다면 CSV 분석으로 파일을 먼저 살펴보세요.

구조 검사 항목

필드 수(오류)레코드의 필드 수가 머리글이나 입력한 열 개수보다 많거나 적습니다. RFC 4180은 모든 레코드의 필드 수가 같다고 전제합니다. 맞지 않는다면 대개 따옴표로 감싸지 않은 구분 기호나 빠진 값 때문입니다.
빈 머리글(오류)열 이름이 비어 있거나 공백뿐입니다. 보고서에 위치가 표시됩니다.
중복 머리글(오류)앞뒤 공백을 지웠을 때 같은 열 이름이 두 개 있습니다. 보고서에 두 위치가 모두 표시됩니다.
엉뚱한 따옴표(경고)따옴표로 감싸지 않은 값 안에 5" screen처럼 따옴표 문자가 있습니다. 값은 적힌 그대로 두고, 보고서에 파일 전체의 개수를 표시합니다.
닫는 따옴표 뒤의 텍스트(경고)"abc"x처럼 닫는 따옴표 뒤, 다음 구분 기호 앞에 문자가 있습니다.
섞인 줄 바꿈 문자(경고)파일 안에 CRLF, LF, CR 레코드 끝이 섞여 있습니다. 보고서에 종류별 개수가 나옵니다.
빈 줄(경고)레코드 사이에 빈 줄이 있습니다. 빈 줄은 건너뛰고 보고서에 개수를 셉니다.
앞뒤 공백(경고)값의 텍스트 앞이나 뒤에 공백이 있습니다. 기본으로 켜져 있으며, 공백만 있는 값은 보고하지 않습니다.

따옴표로 시작한 값이 끝까지 닫히지 않으면, 그 뒤의 파일을 레코드로 정확히 나눌 수 없으므로 시작한 레코드를 알려 주는 오류와 함께 검사를 멈춥니다.

열 규칙

유형: 정수(integer)-12나 007처럼 부호(선택)와 숫자만 허용합니다. ±9,007,199,254,740,991을 넘는 값은 보고되므로, 긴 ID에는 패턴이 있는 텍스트 규칙을 쓰세요.
유형: 숫자(number)3.5, -0.25, 1e3처럼 마침표를 소수점으로 쓰는 일반 십진 표기입니다. 천 단위 구분 기호, 통화 기호, 앞뒤 공백은 허용하지 않으므로 18,900원 같은 값은 보고됩니다.
유형: 불리언(boolean)대소문자와 상관없이 true 또는 false만 허용합니다. 1, 0, yes, no는 보고됩니다.
유형: 날짜(date), 날짜·시간(datetime)YYYY-MM-DD로 적은 실제 달력 날짜여야 하므로 2024-02-30은 보고됩니다. 날짜·시간은 시각(2024-03-05T09:30, 초와 Z나 +02:00 오프셋은 선택)을 덧붙입니다.
유형: 형식이 있는 문자열(string)이메일(name@domain.tld 모양만 확인하며 실제로 받을 수 있는 주소인지는 검사하지 않음), URI(스킴이 있는 절대 URL), UUID(버전 1~8)입니다.
필수값이 비어 있으면 안 됩니다. 이 규칙이 없으면 빈 값은 다른 모든 규칙을 통과합니다.
고유열 안에서 같은 값이 반복되면 안 됩니다. 보고서에 그 값이 처음 나온 행이 표시됩니다. 빈 값은 비교하지 않습니다.
허용 값값이 목록의 값 중 하나와 대소문자, 공백까지 정확히 같아야 합니다.
최솟값, 최댓값정수·숫자 열에서는 양 끝을 포함하는 범위이고, 날짜·날짜·시간 열에서는 ISO 날짜로 적습니다.
최소·최대 길이유니코드 문자 단위로 세므로 é나 日, 한글 한 글자도 1자로 셉니다.
패턴Table Schema 규정대로 값 전체와 일치해야 하는 정규식입니다(예: [A-Z]{2}\d{4}). 대소문자를 구분합니다.

규칙은 머리글이 규칙 이름과 정확히 같은 열에 적용되며, 파일에 없는 열의 규칙은 건너뜁니다. 규칙은 Table Schema JSON 파일로 저장해 두었다가 다음 내보내기 파일에 다시 불러올 수 있습니다. 불러온 스키마에 알 수 없는 유형이나 키가 있으면 무시합니다.

보고서 읽는 법

  • 행 번호는 머리글 다음의 데이터 레코드부터 셉니다(머리글이 0행). 따옴표 안에 줄 바꿈이 있는 값도 레코드 하나이므로, 행 번호가 텍스트 편집기의 줄 번호와 다를 수 있습니다.
  • 문제마다 열 이름과 값을 함께 보여 주므로 CSV 뷰어나 편집기에서 바로 검색할 수 있습니다.
  • 오류는 구조나 규칙을 어긴 것이고, 경고는 CSV로서는 올바르지만 가져오기에서 자주 문제를 일으키는 데이터를 가리킵니다.
  • 문제는 최대 5,000개까지 목록에 나옵니다. 그보다 많으면 문제 종류별 합계는 계속 세고 목록에는 잘렸다는 표시를 붙입니다.

한도와 개인정보 보호

검사기는 레코드를 하나씩 읽으므로, 25 MB 바로 처리 한도를 넘는 파일은 백그라운드 워커에서 스트리밍 방식으로 검사하며 진행률 표시와 취소를 지원합니다. 현재 스트리밍 모드에서는 머리글보다 필드가 적은 레코드를 검사 전에 빈 값으로 채우기 때문에, 필드가 많은 레코드만 필드 수 오류로 보고됩니다.

검사는 브라우저 안에서 실행됩니다. CSV는 서버로 업로드되지 않습니다.

예시

가입자 내보내기 파일을 규칙 네 개로 검사한 결과입니다. id는 필수·고유 정수, email은 이메일 형식의 필수 문자열, signup_date는 날짜, plan은 basic, pro, team만 허용합니다. 출력은 검사기의 보고서로, 요약 다음에 한 줄에 문제 하나씩 나옵니다. 존재하지 않는 날짜, 도메인 끝부분이 없는 이메일, 대소문자가 다른 Pro, 반복된 id, 빠진 이메일, 그리고 뒤에 공백이 붙은 team 이 있으며, 마지막 값은 경고이면서 허용 값 위반이기도 합니다.

CSV
id,email,signup_date,plan
1,ana@example.com,2024-02-30,pro
2,kim@example,2024-03-01,Pro
2,bao@example.com,2024-03-04,basic
4,,2024-03-05,team 
검사 보고서
{"rows":4,"errors":6,"warnings":1,"truncated":false}
{"code":"type","row":1,"column":"signup_date","value":"2024-02-30","params":{"type":"date"}}
{"code":"format","row":2,"column":"email","value":"kim@example","params":{"format":"email"}}
{"code":"enum","row":2,"column":"plan","value":"Pro","params":{"allowed":"basic, pro, team"}}
{"code":"unique","row":3,"column":"id","value":"2","params":{"first":2}}
{"code":"whitespace","row":4,"column":"plan","value":"team ","params":{}}
{"code":"required","row":4,"column":"email","value":"","params":{}}
{"code":"enum","row":4,"column":"plan","value":"team ","params":{"allowed":"basic, pro, team"}}

자주 묻는 질문

공백이 붙은 값이 왜 허용 값 위반으로 보고되나요?

규칙은 공백을 지우지 않고 적힌 그대로 비교하므로 team 은 team과 다른 값입니다. CSV 정리로 해당 열의 공백을 지우거나 내보내기 설정을 고치세요.

검사하면 파일이 바뀌나요?

아니요. 파일을 읽고 찾은 문제를 보고할 뿐입니다. 문제는 편집기나 원본 시스템에서 고치세요.

매달 내보내는 파일에 같은 규칙을 다시 쓸 수 있나요?

네. 규칙을 Table Schema JSON 파일로 저장해 두고 다음에 불러오면 됩니다. 규칙은 열 이름으로 연결됩니다.

표준 및 참고 자료