표 내용은 같은데 CSV 파일 크기가 몇 바이트씩 다를 때가 있습니다. 이 차이를 곧바로 데이터 누락이나 손상으로 판단하기 전에 인코딩 표시와 줄바꿈을 확인할 수 있습니다. 세 줄짜리 짧은 한글 표로 네 조합을 만들었습니다.
모든 파일에 넣은 내용
이름,수량
연필,2
노트,5
마지막 줄 끝에도 줄바꿈을 넣었습니다. UTF-8과 UTF-8 BOM 포함 형식으로 각각 저장하고, 줄바꿈은 LF와 CRLF 두 방식으로 바꿨습니다. Python 3.12.14에서 바이트를 직접 작성해 편집기의 자동 변환이 개입하지 않도록 했습니다.
| 파일 | 크기(B) | 줄바꿈 수 |
| text-utf-8-LF.csv | 32 | 3 |
| text-utf-8-CRLF.csv | 35 | 3 |
| text-utf-8-sig-LF.csv | 35 | 3 |
| text-utf-8-sig-CRLF.csv | 38 | 3 |
LF를 CRLF로 바꾸면 세 줄의 줄바꿈마다 한 바이트가 더 들어가 총 3바이트가 늘었습니다. UTF-8 BOM을 넣어도 시작 부분에 EF BB BF 세 바이트가 추가되어 3바이트가 늘었습니다. 따라서 UTF-8 CRLF와 BOM 포함 LF는 모두 35바이트지만 바이트 배열은 다릅니다. 크기가 같아도 파일 내용이 같다고 단정할 수 없는 예입니다.
CSV를 받을 때 확인할 순서
- 행과 열, 한글이 올바르게 보이는지 먼저 확인합니다.
- 깨진 글자가 보이면 가져오기 과정에서 선택한 인코딩을 확인합니다.
- 도구가 BOM을 어떻게 처리하는지 살펴봅니다. 첫 번째 열 이름에 불필요한 문자가 붙는 경우도 구분해야 합니다.
- 자동 처리 프로그램이 줄바꿈 방식에 민감한지 확인하고, 변경 전 원본을 남깁니다.
BOM이 있으면 무조건 해결될까
그렇지는 않습니다. 어떤 프로그램은 BOM을 인코딩 판별에 활용하지만 다른 처리는 그렇지 않을 수 있습니다. 이번 실험은 네 파일의 저장 바이트를 비교한 것이며 특정 버전의 Excel에서 열기·저장하기를 검증한 결과가 아닙니다. 사용하는 서비스가 요구하는 형식을 우선 확인하세요.
특히 코드가 문자 인코딩을 명시할 수 있다면 추측에 맡기지 않고 약속한 형식으로 읽는 것이 도움이 됩니다. 다만 쉼표·따옴표·줄바꿈이 필드 내부에 들어가는 복잡한 CSV 규칙은 이 작은 샘플로 검증하지 않았습니다.
내 파일과 비교하는 방법
샘플 파일을 각각 열어 보이는 표가 같은지 확인하고 속성의 바이트 수를 비교하세요. 한 파일을 편집기로 다시 저장하면 프로그램이 줄바꿈이나 인코딩을 바꿀 수 있으므로, 처음 받은 사본과 수정한 사본을 분리해야 원인을 찾기 쉽습니다.
UTF-8 서명 처리 정의: Python codecs 공식 문서.
실험 조건과 확인 자료
2026년 10월 17일, Windows 환경에서 합성 샘플을 만들고 자동화 코드로 저장·분석했습니다. 실제 회사 문서나 촬영 사진을 사용한 시험은 아닙니다. 특정 앱의 버튼을 직접 눌러 비교한 결과로 해석하지 마세요. 결과가 달라질 수 있는 조건은 본문에 구분했습니다.
실험 원본·결과 파일과 재현 방법에서 샘플 ZIP과 측정 기록을 확인할 수 있습니다.