도구상자FREE ONLINE TOOLS
← 가이드 목록

CSV란? — 엑셀과의 차이, 깨짐 해결과 JSON 변환

데이터를 내려받으면 자주 만나는 확장자가 .csv입니다. 엑셀로 열리니 엑셀 파일 같지만, 열어 보면 서식이 다 사라져 있고 어떨 땐 한글이 와장창 깨져 있습니다. CSV가 무엇인지 한 번 이해해 두면 이런 문제의 원인과 해결법이 분명해집니다.

CSV의 정체 — 쉼표로 구분한 텍스트

CSV(Comma-Separated Values)는 이름 그대로 값을 쉼표로 구분해 나열한 텍스트 파일입니다. 메모장으로 열면 이렇게 생겼습니다.

이름,나이,도시
김철수,29,서울
이영희,34,부산

첫 줄은 보통 열 이름(헤더)이고, 그 아래 한 줄이 표의 한 행입니다. 값 안에 쉼표가 들어가면 "서울, 강남"처럼 따옴표로 감쌉니다. 구조가 단순해서 엑셀·구글 시트·데이터베이스·프로그래밍 언어 등 거의 모든 도구가 읽고 쓸 수 있는 공용어 역할을 합니다.

엑셀 파일(xlsx)과의 차이

CSV엑셀(xlsx)
본질순수 텍스트엑셀 전용 형식
서식(색·글꼴·테두리)저장 안 됨저장됨
수식·차트·여러 시트저장 안 됨저장됨
호환성거의 모든 프로그램엑셀·호환 프로그램
용량작음상대적으로 큼
요약: 보기 좋게 꾸민 문서는 xlsx, 데이터를 주고받는 용도는 CSV입니다. CSV로 저장하면 서식·수식이 사라지는 건 오류가 아니라 형식의 특성입니다.

한글 깨짐 — 인코딩 문제 해결

CSV를 엑셀에서 열었을 때 문ìž처럼 깨지는 이유는 인코딩 차이입니다. 요즘 데이터는 대부분 UTF-8로 저장되는데, 한국어 엑셀은 더블클릭으로 열 때 EUC-KR(CP949)로 해석하기 때문입니다. 해결법은 두 가지입니다.

  • 엑셀에서 가져오기: 더블클릭 대신 데이터 → 텍스트/CSV 가져오기로 열고, 파일 원본(인코딩)을 UTF-8로 지정합니다.
  • 파일을 다시 저장: 메모장에서 열어 "다른 이름으로 저장 → 인코딩: UTF-8(BOM)"으로 저장하면 더블클릭으로도 정상 표시됩니다.

CSV ↔ JSON 변환

웹 서비스·API·코드에서는 표 데이터를 JSON 형식으로 다루는 경우가 많습니다. 위 CSV를 JSON으로 바꾸면 이렇게 됩니다.

[
  { "이름": "김철수", "나이": "29", "도시": "서울" },
  { "이름": "이영희", "나이": "34", "도시": "부산" }
]

헤더가 키(key)가 되고 한 행이 객체 하나가 되는 규칙입니다. 손으로 바꾸면 따옴표·쉼표 실수가 나기 쉬우니, 변환 도구에 붙여넣어 양방향으로 바꾸는 것이 안전합니다. 엑셀 표를 복사해 붙여넣어도 됩니다(탭 구분 자동 인식).

CSV ↔ JSON 변환붙여넣기만 하면 양방향 즉시 변환 변환하기 →
자주 묻는 질문
Q. CSV와 엑셀 파일(xlsx)은 뭐가 다른가요?

CSV는 값을 쉼표로 구분해 나열한 순수 텍스트 파일이고, xlsx는 서식·수식·여러 시트까지 담는 엑셀 전용 형식입니다. CSV는 메모장으로도 열리고 거의 모든 프로그램이 읽을 수 있어 데이터 교환용으로 쓰이지만, 글꼴·색·수식 같은 정보는 저장되지 않습니다.

Q. CSV를 엑셀에서 열면 한글이 깨지는 이유는 뭔가요?

인코딩 차이 때문입니다. 많은 CSV가 UTF-8로 저장되는데 한국어 엑셀은 기본적으로 EUC-KR(CP949)로 해석해 한글이 깨져 보입니다. 엑셀에서 '데이터 → 텍스트/CSV 가져오기'로 열면서 원본 파일 인코딩을 UTF-8로 지정하거나, 파일을 'UTF-8(BOM)' 형식으로 다시 저장하면 해결됩니다.

Q. CSV를 JSON으로 바꾸면 뭐가 좋은가요?

웹 개발·API에서 표준처럼 쓰이는 형식이 JSON이기 때문입니다. 엑셀로 정리한 표를 웹 서비스나 코드에 넣으려면 JSON 배열로 바꾸는 경우가 많습니다. CSV의 첫 줄(헤더)이 JSON의 키가 되고 각 행이 객체 하나가 됩니다. 변환 도구를 쓰면 복사·붙여넣기만으로 양방향 변환이 됩니다.

함께 보면 좋은 가이드