📥 CSV 입력
📂
CSV 파일을 드래그하거나 클릭하여 업로드
.csv, .txt 지원
📤 JSON 출력
여기에 JSON 결과가 표시됩니다...
행 수: 0
열 수: 0
출력 크기: 0

CSV와 JSON의 차이

CSV(Comma-Separated Values)는 데이터를 쉼표로 구분하여 행과 열로 나타내는 텍스트 형식입니다. 스프레드시트처럼 표 형태의 데이터를 가장 간단하게 저장하는 방법으로, 엑셀·구글 시트·데이터베이스 내보내기에서 흔히 사용됩니다.

JSON(JavaScript Object Notation)은 키-값 쌍과 배열로 구성된 계층적 데이터 형식입니다. 웹 API 통신, 설정 파일, NoSQL 데이터베이스에서 표준으로 사용됩니다. CSV가 평면적 구조에 적합하다면, JSON은 중첩된 복잡한 구조를 표현할 수 있습니다.

항목CSVJSON
구조평면적 (행/열)계층적 (중첩 가능)
가독성높음 (표 형태)보통 (중괄호/대괄호)
파일 크기작음상대적으로 큼
데이터 타입모두 문자열문자열, 숫자, 불리언, 배열, 객체
주 용도스프레드시트, DB 내보내기API 통신, 설정 파일

언제 CSV를 JSON으로 변환하는가

데이터를 다루는 실무에서 CSV → JSON 변환이 필요한 상황은 생각보다 자주 발생합니다.

Python으로 CSV → JSON 변환하기

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)

JavaScript로 CSV → JSON 변환하기

// 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 내보내기 → JSON 변환 실전 가이드

구글 시트는 데이터를 CSV로 쉽게 내보낼 수 있어, 비개발자도 데이터를 관리하고 개발팀에게 넘기는 방식으로 많이 활용됩니다.

주의: 구글 시트에서 한글이 포함된 파일을 내보낼 때 인코딩 문제가 발생할 수 있습니다. 파일을 열기 전에 UTF-8 인코딩으로 저장되었는지 확인하세요. Windows 메모장에서 열 경우 "다른 이름으로 저장 → UTF-8" 옵션을 사용하세요.

FAQ

업로드한 파일이 서버로 전송되나요?
아니요. 파일 읽기와 변환 처리 모두 브라우저(JavaScript)에서만 이루어집니다. 어떤 데이터도 서버로 전송되지 않으므로 민감한 데이터가 포함된 CSV도 안심하고 사용할 수 있습니다.
따옴표 안에 쉼표가 있는 CSV는 처리되나요?
네, 본 도구는 RFC 4180 표준에 따라 큰따옴표로 묶인 필드 내의 구분자를 올바르게 처리합니다. 예를 들어 "김철수, 대리"처럼 필드 안에 쉼표가 있어도 하나의 값으로 인식합니다.
처리할 수 있는 파일 크기 제한이 있나요?
파일 크기 제한은 없지만, 매우 큰 파일(수십 MB 이상)은 브라우저 메모리에 따라 처리 속도가 느려질 수 있습니다. 수천 행~수만 행의 CSV는 빠르게 처리됩니다.
JSON의 값 타입이 모두 문자열인데 숫자로 변환할 수 있나요?
CSV 자체가 모든 값을 텍스트로 저장하기 때문에 본 도구는 값을 문자열로 변환합니다. 숫자 타입이 필요하다면 JavaScript에서 변환 후 Number() 함수나 parseFloat()로 처리하거나, Python pandas의 df.infer_objects() 메서드를 사용하면 타입을 자동으로 추론할 수 있습니다.

🛠 다른 도구도 사용해보세요