-
csv 한글 깨짐 납품하고 나서 오는 연락외주개발 2026. 9. 20. 09:12
csv 한글 깨짐은 파일 맨 앞 3바이트 때문인데, 그것만 고친다고 납품이 끝나지 않는다.
크롤링 외주 결과물을 넘기면 제일 많이 오는 연락이 이거였다. 내 맥에서는 멀쩡한데 받는 쪽에서 깨진다

다음에서 csv 한글 깨짐을 검색한 결과 왜 깨지냐면 — 3바이트

CSV 파일에 인코딩 정보가 없어서 생기는 문제 CSV 는 그냥 텍스트라서 인코딩 정보를 안 담는다. 그래서 여는 프로그램이 추측한다
윈도우 엑셀은 기본적으로 CP949 로 추측한다. 파일이 UTF-8 이면 그 추측이 틀린다
같은 내용을 인코딩만 바꿔 저장해보면 차이가 눈에 보인다.

같은 CSV를 세 가지 인코딩으로 저장했을 때 파일 크기와 첫 바이트 비교 utf8_nobom.csv 80바이트 ec 9d b4 utf8_bom.csv 83바이트 ef bb bf ← BOM cp949.csv 64바이트 c0 cc b8ef bb bf세 바이트가 "이건 UTF-8 이다"라고 알려주는 표식이다. 파이썬이면utf-8-sig로 저장하면 붙는다여기까지는 검색하면 다 나온다. 문제는 그다음이다
인코딩을 맞춰도 남는 것
납품하면서 걸린 게 인코딩만이 아니었다.

인코딩 외에 CSV 납품에서 걸리는 세 가지 ① 쉼표가 든 값
금액에 쉼표를 넣으면 CSV 가 알아서 따옴표로 감싼다.
금액 "1,200,000"이게 정상 동작이다. 그런데 받는 쪽에서 다른 프로그램에 넣으면 따옴표째 들어가는 경우가 있다
숫자를 넘길 거면 쉼표를 빼고 순수한 숫자로 주는 게 안전하다. 보기 좋으라고 넣은 쉼표가 상대 시스템을 막는다
② 줄바꿈
CSV 는 기본이
CRLF(\r\n)다. 맥에서 만든 파일이LF로만 끝나면 어떤 프로그램은 줄을 못 나눈다데이터 안에 줄바꿈이 들어 있으면 더 복잡해진다. 셀 하나가 두 줄로 쪼개진다
③ 파일명
내용을 고쳐도 파일명이 깨지는 건 별개다. 특히 zip 으로 묶어 보낼 때 생긴다
맥에서 압축 풀면 한글 파일명이 깨진다는 얘기는 따로 확인해봤다
받는 쪽이 뭘 쓰느냐로 갈린다
같은 파일인데 환경마다 다르게 열린다.
윈도우 엑셀 BOM 없으면 CP949 로 읽는다 → UTF-8 이면 깨진다 맥 엑셀 버전에 따라 동작이 다르다 구글 시트 가져오기에서 인코딩을 고를 수 있다 다른 프로그램 따옴표·줄바꿈 처리가 제각각이다어디서 열지 모르면 맞출 수가 없다. 그래서 납품 전에 묻는 게 제일 빠르다
파일 형식 자체가 안 열리는 경우도 같은 종류다. 한글파일을 맥에서 여는 것도 변환 없이 되는 방법이 있다
넘기기 전에 하는 것

CSV 납품 전 확인 순서 - 받는 쪽 환경을 묻는다. 윈도우인지 맥인지, 엑셀인지 다른 프로그램인지
- 샘플 세 줄을 먼저 보낸다. 전체를 만들기 전에 열리는지 확인받는다
- BOM 을 붙인다. 안 물어봤으면 붙이는 쪽이 안전하다
- 숫자에서 쉼표를 뺀다. 보기 좋으라고 넣으면 상대 시스템이 막힌다
- xlsx 로 줄 수 있으면 그게 낫다. 인코딩 문제가 아예 없다
xlsx 가 항상 답은 아니다. 받는 쪽이 그 파일을 다른 프로그램에 넣을 거면 CSV 가 맞고, 그때는 위 항목을 챙기면 된다
파일이 깨진 게 아니라 읽는 방법이 틀린 것이라, 대개 되살릴 수 있다. 다만 되살리는 건 받는 사람 몫이 된다
정리하면
- CSV 는 인코딩 정보를 안 담는다. 여는 쪽이 추측한다
- BOM 3바이트가 그 추측을 막는다. 파이썬이면
utf-8-sig다 - 인코딩만 맞춰도 안 끝난다. 쉼표·줄바꿈·파일명이 남는다
- 숫자에 쉼표를 넣지 않는다. 따옴표로 감싸지면서 상대 시스템에서 막힌다
- 받는 쪽 환경을 먼저 묻는다. 모르면 맞출 수가 없다
- 샘플 세 줄을 먼저 보낸다. 전체 납품하고 다시 만드는 것보다 싸다
내 화면에서 멀쩡한 건 아무 의미가 없다. 납품은 상대 화면에서 끝난다
'외주개발' 카테고리의 다른 글
프리랜서 수입 200만원 받으면 손에 얼마 남나 (0) 2026.09.19 크몽 상위노출 6개월 54만원 쓰고 알게 된 것 (0) 2026.09.17 숨고 크몽 차이는 수수료가 아니라... (0) 2026.09.16 크몽 전문가 등록과 서비스 승인받는방법 (반려된이유) (0) 2026.09.15 1인 사업자등록 내기 전에 확인해야할것(예비창업패키지) (0) 2026.09.14