대용량 CSV · 실무 가이드
대용량 CSV 파일을 분할하는 방법
Excel에서 열리지 않는 CSV는 행 수, 목표 크기, 열 값을 기준으로 나누면 다루기 쉬워집니다. 필요한 도구와 문자 깨짐을 피하는 방법을 간단히 정리했습니다.
결론: 분할 기준에 맞는 방법을 선택하세요
작은 일회성 파일은 Excel, 반복하는 Excel 작업은 Power Query, 50MiB 이하 CSV를 바로 나눌 때는 LocaCSV가 편리합니다. 큰 파일을 복사·붙여넣기로 나누면 행 누락이나 중복이 생기기 쉽습니다.
CSV 분할을 직접 확인해 보세요
6행 샘플 CSV에서 분할 방법을 바꾸면 출력 파일이 어떻게 달라지는지 볼 수 있습니다.
분할 전: orders.csv
데이터 6행134B
| 주문 번호 | 지점 | 금액 |
|---|---|---|
| A001 | 서울 | 1200 |
| A002 | 부산 | 800 |
| A003 | 서울 | 1500 |
| A004 | 부산 | 600 |
| A005 | 서울 | 900 |
| A006 | 부산 | 1100 |
분할 후
3개 파일로 분할
orders_001.csv
데이터 2행64B
| 주문 번호 | 지점 | 금액 |
|---|---|---|
| A001 | 서울 | 1200 |
| A002 | 부산 | 800 |
orders_001.csv데이터 2행64B
| 주문 번호 | 지점 | 금액 |
|---|---|---|
| A001 | 서울 | 1200 |
| A002 | 부산 | 800 |
orders_002.csv
데이터 2행64B
| 주문 번호 | 지점 | 금액 |
|---|---|---|
| A003 | 서울 | 1500 |
| A004 | 부산 | 600 |
orders_002.csv데이터 2행64B
| 주문 번호 | 지점 | 금액 |
|---|---|---|
| A003 | 서울 | 1500 |
| A004 | 부산 | 600 |
orders_003.csv
데이터 2행64B
| 주문 번호 | 지점 | 금액 |
|---|---|---|
| A005 | 서울 | 900 |
| A006 | 부산 | 1100 |
orders_003.csv데이터 2행64B
| 주문 번호 | 지점 | 금액 |
|---|---|---|
| A005 | 서울 | 900 |
| A006 | 부산 | 1100 |
대용량 CSV가 열리지 않는 주요 원인
CSV는 텍스트 파일이지만 여는 프로그램에는 제한이 있습니다. Excel 한 시트에는 최대 1,048,576행만 들어가며, 이보다 작아도 메모리나 파일 구조 때문에 느려질 수 있습니다.
- Excel 워크시트의 최대 행 수를 초과했습니다.
- 파일을 불러오는 동안 메모리가 부족합니다.
- 구분 기호나 문자 인코딩이 원본과 맞지 않습니다.
- 쉼표나 줄바꿈을 단순 분리해 따옴표 안의 내용이 깨집니다.
Excel, Power Query, Python, LocaCSV 비교
파일 크기, 반복 여부, 코드 관리 가능 여부를 기준으로 선택하세요.
| 방법 | 적합한 상황 | 장점 | 주의점 |
|---|---|---|---|
| Excel | 작은 파일을 한 번만 분할 | 익숙한 화면 | 행 제한과 수작업 오류 |
| Power Query | Excel 가져오기 작업을 반복 | 저장한 단계를 다시 실행 | 여러 CSV 출력은 추가 설정 필요 |
| Python | 큰 파일이나 반복 작업 | 자동화하기 쉽습니다 | 실행 환경과 코드 관리 필요 |
| LocaCSV | 50MiB 이하를 바로 분할 | 브라우저에서 사용 | 최대 100개, 값별 분할은 1열 |
Excel
- 적합한 상황
- 작은 파일을 한 번만 분할
- 장점
- 익숙한 화면
- 주의점
- 행 제한과 수작업 오류
Power Query
- 적합한 상황
- Excel 가져오기 작업을 반복
- 장점
- 저장한 단계를 다시 실행
- 주의점
- 여러 CSV 출력은 추가 설정 필요
Python
- 적합한 상황
- 큰 파일이나 반복 작업
- 장점
- 자동화하기 쉽습니다
- 주의점
- 실행 환경과 코드 관리 필요
LocaCSV
- 적합한 상황
- 50MiB 이하를 바로 분할
- 장점
- 브라우저에서 사용
- 주의점
- 최대 100개, 값별 분할은 1열
LocaCSV로 분할하는 절차
미리보기의 열이 어긋나면 구분 기호나 문자 인코딩을 먼저 바꾸세요.
- 행 수·크기는 CSV 분할을, 열 값은 값별 분할을 열고 CSV 하나를 선택합니다.
- 헤더, 문자 인코딩, 구분 기호와 미리보기를 확인합니다.
- 파일당 데이터 행 수나 목표 크기를 입력합니다. 값별 화면에서는 열 하나를 선택합니다.
- 분할 후 행 수를 확인하고 ZIP을 다운로드합니다.
열의 값별로 분할하는 방법
값별 분할은 선택한 열의 값마다 CSV 하나를 만듭니다. 예를 들어 ‘지점’ 열에 서울·부산·대구가 있으면 세 파일이 만들어집니다.
- 같은 값의 행은 같은 출력 파일에 들어갑니다.
- 빈 값은 제외하거나 별도 파일로 출력할 수 있습니다.
- 한 번에 1개 열을 선택하며 출력은 최대 100개입니다.
행 수와 파일 크기 주의점
LocaCSV는 CSV 한 파일을 50MiB까지 받습니다. 실제 처리 속도는 기기, 행 길이, 출력 수에 따라 달라집니다.
- 행 수 모드는 헤더를 제외한 데이터 행을 지정한 수만큼 나눕니다.
- 목표 크기는 출력 문자 인코딩, BOM, 반복 헤더를 포함합니다. 데이터 행 하나를 중간에서 자르지는 않습니다.
- 원본은 남겨 두고 출력 데이터 행 수를 확인하세요.
문자 인코딩과 한글 깨짐 해결
한국 업무 CSV에는 UTF-8과 CP949가 많이 쓰입니다. EUC-KR은 별도 선택 항목이 아닙니다. CP949로 미리보기를 확인하고, 글자가 맞지 않으면 로컬에서 UTF-8로 변환하세요.
- 미리보기에서 한글, 주소, 원화 기호를 확인합니다.
- 열이 밀리면 먼저 구분 기호를 확인합니다.
- 인코딩을 모르면 원본 시스템의 내보내기 설정을 확인합니다.