홈 › Blog › CSV 엑셀 오류 해결 가이드
데이터 및 표

CSV 파일이 엑셀에서 깨지는 이유와 해결법: UTF-8 BOM, 구분 기호, 앞자리 0 보존

게시일: 2026년 10월 17일 • 수정일: 2026년 10월 17일 • 작성자: GoToolstack 엔지니어링 팀 • GoToolstack JSON-CSV 및 Excel 도구로 검증 완료
엑셀 데이터 변형 없이 안전하게 변환: 구분 기호 설정, UTF-8 BOM 삽입, 15자리 이상 수치 정밀도 보존을 브라우저에서 직접 수행.
JSON ↔ CSV 변환기 열기
목차
  1. 직접 진단: 파일 형식과 엑셀 자동 변환의 차이
  2. 글자 깨짐(모지바케) 함정: UTF-8 vs. UTF-8 BOM
  3. 쉼표와 세미콜론 지역 충돌 (A열 몰림 현상)
  4. 따옴표와 줄바꿈 필드 처리 (RFC 4180 표준)
  5. 앞자리 0 누락과 15자리 수치 절삭 한계
  6. 마이크로소프트 엑셀 공식 권장 가져오기 절차 (Power Query)
  7. GoToolstack의 브라우저 안전 데이터 도구
  8. 기술 참고 자료 및 공식 표준 규격

1. 직접 진단: 파일 형식과 엑셀 자동 변환의 차이

CSV(쉼표로 구분된 값) 파일은 서식이 없는 순수 텍스트 스트림입니다. 엑셀에서 열었을 때 글자가 깨지거나 모든 데이터가 A열에 몰리거나 긴 숫자의 뒷자리가 0으로 바뀌는 경우, 파일 자체가 손상된 경우는 거의 없습니다. 원인은 CSV를 더블클릭할 때 엑셀이 적용하는 기본 자동 추측 로직에 있습니다.

더블클릭은 엑셀이 파일의 인코딩을 묻지 않고 윈도우 운영체제의 지역 설정에 맞춰 열도록 강제합니다. 이를 방지하려면 다음 4가지 기술적 원리를 숙지해야 합니다.

2. 글자 깨짐(모지바케) 함정: UTF-8 vs. UTF-8 BOM

최신 웹 애플리케이션과 데이터베이스는 기본적으로 BOM(바이트 순서 표시)이 없는 UTF-8로 텍스트를 출력합니다. 하지만 한국어 윈도우의 엑셀은 더블클릭 시 로컬 레거시 코드페이지(CP949)를 기본값으로 사용합니다.

Excel에서 CSV 파일을 열 때 발생하는 3가지 치명적인 서식 오류
그림 1: UTF-8 BOM 마커, 지역별 구분 기호 충돌(쉼표 대 세미콜론) 및 선행 0 유지

파일 시작 부분에 3바이트 식별자(BOM: 0xEF, 0xBB, 0xBF)가 없으면, 엑셀은 멀티바이트 UTF-8 문자를 분리된 단일 바이트로 해석하여 한글이 완전히 깨지게 됩니다.

원래 문자열 BOM 없을 때 엑셀 표시(깨짐) 발생 원인
München / İstanbul München / İstanbul UTF-8 2-byte → ANSI Mojibake
Français / Español Français / Español Diacritics parsed as individual code points
€ 1,500 / ₺ 5,000 / ¥ 10,000 € 1,500 / ₺ 5,000 / Â¥ 10,000 Multi-byte currency symbols decoded into ANSI artifacts

엑셀 사용자를 위한 CSV를 작성할 때는 반드시 UTF-8 BOM을 삽입하십시오. GoToolstack의 JSON ↔ CSV 변환기에서 엑셀용 UTF-8 BOM (\uFEFF) 추가를 체크하면 해결됩니다.

3. 쉼표와 세미콜론 지역 충돌 (A열 몰림 현상)

한국과 미국에서는 소수점에 마침표(12.50)를, 목록 구분 기호에 쉼표를 사용합니다. 그러나 유럽 여러 국가에서는 쉼표가 법적 소수점(12,50)입니다.

