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

CSV 압축

CSV, .gz, .zip 파일을 여기에 놓으세요
작업
파일의 바이트를 그대로 압축하므로, 복원하면 인코딩, BOM, 줄 바꿈 문자까지 완전히 같은 파일이 됩니다.
압축하거나 복원할 파일을 여세요.

CSV를 열고 gzip이나 ZIP을 고르면 압축 파일이 준비되는 대로 다운로드됩니다. orders.csv는 orders.csv.gz 또는 orders.zip이 됩니다. 반대로 .gz나 .zip 파일을 열면 안에 든 파일로 풀어 줍니다. 바이트를 해석하거나 바꾸지 않으므로 인코딩, 구분 기호, 따옴표, 줄 바꿈 문자, BOM이 원래 모습 그대로 돌아옵니다. 압축은 브라우저 안에서 이루어지며 파일은 업로드되지 않습니다.

CSV를 압축하거나 푸는 방법

  1. 파일을 열거나 끌어다 놓으세요. .gz나 .zip으로 끝나는 파일이면 압축 풀기로 바뀌고, 그 밖의 파일은 압축합니다.
  2. gzip이나 ZIP을 고르고 압축 수준을 1~9 중에서 정하세요. 기본값 6은 크기와 시간의 균형이 맞는 일반적인 값입니다.
  3. 작업을 시작하세요. 결과가 다운로드되고, 압축 전후 크기와 그 비율이 표시됩니다.

Gzip과 ZIP 중 무엇을 고를까요?

Gzip(.csv.gz)RFC 1952에 정의된, 압축 파일 하나로 된 형식입니다. 명령줄 도구, 데이터 웨어하우스, 많은 가져오기 파이프라인이 .csv.gz를 바로 읽습니다. 원래 파일 이름이 안에 저장됩니다.
ZIP(.zip)원래 파일 이름으로 항목 하나가 들어 있는 압축 파일입니다. Windows와 macOS에서 두 번 클릭으로 열리므로 이메일 첨부나 명령줄 도구가 없는 사람에게 보내기에 알맞습니다.
압축 수준1은 시간이 가장 적게 들고, 9는 파일을 더 작게 만들려고 가장 많이 애씁니다. 일반적인 CSV에서는 6과 9의 차이가 작고, 작은 파일에서는 차이가 없을 수도 있습니다.
압축 풀기.gz 파일은 안에 든 파일 하나를 돌려줍니다. .zip은 안에 든 모든 파일을 돌려주며, 폴더는 건너뛰고 이름에서 폴더 경로를 뺍니다. 파일이 하나면 바로 다운로드되고, 여러 개면 파일마다 다운로드 버튼이 있는 목록으로 보여 줍니다.

gzip 헤더와 ZIP 항목에 기록되는 타임스탬프를 현재 시각이 아닌 고정 값으로 쓰기 때문에, 같은 파일을 같은 수준으로 압축하면 매번 똑같은 바이트가 나옵니다. 그래서 체크섬을 확인하거나 버전 관리에 넣어도 안전합니다.

그대로 유지되는 것

  • 파일을 표가 아닌 바이트로 다루므로 다시 인코딩하는 일이 없습니다. EUC-KR(CP949)이나 Windows-1252, Shift_JIS로 내보낸 파일, 세미콜론 구분 기호, CRLF 줄 바꿈, UTF-8 BOM이 모두 그대로 복원됩니다. 값을 전혀 읽지 않으므로 앞자리 0과 긴 ID도 손대지 않습니다.
  • 따옴표 안의 줄 바꿈이나 엉뚱한 따옴표는 압축과 무관합니다. 형식이 깨진 CSV도 그대로 압축하고 복원합니다. 파일 자체를 점검하려면 CSV 검사를 사용하세요.
  • gzip은 RFC 1952 규정대로 파일 이름을 Latin-1로 저장하므로, 한글이나 중국어, 키릴 문자처럼 다른 문자로 된 파일 이름은 제대로 돌아오지 않을 수 있습니다. 이런 이름에는 ZIP을 쓰거나, 복원한 뒤 이름을 바꾸세요.
  • ZIP 안의 서로 다른 폴더에 같은 이름의 파일이 두 개 있으면 둘 다 그 이름으로 복원됩니다. 다운로드할 때 이름을 바꾸세요.

