같은 데이터, 다른 형식이 필요한 이유
같은 데이터라도 쓰는 사람·프로그램에 따라 필요한 형식이 다릅니다. 엑셀은 표(CSV) 형식을 좋아하고, 웹 API와 개발자는 JSON을 주로 쓰며, 일부 구형 시스템은 여전히 XML을 요구합니다. 형식을 손으로 바꾸다 보면 쉼표나 따옴표 처리에서 실수하기 쉬워, 정해진 규칙대로 변환해주는 도구를 쓰는 게 안전합니다.
형식별 특징
| 형식 | 주로 쓰는 곳 | 특징 |
|---|---|---|
| CSV | 엑셀, 스프레드시트 | 쉼표로 구분된 표. 사람이 읽기 쉽지만 중첩 구조 표현이 어려움 |
| JSON | 웹 API, 프로그래밍 | 중첩된 객체·배열을 자유롭게 표현. 대부분의 프로그래밍 언어에서 기본 지원 |
| XML | 구형 시스템, 일부 공공 API | 태그 기반 구조. 속성(attribute)과 텍스트를 함께 표현할 수 있음 |
| YAML | 설정 파일, DevOps | 들여쓰기로 구조를 표현해 사람이 읽고 쓰기 편함 |
| TSV | 엑셀 붙여넣기 | 탭으로 구분된 표. 값 안에 쉼표가 많은 데이터에 CSV보다 안전 |
CSV → JSON, 헤더 처리가 핵심
CSV ↔ JSON 변환은 CSV의 첫 행을 헤더(각 항목의 키 이름)로 사용합니다. 쉼표나 따옴표가 값 안에 포함된 경우(예: 주소에 쉼표가 들어간 경우)의 이스케이프 처리도 함께 지원하므로, 엑셀에서 그대로 내보낸 CSV를 올려도 대부분 문제없이 변환됩니다. 반대로 JSON을 CSV로 바꿀 때는 배열 안의 객체들이 같은 키 구조를 가지고 있어야 표로 깔끔하게 정리됩니다.
XML로 바꿔야 할 때 주의할 점
JSON ↔ XML 변환에서는 XML의 속성(attribute)이 @속성명 키로, 태그 안에 텍스트와 하위 요소가 섞여 있으면 #text 키로 표현됩니다. XML ↔ CSV 변환은 <rows><row><a>1</a><b>2</b></row>...</rows>처럼 행이 반복되는 단순한 구조를 가정하므로, 중첩이 깊거나 속성 위주로 짜인 XML은 값이 온전히 옮겨지지 않을 수 있습니다. 이런 경우 먼저 JSON으로 바꿔 구조를 확인한 뒤 필요한 부분만 정리하는 방법을 추천합니다.
개발 문서 · 보고서에 쓸 표가 필요할 때
깃허브 README나 노션 문서에 표를 넣어야 한다면 CSV ↔ Markdown 표 변환으로 CSV를 바로 Markdown 표 문법으로 바꿀 수 있습니다. 데이터베이스에 대량으로 데이터를 넣어야 한다면 CSV → SQL INSERT 문 생성으로 첫 행을 컬럼명 삼아 INSERT INTO 구문을 자동으로 만들 수 있고, 빈 값은 NULL로 처리됩니다.
로그·설정 파일 관련 형식
로그 수집 파이프라인에서는 한 줄에 객체 하나씩 담는 NDJSON(JSON Lines) 형식이 자주 쓰이는데, CSV ↔ NDJSON 변환으로 표 형식 데이터와 서로 바꿀 수 있습니다. 설정 파일을 다룬다면 CSV ↔ YAML 변환으로 표를 YAML 레코드 목록으로 만들 수 있습니다.
자주 묻는 질문
변환 결과에 한글이 깨져서 나와요
엑셀에서 CSV를 저장할 때 인코딩을 "CSV UTF-8"로 선택했는지 확인해보세요. 기본 "CSV" 옵션은 시스템 언어에 따라 다른 인코딩(EUC-KR 등)으로 저장돼 한글이 깨질 수 있습니다.
JSON 문법 오류가 어디 있는지 모르겠어요
JSON 예쁘게 보기 기능에 넣어보면 들여쓰기가 되면서 구조가 한눈에 보이고, 문법이 잘못된 경우 오류로 안내해줍니다.