🧹 CSV 클리너
CSV / TSV를 붙여넣고 중복 제거, 정렬, 빈 행 제거, 셀 trim, 헤더 정규화, 열 추출, 줄바꿈 통일을 한 번에 처리. RFC 4180 따옴표 지원.
🔒 개인정보 보호
- ・모든 처리는 브라우저 내에서 완료됩니다
- ・CSV 데이터는 서버로 전송되지 않습니다
- ・저장 로그 · 기록 · 데이터베이스 없음
⚙️ 입력 설정
🧹 클리닝 옵션
1부터의 열 번호 또는 헤더명, 쉼표 구분
지정한 열만 출력
📈 처리 결과
🔗 관련 도구
📖 자주 걸리는 지점
붙여 넣은 CSV / TSV 에 대해 중복 행 삭제·빈 행 삭제·셀 trim·헤더 snake_case 화·열 추출·정렬·줄바꿈 코드 통일을 한꺼번에 실행합니다. RFC 4180 의 인용 (필드 안의 쉼표·줄바꿈·이중 인용부호) 을 올바르게 해석합니다. 처리는 브라우저 안에서 끝나며 데이터는 전송되지 않습니다. 다만 이 도구는 텍스트로 처리하므로 값의 「의미」는 알지 못합니다 — 007 이 우편번호인지 숫자인지, 2025/03/04 가 3 월 4 일인지 4 월 3 일인지는 판정할 수 없습니다. 정형은 제대로 통과하는데 내용이 깨지는 일은 대개 이 경계에서 일어납니다.
| 사례 | 무슨 일이 일어나는가 | 어떻게 하면 되는가 |
|---|---|---|
| 구분자와 인용부호의 오인 | 자동 판정은 앞부분의 출현 횟수로 정하므로 본문에 쉼표가 많은 열이 있으면 빗나갑니다. 특히 주의가 필요한 것이 유럽권의 익스포트로, 소수점에 쉼표를 쓰는 지역에서는 구분자가 세미콜론입니다 — 이것을 쉼표로 읽으면 한 열로 뭉쳐 버립니다. 또 하나 까다로운 것이 인용부호 안의 줄바꿈입니다. RFC 4180 에서는 인용부호로 감싼 필드에 줄바꿈을 넣어도 되므로 「한 줄」과 「한 레코드」는 일치하지 않습니다. 행 수만으로 검산하면 반드시 맞지 않습니다. 나아가 백슬래시로 이스케이프하는 독자 방언 (일부 DB 의 익스포트) 은 RFC 4180 이 아니므로 올바르게 나눌 수 없습니다. | 자동 판정에 맡기지 말고 구분자를 명시적으로 고르세요. 그런 다음 검산은 「열 수」로 합니다 — 정형 후에 헤더의 열 수와 각 행의 열 수가 일치하면 분할은 성공한 것입니다. 한 행만 열 수가 다르다면 거의 확실히 그 행의 인용부호가 닫히지 않은 것이며 (원본을 만든 쪽의 버그입니다). 백슬래시 방언이라면 여기에 붙이기 전에 csvkit 이나 스프레드시트로 한 번 RFC 4180 형식으로 변환하세요. 그리고 가장 먼저 할 일은 변환 전후의 행 수와 열 수를 적어 두는 것입니다 — 건수가 변하지 않았다는 확인만은 눈으로라도 반드시 하세요. |
| 중복 삭제는 「문자열로 같은지」만 본다 | 비교는 문자열의 일치로 이루어지므로 사람 눈에는 같아 보이는 행이 다른 것으로 남습니다: 끝에 공백이 있는 행, 전각과 반각이 섞인 행, 대소문자가 다른 행, 03-1234-5678 과 0312345678, 2025-01-05 와 2025/1/5. 반대로 trim 을 먼저 걸면 그때까지 다른 것이던 행이 중복이 됩니다 — 즉 처리 순서에 따라 결과 건수가 달라집니다. 또 하나 중요한 것이 어느 행이 남는가로, 이 도구는 먼저 나온 행을 남기고 뒤에 나온 행을 버립니다. 갱신 일시순으로 늘어선 데이터를 그대로 중복 삭제하면 오래된 쪽이 남습니다. |
「정규화한 뒤 중복 삭제」라는 순서를 고정하세요. 이 페이지라면 trim 을 켠 상태로 중복 삭제를 실행합니다. 전각 반각이나 대소문자가 섞여 있다면 먼저 전각 반각 변환 과 대소문자 변환 을 거친 뒤 되돌아오세요. 남기고 싶은 행을 고르려면 먼저 정렬한 다음 중복 삭제를 합니다 — 갱신 일시 내림차순으로 늘어놓으면 새로운 쪽이 남습니다. 그리고 「중복 판정 열」을 쓰세요: 완전 일치가 아니라 email 이나 id 처럼 본래 키여야 할 열만으로 판정하면 다른 열의 흔들림에 끌려가지 않습니다. |
| 깨끗한 CSV 가 Excel 로 여는 순간 깨진다 | 여기서 출력한 CSV 가 올바르더라도 더블 클릭으로 Excel 에 열게 하면 내용이 다시 쓰입니다. 자주 일어나는 것이 넷. 앞자리 0 이 사라집니다 (007 → 7, 우편번호·사번·전화번호). 날짜로 해석됩니다 (1-2 가 날짜가 되고, 유전자명 MARCH1 이 날짜가 되는 문제는 학계에서 개명으로까지 번졌습니다). 16 자리를 넘는 숫자가 반올림됩니다 (카드 번호나 일부 ID 의 끝자리가 0 이 됩니다). 그리고 BOM 이 없는 UTF-8 이 깨집니다 — 이 도구는 BOM 을 붙이지 않으므로 Windows 판 Excel 에서는 글자가 깨집니다. 어느 쪽이든 「다시 저장」하면 깨진 상태가 파일에 굳어집니다. |
더블 클릭으로 열지 마세요. Excel 이라면 데이터 > 텍스트 또는 CSV 에서 를 사용하고 문제가 되는 열의 형식을 「텍스트」로 지정한 뒤 읽어 들입니다. 이것이 유일하게 확실한 방법입니다. 상대가 Excel 로 열 것을 아는 파일을 배포한다면 UTF-8 BOM 을 붙여 내보내세요 — 이 페이지의 출력을 저장한 뒤 에디터에서 「UTF-8 (BOM 포함)」을 지정해 다시 저장하는 것이 간편합니다. 애초에 ID 나 전화번호를 CSV 로 주고받지 않는다는 판단도 유효하며, 상대가 Excel 을 쓴다면 .xlsx 로 건네는 편이 안전합니다 — 형식이 저장되므로 열어도 다시 쓰이지 않습니다. |
헤더의 snake_case 화는 「원래 이름을 버리는」 조작입니다. 비라틴 문자 헤더나 기호가 든 헤더는 변환 후에 되돌릴 수 없습니다 — DB 에 투입하기 직전에 한 번만 실행하고 원본 파일은 반드시 남기세요. 열 대응표 (원래 이름 → 새 이름) 를 적어 두면 나중에 「이 열이 무엇이었는가」를 추적할 수 있습니다. 줄바꿈 코드 선택도 눈에 보이지 않아 잊기 쉽습니다: Windows 도구에 넘긴다면 CRLF, Unix 계열 스크립트나 Git 에 올린다면 LF 가 기본입니다 — 섞인 채로 Git 에 넣으면 차분이 전체 행이 됩니다 (자세히는 줄바꿈 코드 변환). 그리고 마지막으로 브라우저 내 처리이므로 다룰 수 있는 크기는 단말의 메모리에 달려 있습니다. 수십 MB 를 넘는 CSV 는 이 페이지가 아니라 csvkit·xsv·duckdb 같은 커맨드라인 도구를 쓰세요 — 그것들은 파일을 전부 메모리에 올리지 않고 처리할 수 있습니다.
📖 사용법
-
1
CSV / TSV 붙여넣기왼쪽 입력란에 데이터를 붙여넣으세요. 구분자는 자동 또는 수동 선택.
-
2
클리닝 옵션 선택중복 제거, 정렬, 빈 행 제거, 열 추출 등 필요한 옵션을 선택. 키 열은 번호나 헤더명으로 지정.
-
3
결과 복사 또는 다운로드오른쪽에 결과가 표시됩니다. 복사 또는 다운로드 (.csv / .tsv).
❓ 자주 묻는 질문
중복 행은 어떻게 판정되나요?
따옴표로 감싼 쉼표나 줄바꿈은 보존되나요?
큰 CSV도 처리되나요?
🐛 이 도구에서 문제가 발생했나요?
무료 · 가입 불필요. 재현 절차만이라도 도움이 됩니다. 보고는 운영자에게 직접 전달되어 개선에 사용됩니다.
보고 감사합니다!
운영자에게 전달되었습니다. 개선에 사용됩니다.