각 형식에는 이유가 있다
데이터는 다양한 형태로 존재합니다. JSON은 웹 API의 표준이고, YAML은 Docker, Kubernetes, CI/CD 파이프라인의 설정 파일에 쓰입니다. CSV는 스프레드시트와 표 형태 데이터의 만국 공통어이고, XML은 엔터프라이즈 시스템, RSS 피드, SVG 같은 문서 표준의 기반입니다. 이들 사이를 자유롭게 변환하는 건 개발자, 분석가, 시스템 관리자의 필수 기술입니다.
JSON: API의 기본 언어
JSON(JavaScript Object Notation)은 가볍고 사람이 읽기 쉬우며, 거의 모든 프로그래밍 언어에서 기본 지원됩니다. 중첩된 키-값 구조 덕분에 복잡한 계층형 데이터도 잘 표현합니다. REST API, 브라우저 스토리지, NoSQL 데이터베이스를 다룬다면 JSON이 기본 선택지입니다.
한 가지 단점이 있습니다. JSON은 주석을 지원하지 않습니다. 설정 파일에 설명을 달아야 한다면 YAML이나 JSON5가 더 낫습니다.
YAML: 읽기 쉬운 설정 파일
YAML은 중괄호 대신 들여쓰기로 구조를 표현해서 설정 파일에서 시각적으로 훨씬 깔끔합니다. 주석, 여러 줄 문자열, 값을 재사용하는 앵커 기능도 지원합니다. Kubernetes 매니페스트, GitHub Actions 워크플로, Ansible 플레이북이 모두 YAML 기반입니다.
JSON을 YAML로 변환할 때 주의할 점이 있습니다. 들여쓰기 오류 — 공백 하나 차이로 파일 전체가 깨질 수 있습니다. 또한 YAML은 일부 값을 예상과 다르게 해석합니다. "no"는 불리언 false가 되고, "3.0"은 실수로 바뀔 수 있습니다. 문자열을 명시적으로 따옴표로 감싸면 이런 문제를 피할 수 있습니다.
CSV: 단순하고 보편적
CSV(Comma-Separated Values)는 평면적 표 형태 데이터의 기본 형식입니다. 모든 스프레드시트 앱, 데이터베이스 도구, 데이터 분석 라이브러리가 CSV를 가져오고 내보낼 수 있습니다. 태그나 중괄호 같은 구조적 오버헤드가 없어서 극도로 가볍기도 합니다.
CSV로 변환할 때 가장 큰 함정은 계층 구조가 사라진다는 점입니다. JSON과 XML은 중첩을 지원하지만 CSV는 그렇지 않습니다. 중첩 데이터를 CSV로 평탄화할 때는 배열과 중첩 객체를 어떻게 처리할지 결정해야 합니다. 키에 점 표기법(user.address.city)을 쓰거나, 여러 CSV 파일로 분리하는 방법이 일반적입니다.
XML: 엔터프라이즈의 주력
XML은 여는 태그와 닫는 태그로 데이터를 구조화합니다. JSON보다 장황하지만, 스키마(XSD), 네임스페이스, 속성(attribute) 같은 기능 덕분에 복잡하고 엄격한 검증이 필요한 데이터 구조에 강합니다.
JSON과 XML을 서로 변환할 때 기억할 점이 있습니다. XML의 속성(attribute)과 요소(element) 구분은 JSON에 직접적인 대응 개념이 없습니다. 대부분의 변환 도구는 JSON에서 "@속성명" 같은 규칙으로 매핑하지만, 대상 시스템의 기대 형식과 맞는지 반드시 확인하세요.
실전 변환 팁
**변환 전에 검증부터.** 잘못된 입력은 엉뚱한 출력을 만듭니다. JSON은 린터로, XML은 문법 검사기로 먼저 확인하세요.
**데이터 타입을 의식적으로 유지하세요.** CSV는 모든 걸 문자열로 취급합니다. JSON을 CSV로 변환했다가 다시 JSON으로 되돌리면 숫자, 불리언, null의 타입 정보가 사라질 수 있습니다.
**인코딩을 통일하세요.** UTF-8이 가장 안전합니다. Excel에서 내보낸 CSV는 Windows-1252 인코딩인 경우가 많아, 한글이나 특수 문자가 깨질 수 있습니다.
**믿을 수 있는 도구를 쓰세요.** 수동 변환은 번거롭고 실수가 잦습니다. ToolPop의 데이터 형식 변환기는 JSON, YAML, CSV, XML 변환을 즉시 처리하며, 구조와 포맷을 보존해 줍니다.