CSV를 JSON으로 즉시 변환 · 헤더 자동 인식 · 구분자 선택 · 파일 드래그앤드롭 지원
CSV(Comma-Separated Values)는 데이터를 쉼표로 구분하여 행과 열로 나타내는 텍스트 형식입니다. 스프레드시트처럼 표 형태의 데이터를 가장 간단하게 저장하는 방법으로, 엑셀·구글 시트·데이터베이스 내보내기에서 흔히 사용됩니다.
JSON(JavaScript Object Notation)은 키-값 쌍과 배열로 구성된 계층적 데이터 형식입니다. 웹 API 통신, 설정 파일, NoSQL 데이터베이스에서 표준으로 사용됩니다. CSV가 평면적 구조에 적합하다면, JSON은 중첩된 복잡한 구조를 표현할 수 있습니다.
| 항목 | CSV | JSON |
|---|---|---|
| 구조 | 평면적 (행/열) | 계층적 (중첩 가능) |
| 가독성 | 높음 (표 형태) | 보통 (중괄호/대괄호) |
| 파일 크기 | 작음 | 상대적으로 큼 |
| 데이터 타입 | 모두 문자열 | 문자열, 숫자, 불리언, 배열, 객체 |
| 주 용도 | 스프레드시트, DB 내보내기 | API 통신, 설정 파일 |
데이터를 다루는 실무에서 CSV → JSON 변환이 필요한 상황은 생각보다 자주 발생합니다.
JSON.parse()로 바로 사용할 수 있습니다.import csv, json # 기본 변환 with open('data.csv', encoding='utf-8') as f: reader = csv.DictReader(f) data = list(reader) with open('data.json', 'w', encoding='utf-8') as f: json.dump(data, f, ensure_ascii=False, indent=2) # pandas를 사용하는 방법 (더 간단) import pandas as pd df = pd.read_csv('data.csv') df.to_json('data.json', orient='records', force_ascii=False, indent=2)
// Node.js 예시 const fs = require('fs'); function csvToJson(csv) { const [headerLine, ...rows] = csv.trim().split('\n'); const headers = headerLine.split(',').map(h => h.trim()); return rows.map(row => { const values = row.split(','); return Object.fromEntries(headers.map((h, i) => [h, values[i]?.trim()])); }); } const csv = fs.readFileSync('data.csv', 'utf-8'); const json = csvToJson(csv); fs.writeFileSync('data.json', JSON.stringify(json, null, 2)); console.log(`변환 완료: \${json.length}개 행`);
구글 시트는 데이터를 CSV로 쉽게 내보낼 수 있어, 비개발자도 데이터를 관리하고 개발팀에게 넘기는 방식으로 많이 활용됩니다.
주의: 구글 시트에서 한글이 포함된 파일을 내보낼 때 인코딩 문제가 발생할 수 있습니다. 파일을 열기 전에 UTF-8 인코딩으로 저장되었는지 확인하세요. Windows 메모장에서 열 경우 "다른 이름으로 저장 → UTF-8" 옵션을 사용하세요.