문제 해결

  • gzip이나 ZIP 파일이 아니라고 나옵니다. 파일의 첫 바이트가 gzip이나 ZIP 서명이 아닙니다. 이름만 .gz인 일반 CSV이거나 7z, RAR 같은 다른 압축 형식일 수 있습니다. 압축하려면 gzip이나 ZIP으로 전환하세요.
  • gzip 데이터가 손상되었거나 불완전하다고 나옵니다. 파일 끝에 저장된 체크섬이나 길이가 맞지 않습니다. 대개 다운로드가 중간에 끊긴 경우이니 파일을 다시 받으세요.
  • ZIP 데이터가 손상되었거나 지원하지 않는 방식이라고 나옵니다. 무압축(stored)과 Deflate 항목만 복원할 수 있으며 Deflate64, BZIP2, LZMA 같은 방식은 지원하지 않습니다. 암호가 걸린 ZIP 파일도 지원하지 않으니, 암호를 묻는 압축 프로그램으로 푸세요.
  • 압축해도 크기가 거의 줄지 않습니다. 무작위 ID나 해시처럼 서로 다른 값이 많은 CSV는 반복이 많은 데이터보다 덜 압축되고, 아주 작은 파일은 형식이 고정 헤더를 덧붙이기 때문에 줄어드는 양이 적습니다. 유형이 정해진 열 중심 데이터라면 Parquet으로 변환하면 더 작아질 수 있습니다.

대용량 파일과 개인정보 보호

파일을 표로 불러오지 않으므로 25 MB 한도가 없습니다. 파일을 4 MB 조각 단위로 읽어 스트리밍 방식으로 압축하거나 복원합니다. 복원한 데이터가 합계 4 GB를 넘으려 하면 오류를 내고 멈추는데, 엄청난 크기로 부풀어 오르는 ‘ZIP 폭탄’으로부터 탭을 보호하기 위해서입니다.

작업은 이 탭의 백그라운드 워커에서 실행되며 취소로 멈출 수 있습니다. 업로드되는 것은 없습니다. 압축 대신 큰 파일을 여러 조각으로 잘라 작게 만들려면 CSV 나누기를 사용하세요. 나뉜 파일을 ZIP 하나로 받을 수도 있습니다.

예시

세미콜론 구분, 소수점 쉼표, 앞자리가 0인 SKU가 있는 12행짜리 주문 내보내기 파일(앞부분만 표시)로, 전체 크기는 374바이트입니다. 파일이 아주 작아서 gzip은 수준 1, 6, 9 모두 185바이트로 같고, ZIP은 더 큰 압축 파일 헤더가 붙습니다. 어느 파일을 복원해도 374바이트가 모두 그대로 돌아옵니다.

CSV
order_id;region;sku;qty;amount
SO-1001;North;00123;1;19,90
SO-1002;South;00124;2;38,90
SO-1003;East;00125;3;57,90
SO-1004;West;00123;4;76,90
…
결과
orders-march.csv.gz   185 bytes (49.5 %), restores to orders-march.csv
orders-march.zip      296 bytes (79.1 %), one entry: orders-march.csv
Restored orders-march.csv   374 bytes, identical to the original

자주 묻는 질문

여러 CSV 파일을 ZIP 하나로 압축할 수 있나요?

이 페이지에서는 안 됩니다. 한 번에 파일 하나만 압축합니다. CSV 나누기는 나뉜 파일을 모두 ZIP 하나로 내려 주고, 여기서 ZIP을 풀면 안에 든 파일을 모두 돌려줍니다.

.csv.gz 파일도 CSV인가요?

gzip으로 압축한 CSV입니다. gunzip, 대부분의 데이터베이스 가져오기 명령, 데이터 라이브러리처럼 gzip을 지원하는 도구는 바로 읽습니다. 그렇지 않은 도구에서는 먼저 .csv로 풀어야 하며, 이 페이지에서 할 수 있습니다.

압축하면 데이터가 바뀌나요?

아니요. gzip과 ZIP 압축은 무손실이고 이 도구는 CSV를 해석하지 않으므로, 복원한 파일은 원본과 완전히 같은 바이트입니다.

표준 및 참고 자료