소수점과 열 구분 기호가 동일할 수 없으므로, 해당 지역의 윈도우 시스템은 세미콜론(;)을 기본 목록 구분 기호로 설정합니다. 표준 쉼표 CSV를 열면 세미콜론이 발견되지 않아 모든 데이터가 A열에 들어갑니다.

구분 기호를 변경하여 내보내거나, 엑셀의 데이터 > 텍스트/CSV에서 기능을 사용하여 쉼표를 직접 지정하십시오.

4. 따옴표와 줄바꿈 필드 처리 (RFC 4180 표준)

셀 값 안에 쉼표나 줄바꿈이 포함된 경우, RFC 4180 표준에 따라 전체 필드를 큰따옴표로 감싸야 합니다. 텍스트 내부의 따옴표는 두 번 연속("") 입력하여 이스케이프합니다.

ID,Customer,Address,Notes
101,"Acme, Inc.","123 Industrial Way
Suite 400","Order confirmed with ""Express"" shipping"

5. 앞자리 0 누락과 15자리 수치 절삭 한계

엑셀은 서식이 없는 CSV를 읽을 때 데이터 유형을 숫자로 자동 변환합니다. 이로 인해 두 가지 치명적인 데이터 왜곡이 발생합니다.

앞자리 0 영구 삭제: 우편번호나 사업자등록번호(예: "01234")가 정수(1234)로 변환되어 앞의 0이 메모리에서 완전히 사라집니다.

15자리 유효숫자 절삭 한계 (엑셀 엔진 vs. IEEE 754): 엑셀의 스프레드시트 엔진은 계산 규칙상 유효숫자를 최대 15자리로 제한합니다. 일반 IEEE 754 배정밀도 부동소수점 표준은 정수를 253(9,007,199,254,740,992, 약 16자리)까지 정확하게 유지하지만, 엑셀은 16자리 이후의 모든 숫자를 0으로 강제 반올림합니다(1234567890123456 → 1234567890123450).

중요 경고: 파일을 연 후에 셀 서식을 '텍스트'로 변경해도 잘려나간 숫자는 복구되지 않습니다. 숫자로 읽혀진 시점에 이미 메모리에서 원본이 파괴되었습니다.

6. 마이크로소프트 엑셀 공식 권장 가져오기 절차 (Power Query)

데이터 손실 없이 CSV를 안전하게 열려면 Power Query 마법사를 사용해야 합니다.

  1. 엑셀을 빈 통합 문서로 엽니다(CSV 파일을 더블클릭하지 마십시오).
  2. 상단 리본 메뉴에서 데이터 > 데이터 가져오기 > 파일에서 > 텍스트/CSV에서를 선택합니다.
  3. 미리보기 창에서 파일 원본:을 65001: Unicode (UTF-8)로 설정합니다.
  4. 구분 기호:를 쉼표 또는 세미콜론으로 지정합니다.
  5. 로드 대신 데이터 변환을 클릭하고, Power Query 편집기에서 고유번호나 전화번호 열의 데이터 형식을 텍스트로 변경합니다.
  6. 닫기 및 로드를 클릭하여 데이터가 보존된 상태로 시트에 반영합니다.
  7. 원시 CSV 파일을 덮어써서 손상시키지 않도록 통합 문서를 Excel 통합 문서(.xlsx) 형식으로 저장하여 original 원본 데이터를 보존하세요.

7. GoToolstack의 브라우저 안전 데이터 도구

엑셀의 기본 오류를 피하고 서버 업로드 없이 브라우저 메모리에서 안전하게 처리하세요:

기술 참고 자료 및 공식 표준 규격

  • IETF RFC 4180: 쉼표로 구분된 값(CSV) 파일의 공통 형식 및 MIME 유형 규격 (따옴표 이스케이프, CRLF 및 구분 기호 규칙).
  • Microsoft Learn / Support: Microsoft Excel에서 텍스트(.txt 또는 .csv) 파일 가져오기 또는 내보내기 공식 가이드 (Power Query 데이터 유형 보존).
  • Unicode Consortium: FAQ – UTF-8, UTF-16, UTF-32 및 바이트 순서 표시(BOM) 기술 지침.