Skip to content

JSON to CSV 변환기 (JSON to CSV Converter)

브라우저에서 JSON을 CSV로 변환합니다. RFC 4180, Excel-EU, TSV, Pipe 프리셋 지원. 중첩 평탄화 또는 문자열화. 100% 비공개, 업로드 없음.

트래킹 없음 브라우저 실행 무료
프리셋
옵션 · , · auto · LF · header · no BOM · flatten
구분자
헤더 행 출력
인용
줄 끝
UTF-8 BOM
중첩
0 0
CSV 출력
0 행 · 0 열
RFC 4180 준수, Excel-EU 로케일 처리, NDJSON 자동 감지, 큰 정수 정밀도 보존에 대해 검토 완료 — Go Tools Engineering Team · May 8, 2026

CSV란 무엇이며 JSON에서 왜 변환하나요?

CSV(Comma-Separated Values, 쉼표 구분 값)는 컴퓨팅에서 가장 오래되고 가장 널리 지원되는 표 데이터 형식입니다 — 모든 스프레드시트 앱, 모든 데이터베이스, 모든 분석 도구, 대부분의 프로그래밍 언어가 1급 CSV 지원을 제공합니다. 반면 JSON은 API 응답, 설정, 구조화된 데이터 교환을 위한 범용 형식입니다. 두 형식 간 변환은 데이터 엔지니어링에서 가장 일반적인 작업 중 하나입니다. API나 NoSQL 데이터베이스에서 JSON을 받은 다음, 분석을 위해 Excel에 로드하거나, COPY를 통해 Postgres 테이블에 로드하거나, BigQuery / Snowflake 웨어하우스에 로드할 CSV가 필요합니다. 이 도구는 그 변환 경로를 위해 만들어졌으며 대부분의 웹 변환기가 망치는 네 가지 시나리오를 처리합니다.

일반적인 웹 변환기와 비교할 때 이 도구에는 네 가지 중요한 차별점이 있습니다:

**1. RFC 4180 상태 머신 파서.** CSV는 단순해 보이지만 인용 규칙은 미묘합니다. 큰따옴표로 감싼 필드는 쉼표, 내장된 개행, 이스케이프된 큰따옴표(두 번 작성, "")를 포함할 수 있습니다. 단순 쉼표 분할 파서는 실제 데이터에서 깨집니다 — 쉼표가 있는 주소, 여러 줄 텍스트 필드, 따옴표가 포함된 인용 값. 이 도구는 RFC 4180(IETF의 CSV 명세)을 따르는 적절한 상태 머신 파서를 구현하며, 양방향에서 인용된 필드, 내장된 구분자, 내장된 줄 끝, 이스케이프된 따옴표를 올바르게 처리합니다. 출력은 Python의 csv 모듈, PostgreSQL COPY, AWS S3 SELECT, 모든 호환 파서를 통해 왕복 가능합니다.

**2. 단방향 평탄화 / 가역적 문자열화.** 중첩된 JSON은 CSV의 평탄한 표 형태와 근본적으로 호환되지 않으며, 대부분의 변환기는 중첩 객체나 배열을 만나면 데이터를 조용히 손상시킵니다. 이 도구는 명시적인 선택을 제공합니다. 평탄화 모드는 가장 깔끔한 스프레드시트 레이아웃을 위해 점으로 연결된 키(customer.address.city)와 인덱스 키(items.0.sku)를 출력합니다 — Excel에서 읽기 쉽지만 왕복에서는 손실이 있습니다. 문자열화 모드는 배열과 객체를 한 셀 안에 JSON으로 유지합니다 — 덜 깔끔하지만 완벽하게 왕복합니다. 역방향에서 타입 추론과 함께 사용하면 CSV → JSON → CSV가 동일한 데이터를 생성합니다. 목표에 따라 선택하세요. Excel에서의 분석(평탄화) 또는 파이프라인 왕복(문자열화).

**3. 큰 정수 감지.** 자바스크립트의 Number 타입은 IEEE 754 배정밀도를 사용하며 2^53 - 1(9007199254740991)보다 큰 정수를 자동으로 반올림합니다. 이는 실제 JSON에서 문제가 됩니다. Twitter snowflake ID, Discord ID, MongoDB Long 필드, Kubernetes resourceVersion은 모두 안전 범위를 초과하는 64비트 정수입니다. 대부분의 브라우저 기반 JSON 도구는 경고 없이 잘못된 숫자를 자동으로 생성합니다. 이 도구는 파싱 중에 큰 정수 값을 감지하고, 영향받은 필드를 나열하는 경고 배너를 표시하며, 원래 숫자를 CSV 출력에 문자열로 보존하므로 Excel과 Google Sheets가 이를 지수 표기법으로 잘라내지 않습니다.

**4. 100% 브라우저 기반 개인 정보 보호.** JSON 데이터 — 종종 사용자 PII, 내부 데이터베이스 내보내기, 페이로드에 포함된 API 키, 프로덕션 시크릿이 들어있음 — 가 브라우저를 벗어나지 않습니다. 어떤 서버로도 데이터가 전송되지 않고, 로깅도 없으며, 입력을 캡처하는 분석 도구도 없습니다. 브라우저의 네트워크 탭에서 확인할 수 있습니다. 이는 웹 도구에서 민감한 데이터를 처리하는 유일한 안전한 방법입니다. 방향 전환을 클릭하여 역방향을 보거나, YAML이 대상일 때는 동반 도구인 JSON to YAML 변환기를 사용하세요. 변환하기 전에 JSON을 검증해야 한다면 JSON 포맷터를 사용해보세요.

CSV의 강점은 보편성과 단순함입니다. 모든 도구가 읽고, 파서가 작으며, 파일 형식이 모든 텍스트 편집기에서 사람이 읽을 수 있습니다. 약점은 타입 정보의 부재(파서에 알리기 전까지는 모든 것이 문자열), 기본 중첩 구조 지원의 부재, 로케일별 특이 사항(Excel-EU 세미콜론, Windows CRLF 대 Unix LF)입니다. JSON의 강점은 정확히 그 반대입니다. 정확한 타입, 기본 중첩, 어디에서나 동일하게 파싱되는 엄격한 명세. 적합한 도구는 소비자에 따라 다릅니다. 사람이 스프레드시트를 읽음 → CSV, 기계가 API를 소비함 → JSON. 이 변환기는 양방향에서 다리 역할을 합니다.

// Input JSON
[
  { "id": 1, "name": "Alice", "role": "admin" },
  { "id": 2, "name": "Bob", "role": "editor" }
]

// Output CSV (RFC 4180 preset: comma + CRLF + no BOM)
id,name,role
1,Alice,admin
2,Bob,editor

// Same input with Stringify mode + nested data
[
  { "id": 1, "tags": ["a", "b"] }
]

// Becomes
id,tags
1,"[""a"",""b""]"

주요 기능

RFC 4180 준수

IETF CSV 명세를 따르는 엄격한 상태 머신 파서: 인용된 필드, 내장된 구분자, 내장된 CR/LF, 이스케이프된 큰따옴표(두 번 작성)의 올바른 처리. 출력은 Python csv, PostgreSQL COPY, AWS S3 SELECT를 통해 깔끔하게 왕복합니다.

Excel, TSV, Pipe 프리셋

가장 일반적인 네 가지 대상에 대한 원클릭 프리셋: RFC 4180(쉼표 + CRLF), Excel(EU 로케일을 위한 세미콜론 + CRLF + UTF-8 BOM), TSV(Tab + LF), Pipe(| + LF). 다섯 가지 별개 옵션을 수동으로 조정하지 않고 형식 간에 전환합니다.

중첩 데이터 평탄화 또는 문자열화

명시적 중첩 처리: 평탄화는 깔끔한 스프레드시트 분석을 위해 점으로 연결된 키(customer.address.city)를 출력하고, 문자열화는 손실 없는 왕복을 위해 배열과 객체를 한 셀 안에 JSON으로 유지합니다. Excel에서의 분석이 필요한지 파이프라인 왕복이 필요한지에 따라 선택하세요.

큰 정수 감지

2^53보다 큰 정수는 파싱 중에 감지되어 CSV에 문자열로 보존됩니다 — Twitter ID, Discord snowflake, MongoDB Long 필드, K8s resourceVersion이 자바스크립트의 IEEE 754 숫자 타입에 의해 자동으로 반올림되지 않고 정확하게 유지됩니다.

NDJSON 자동 감지

줄 구분 JSON(.ndjson, .jsonl)이 자동 감지됩니다 — 스트리밍 로그, API 이벤트 내보내기, 데이터 레이크 출력을 배열로 수동 감싸지 않고 직접 붙여넣으세요. 각 줄이 CSV의 한 행이 됩니다.

전환을 통한 양방향 변환

방향 전환 버튼 하나로 변환이 그 자리에서 뒤집힙니다. 입력이 CSV가 되고, 출력이 JSON이 되며, 현재 텍스트가 보존됩니다. 파이프라인에 보내기 전에 양방향으로 데이터를 왕복하여 손실 없는 변환을 확인하세요.

예시

REST API 응답

[{"id":1,"name":"Alice Chen","email":"alice@example.com","role":"admin"},{"id":2,"name":"Bob Garcia","email":"bob@example.com","role":"editor"},{"id":3,"name":"Carol Singh","email":"carol@example.com","role":"viewer"},{"id":4,"name":"Dan Müller","email":"dan@example.com","role":"viewer"}]

일반적인 API 출력입니다. 헤더를 켜면 Excel에 바로 사용할 수 있는 깔끔한 표 형식의 CSV가 생성됩니다.

GitHub Issues API

[{"id":1001,"title":"Bug: login redirects to 404","state":"open","labels":["bug","priority:high"],"user":{"login":"alice"}},{"id":1002,"title":"Feature: dark mode toggle","state":"open","labels":["enhancement"],"user":{"login":"bob"}},{"id":1003,"title":"Docs: update README","state":"closed","labels":["docs","good-first-issue"],"user":{"login":"carol"}}]

/repos/{owner}/{repo}/issues에서 가져온 데이터입니다. 평탄화와 헤더를 켜면 user.login이 평탄화된 컬럼으로 노출됩니다.

MongoDB mongoexport

[{"_id":{"$oid":"6634a1b2c3d4e5f600000001"},"email":"alice@example.com","metadata":{"signupDate":"2026-01-15T10:30:00Z","preferences":{"newsletter":true,"theme":"dark"}}},{"_id":{"$oid":"6634a1b2c3d4e5f600000002"},"email":"bob@example.com","metadata":{"signupDate":"2026-02-20T14:15:00Z","preferences":{"newsletter":false,"theme":"light"}}}]

MongoDB 내보내기 형식입니다. CSV → JSON 왕복 변환이 필요하다면 문자열화 모드를 선택하세요.

NDJSON 이벤트 로그

{"event":"signup","user":"alice","ts":1715000000}
{"event":"login","user":"alice","ts":1715000060}
{"event":"checkout","user":"alice","ts":1715000300}

줄 구분 JSON(.ndjson/.jsonl)은 자동 감지됩니다 — 파일 내용을 그대로 붙여넣으세요.

중첩된 전자상거래 주문

[{"id":"ord-001","customer":{"name":"Alice Chen","email":"alice@example.com","address":{"city":"Seattle","country":"US"}},"items":[{"sku":"SKU-100","qty":2},{"sku":"SKU-205","qty":1}]},{"id":"ord-002","customer":{"name":"Bob Garcia","email":"bob@example.com","address":{"city":"Madrid","country":"ES"}},"items":[{"sku":"SKU-100","qty":1}]}]

평탄화 모드는 점으로 연결된 키(customer.address.city, items.0.sku)를 출력합니다. 배열/객체를 한 셀에 JSON으로 유지하려면 문자열화로 전환하세요.

Postman 테스트 결과

[{"name":"GET /users returns 200","status":"pass","duration":142},{"name":"POST /users creates record","status":"pass","duration":287},{"name":"GET /users/999 returns 404","status":"fail","duration":98,"error":"Expected 404, got 500"},{"name":"DELETE /users/1 returns 204","status":"pass","duration":156}]

Postman/Newman 테스트 내보내기입니다. 형식이 다른 행(일부에는 error가 포함)은 빈 셀로 채워지며 스키마 노트 경고가 표시됩니다.

사용 방법

  1. 1

    JSON 붙여넣기

    위 입력 필드에 JSON을 입력하거나 붙여넣으세요. 도구는 객체 배열, 단일 객체, NDJSON(줄 구분 JSON)을 받아들이며 자동 감지합니다. '예시 불러오기'를 클릭하여 REST API 응답, MongoDB 내보내기, NDJSON 이벤트 로그 같은 샘플을 사용해 볼 수도 있습니다.

  2. 2

    프리셋 선택(또는 옵션 조정)

    RFC 4180(기본값), Excel(EU 세미콜론 + BOM), TSV(Tab) 또는 Pipe를 클릭하여 한 번에 대상 형식을 설정하세요. 세밀한 제어를 위해 옵션 패널을 여세요: 구분자, 헤더, 인용(자동/항상), 줄 끝(LF/CRLF), BOM, 중첩(평탄화/문자열화).

  3. 3

    CSV 복사 또는 다운로드

    복사를 클릭하여 CSV를 클립보드에 저장하거나 다운로드를 클릭하여 Excel, Google Sheets, PostgreSQL COPY, 또는 모든 데이터 파이프라인에서 바로 사용할 수 있는 .csv(TSV 프리셋의 경우 .tsv) 파일로 저장하세요. 왕복 변환을 위해 방향 전환을 클릭하면 그 자리에서 CSV를 다시 JSON으로 변환합니다.

일반적인 변환 함정

최상위 값이 원시 타입

CSV는 근본적으로 표 형식입니다 — 필드의 행. 단일 숫자, 문자열 또는 불리언은 투영할 행/열 구조가 없습니다. 최상위 JSON 값은 객체(한 행 표) 또는 배열(다중 행 표)이어야 합니다. 먼저 원시 값을 객체나 배열로 감싸세요.

✗ 오류
42
✓ 정상
[{"value": 42}]

형식이 다른 배열(키가 다른 행)

JSON 배열의 행에 다른 키가 있을 때(일부에는 error 필드가 있고 일부에는 없음), 도구는 모든 행에 걸쳐 모든 키를 합치고 누락된 셀을 빈 값으로 채웁니다. 컬럼이 병합되었음을 알 수 있도록 스키마 노트 경고가 나타납니다. 일반적으로 괜찮지만, 다운스트림 도구가 엄격한 스키마를 기대한다면 출력을 확인하세요.

✗ 오류
[
  {"name": "GET /users", "status": "pass"},
  {"name": "GET /users/999", "status": "fail", "error": "500"}
]
✓ 정상
// Output CSV (note empty cell in row 1)
name,status,error
GET /users,pass,
GET /users/999,fail,500

Excel이 큰 정수를 자르는 문제

Twitter snowflake ID, Discord ID, 기타 64비트 정수는 자바스크립트의 안전 범위(2^53 - 1)를 초과하며 JSON.parse()가 읽을 때 정밀도가 손실됩니다. CSV가 숫자를 보존하더라도 Excel은 기본적으로 이를 지수 표기법으로 표시합니다. 해결 방법은 두 가지입니다. 변환 전에 JSON에 ID를 문자열로 저장하고, BOM을 활성화(또는 Excel 프리셋 사용)하여 Excel이 셀을 텍스트로 보존하도록 하세요.

✗ 오류
{"id": 9007199254740993}
// JavaScript reads as 9007199254740992 (precision lost)
✓ 정상
{"id": "9007199254740993"}
// CSV preserves the string; Excel displays exactly

내장된 쉼표가 인용되지 않음

naive join(',')으로 CSV를 수동으로 만들면 쉼표를 포함하는 모든 필드(Smith, Jr. 또는 1,234.56)가 컬럼 경계를 깨뜨립니다 — 파서는 한 컬럼이어야 할 곳에 추가 컬럼이 있다고 봅니다. 이 도구의 자동 인용 모드는 RFC 4180을 따르며 구분자, 큰따옴표, CR 또는 LF를 포함하는 모든 필드를 큰따옴표로 자동으로 감쌉니다.

✗ 오류
name,role
Smith, Jr.,admin
// Parser reads 3 columns: "Smith", " Jr.", "admin"
✓ 정상
name,role
"Smith, Jr.",admin
// Parser reads 2 columns: "Smith, Jr.", "admin"

Excel-EU 파일이 쉼표 CSV로 읽히지 않음

유럽의 Excel 로케일(독일, 프랑스, 스페인, 이탈리아 등)은 쉼표를 소수 구분자로 예약하고 세미콜론을 필드 구분자로 사용합니다. 표준 쉼표 CSV는 모든 행이 A열에 모인 채로 열립니다. 해결 방법은 Excel 프리셋입니다: ; + CRLF + UTF-8 BOM으로 전환하여 Excel이 모든 로케일에서 파일을 올바르게 파싱합니다.

✗ 오류
id,name,price
1,Alice,1,234.56
// Excel-EU mis-parses 1,234.56 as two columns
✓ 정상
// Excel preset output: ; + CRLF + BOM
id;name;price
1;Alice;1234,56
// Excel-EU reads cleanly with comma decimal

NDJSON이 감지되지 않음(입력 형태)

NDJSON 자동 감지는 앞이나 뒤의 배열 대괄호 없이 줄당 하나의 유효한 JSON 값을 요구합니다. 배열의 JSON 배열을 붙여넣거나 파일에 앞 [와 뒤 ]가 있다면 도구는 이를 NDJSON이 아닌 단일 JSON 값으로 처리합니다. 감싸는 대괄호를 제거하고 각 줄이 자체 포함된 JSON 객체인지 확인하세요.

✗ 오류
[
  {"event": "signup"},
  {"event": "login"}
]
// Detected as a regular JSON array (works, but not NDJSON path)
✓ 정상
{"event": "signup"}
{"event": "login"}
// Each line is one JSON value — auto-detected as NDJSON

주요 사용 사례

API 응답을 스프레드시트로
REST API 응답(사용자/주문/이벤트 객체 배열)을 붙여넣어 Excel, Google Sheets 또는 Numbers에 바로 사용할 수 있는 깔끔한 표 형식의 CSV를 받으세요. 가장 일반적인 사용 사례입니다 — 분석가와 PM은 스프레드시트 형태의 데이터가 필요하고, 엔지니어는 백엔드에서 JSON을 보냅니다.
MongoDB 내보내기를 데이터 웨어하우스로
mongoexport JSON 출력($oid 래퍼와 중첩된 metadata 문서 포함)을 BigQuery, Snowflake 또는 Redshift에 로드하기 위한 CSV로 변환합니다. 다운스트림 도구가 셀 내 JSON을 지원할 때 문자열화 모드는 중첩 형태를 손실 없이 보존합니다.
GitHub Issues 분류
/repos/{owner}/{repo}/issues에서 이슈를 가져와 JSON을 붙여넣고 id, title, state, labels, user.login이 컬럼인 평탄한 CSV를 받으세요. 스프린트 계획 중에 필터링, 정렬, 할당하기 위해 Sheets에 넣으세요.
NDJSON 이벤트 로그 검토
Cloud Logging, Datadog, Vector 또는 자체 파이프라인의 스트리밍 로그는 종종 NDJSON(.ndjson, .jsonl)으로 도착합니다. 파일 내용을 직접 붙여넣으세요 — 자동 감지됩니다 — 그리고 실제 ETL 파이프라인을 구축하지 않고도 임시 분석을 위한 CSV를 받으세요.
전자상거래 주문 추출
중첩된 주문 JSON(customer.address.city, items 배열)을 재무, 이행 또는 사기 검토를 위한 평탄한 CSV로 변환합니다. 평탄화 모드는 리프 필드당 한 컬럼을 생성하여 임시 보고를 위해 Excel에 로드할 준비를 합니다.
Postman/Newman 테스트 보고서
Postman 테스트 내보내기에는 형식이 다른 행(일부에 선택적 error 필드 포함)이 포함됩니다. JSON을 붙여넣어 모든 키가 합쳐지고 누락된 셀이 채워진 CSV를 받으세요 — Sheets에서 비엔지니어와 실패한 테스트 보고서를 공유하기에 완벽합니다.

기술 세부 정보

RFC 4180 상태 머신 파서
양방향 모두 RFC 4180을 따르는 적절한 유한 상태 머신 파서를 사용합니다. 상태에는 UnquotedField, QuotedField, AfterQuote, RowEnd, EndOfInput이 포함됩니다. 파서는 구분자를 포함하는 인용된 필드, 인용된 필드 안에 내장된 CR/LF, 이스케이프된 큰따옴표(두 번 작성, ""), 후행 개행을 올바르게 처리합니다. 이는 Python의 csv 모듈, PostgreSQL COPY, AWS S3 SELECT, 모든 호환 파서를 통해 손실 없이 왕복하는 출력을 생성합니다.
큰 정수 감지 알고리즘
JSON.parse()(IEEE 754를 통해 큰 정수를 자동으로 반올림)를 통해 JSON을 전달하기 전에, 도구는 안전 범위(-2^53+1 ~ 2^53-1) 밖의 정수 리터럴을 찾기 위해 원본 JSON 텍스트에 대한 정규식 스캔을 실행합니다. 감지되면 영향받은 필드 경로가 기록되고 출력 아래에 큰 정수 경고 배너가 나타납니다. 그런 다음 CSV 작성기는 이러한 값을 문자열로 보존하여 Excel, Google Sheets, 모든 텍스트 인식 다운스트림 소비자를 통해 정확한 정밀도를 보장합니다.
Excel을 위한 BOM과 UTF-8 인코딩
모든 입력과 출력은 UTF-8입니다. 선택적 UTF-8 BOM(0xEF 0xBB 0xBF)은 BOM 토글이 켜져 있거나 Excel 프리셋이 선택되었을 때 출력 앞에 추가됩니다. Windows의 Excel은 BOM을 사용하여 UTF-8 인코딩을 감지합니다 — 없으면 Excel은 시스템 로케일(미국에서는 Windows-1252, 러시아에서는 Windows-1251 등)로 폴백하여 비ASCII 문자를 망칩니다. 현대 파서(Python csv, Pandas, jq, PostgreSQL)는 일반적으로 BOM이 필요하지 않으며 첫 셀의 시작 부분에 BOM을 떠다니는 문자로 포함시킬 수 있으므로, Excel 외 파이프라인에서는 BOM을 끄세요.

모범 사례

옵션을 조정하기 전에 프리셋 선택
RFC 4180, Excel, TSV, Pipe 프리셋은 한 번에 다섯 가지 옵션(구분자, 줄 끝, 인용 모드, BOM, 헤더)을 설정합니다. 가장 가까운 프리셋을 먼저 선택한 다음 필요한 경우에만 개별 옵션을 조정하세요 — 이렇게 하면 한 옵션을 뒤집고 다른 옵션을 잊어버리는 일반적인 실수(예: 세미콜론으로 전환했지만 LF를 그대로 두면 Windows의 Excel-EU가 여전히 잘못 파싱)를 피할 수 있습니다.
분석에는 평탄화, 왕복에는 문자열화
대상이 Excel, Sheets 또는 일회성 분석일 때는 평탄화를 사용하세요 — 점으로 연결된 키가 가장 깔끔한 스프레드시트 레이아웃을 생성합니다. 데이터 손실 없이 CSV → JSON → CSV 왕복이 필요할 때는 문자열화를 사용하세요 — 배열과 객체가 한 셀 안에 JSON으로 살아남습니다. 내보내기 중간에 전환하고 다시 실행하는 것은 비용이 적게 듭니다. 소비자에 따라 선택하세요.
BOM은 Excel에만 사용
UTF-8 BOM은 Windows의 Excel이 인코딩을 올바르게 감지하기 위해 필요합니다. 다른 모든 파서(Python csv, Pandas, jq, PostgreSQL COPY, BigQuery)는 BOM을 무시하거나 첫 셀의 시작 부분에 떠다니는 문자로 포함시켜 컬럼 이름을 망칩니다. 파이프라인에서는 BOM을 끄고 대상이 Excel일 때만 켜세요(또는 Excel 프리셋 사용).
JSON에서 큰 ID는 문자열로 유지
Twitter snowflake ID, Discord ID, MongoDB Long 필드, K8s resourceVersion은 자바스크립트의 안전 범위(2^53 - 1)를 초과하는 64비트 정수입니다. 변환 전에 JSON 문자열로 저장하세요("id": "9007199254740993") — CSV가 숫자를 정확히 보존하는 반면, 숫자 리터럴은 JSON.parse()에 의해 자동으로 반올림됩니다.
로드하기 전 행 형식 검증
형식이 다른 행(일부 객체에 다른 객체에 없는 키가 있음)은 출력에서 빈 셀과 병합되며 도구는 스키마 노트 경고를 표시합니다. 엄격한 스키마 소비자(BigQuery, Redshift COPY)의 경우 내보내기 전에 모든 행이 동일한 키를 공유하는지 검증하거나, 파이프라인에서 누락된 값을 명시적으로 처리하세요. 먼저 입력 형태를 확인하려면 JSON 포맷터를 사용하세요.

자주 묻는 질문

이 도구는 어떤 일을 하나요?
브라우저에서 JSON을 CSV로 직접 변환하며 양방향 지원도 제공합니다. 방향 전환을 클릭하면 같은 패널에서 CSV를 다시 JSON으로 변환할 수 있습니다. 입력 영역에 JSON을 붙여넣으면 도구가 즉시 CSV 출력을 생성합니다 — 업로드, 가입, 데이터 유출이 전혀 없습니다. 출력은 선택한 프리셋(RFC 4180, Excel, TSV 또는 Pipe)을 따르므로 Excel, Google Sheets, 데이터베이스 COPY 명령, 또는 모든 데이터 파이프라인에 바로 붙여넣을 수 있습니다. 평탄한 객체 배열, 중첩 구조(평탄화 또는 문자열화 모드 사용), NDJSON 줄 구분 입력, 그리고 스프레드시트 앱에서 정밀도가 손실될 큰 정수 값을 모두 처리합니다.
내 데이터가 어딘가로 업로드되나요?
아니요. 모든 변환은 자바스크립트를 사용하여 브라우저에서 100% 클라이언트 측에서 실행됩니다. JSON 데이터는 전송되지 않고, 어떤 서버에도 저장되지 않으며, 기록되거나 분석되지 않습니다. 따라서 PII가 포함된 API 응답, 내부 데이터베이스 내보내기, MongoDB 덤프, 기타 민감한 데이터에 안전하게 사용할 수 있습니다. 브라우저의 네트워크 탭에서 확인할 수 있습니다 — JSON을 붙여넣어도 네트워크 요청이 전혀 발생하지 않습니다. 입력 데이터에 쿠키를 사용하지 않으며, 붙여넣은 내용을 캡처할 수 있는 타사 분석 도구도 사용하지 않습니다.
평탄화 모드와 문자열화 모드의 차이는 무엇인가요?
평탄화 모드는 중첩 객체에 대해 점으로 연결된 키를, 중첩 배열에 대해 인덱스 키를 출력합니다(customer.address.city, items.0.sku). 그래서 모든 리프 값이 자체 컬럼에 위치합니다. Excel이나 BigQuery에서 분석하기에 가장 가독성이 좋은 레이아웃이지만, 점 키 구조를 완벽하게 재구성할 수 없기 때문에 왕복 변환에서는 손실이 있습니다. 문자열화 모드는 배열과 객체를 한 셀 안에 JSON으로 유지합니다({"name":"Alice","city":"Seattle"}) — 스프레드시트에서 보기에는 덜 깔끔하지만 완벽하게 왕복 변환됩니다. CSV → JSON → CSV가 동일한 데이터를 생성합니다. 분석에는 평탄화를, 왕복 안전성에는 문자열화를 선택하세요. 변환 전에 선택해야 하며, 세션 중간에 전환하면 현재 입력에 대해 변환이 다시 실행됩니다.
Twitter ID나 Snowflake 키 같은 큰 정수는 어떻게 처리하나요?
큰 정수(2^53 - 1, 즉 9007199254740991보다 큼)는 JSON 파싱 중에 감지되며 출력 아래에 경고 배너가 표시됩니다. 도구는 원래 숫자를 CSV에 문자열로 보존하므로 Excel과 Google Sheets가 이를 지수 표기법으로 잘라내지 않습니다. 자바스크립트의 IEEE 754 배정밀도 부동소수점이 2^53보다 큰 정수를 자동으로 반올림하기 때문에 이것이 중요합니다 — 예를 들어 9007199254740993은 9007199254740992가 됩니다. 업스트림에서 JSON을 생성할 때 정밀도를 유지하려면 이러한 ID를 문자열로 저장하세요("id": "9007199254740993"). 도구는 정밀도 손실 없이 CSV에 문자열로 유지합니다.
Excel에서 CSV가 한 컬럼에 표시되는 이유는 무엇인가요?
유럽의 Excel 로케일(독일, 프랑스, 스페인, 이탈리아 등)은 쉼표를 소수 구분자로 사용하기 때문에 세미콜론 구분자를 기대합니다. Excel-EU에서 쉼표 구분 CSV를 열면 모든 행이 A열에 모이게 됩니다. 이 도구의 Excel 프리셋을 사용하세요 — 구분자를 ;로, 줄 끝을 CRLF로 전환하고 UTF-8 BOM을 추가하여 Excel이 인코딩과 컬럼 경계를 올바르게 감지하도록 합니다. 지역 간에 CSV를 공유하는 경우 더 안전한 옵션은 TSV(Tab 구분자)이며, Excel은 모든 로케일에서 일관되게 처리합니다.
NDJSON이나 JSON Lines를 지원하나요?
그렇습니다. NDJSON(.ndjson)과 JSONL(.jsonl)은 각 줄이 하나의 유효한 JSON 값인 줄 구분 형식입니다. 파일 내용을 입력 영역에 직접 붙여넣으세요 — 도구는 개행으로 구분된 여러 최상위 JSON 값을 찾아 형식을 자동 감지하고 각 줄을 출력 CSV의 한 행으로 처리합니다. 이는 스트리밍 로그, API 이벤트 내보내기, 많은 데이터 레이크 파이프라인의 자연스러운 형식입니다. NDJSON은 감싸는 배열을 요구하지 않으므로 줄을 하나의 JSON 문서로 수동 병합할 필요가 없습니다.
RFC 4180이란 무엇인가요?
RFC 4180은 2005년에 사실상의 CSV 형식을 명문화한 IETF 명세입니다. 구분자(일반적으로 쉼표), 줄 끝(CRLF), 선택적 헤더 행, 그리고 가장 중요한 인용 규칙을 정의합니다. 구분자, 큰따옴표, CR 또는 LF를 포함하는 필드는 큰따옴표로 감싸야 하며, 내장된 큰따옴표는 두 번 작성하여("") 이스케이프합니다. 이 도구의 RFC 4180 프리셋은 명세를 엄격히 준수하는 출력을 생성합니다: 쉼표 구분자, CRLF 줄 끝, BOM 없음, 큰따옴표 자동 이스케이프. Python(csv 모듈), PostgreSQL COPY, AWS S3 SELECT, 대부분의 데이터 파이프라인 파서와의 상호 운용성에서 가장 안전한 선택입니다.
어떤 셀은 따옴표로 감싸지고 어떤 셀은 그렇지 않은 이유는 무엇인가요?
기본 인용 모드는 자동이며 RFC 4180을 따릅니다. 셀이 구분자, 큰따옴표, 캐리지 리턴 또는 개행을 포함할 때만 큰따옴표로 감쌉니다. 이를 통해 가장 깔끔하고 사람이 읽기 쉬운 CSV를 생성합니다 — Alice나 42 같은 값은 따옴표 없이 유지되고, Smith, Jr.이나 Line 1\nLine 2 같은 값은 감싸집니다. 다운스트림 도구가 따옴표 없는 값을 잘못 해석하는 버그가 있는 CSV 파서를 가지고 있거나, 팀의 파이프라인이 일관성을 위해 모든 필드가 인용되기를 기대하는 경우 항상 인용 모드로 전환하여 단순한 셀까지 모든 셀을 감싸세요.
데이터 손실 없이 CSV → JSON → CSV를 왕복할 수 있나요?
그렇습니다. 입력이 평탄(중첩 객체나 배열 없음)할 때 가능합니다. 중첩 데이터의 경우 문자열화 모드를 사용해야 합니다 — 배열과 객체를 한 셀 안에 JSON으로 유지하므로 방향 전환과 타입 추론으로 역변환할 때 원래 구조로 손실 없이 왕복합니다. 평탄화 모드는 단방향입니다. 점으로 연결된 키(customer.address.city)를 출력하지만, 파서가 점 키와 중첩 경로를 구분할 수 없기 때문에 완벽하게 재구성할 수 없습니다. 도구는 중첩 구조를 감지하고 왕복 안전성이 위험할 때 스키마 노트 경고를 표시하므로, 내보내기 전에 모드를 전환할 수 있습니다.
TSV 파일은 어떻게 받을 수 있나요?
TSV 프리셋 칩을 클릭하세요. 구분자가 Tab으로, 줄 끝이 LF로 전환되고 BOM이 비활성화됩니다 — Unix 도구(cut, awk), 데이터 웨어하우스(BigQuery, Snowflake), 모호함이 없는 대부분의 Excel 로케일에서 사용하는 탭 구분 값의 표준 형식입니다. TSV는 일반적으로 텍스트 필드 안에 Tab이 나타날 가능성이 낮아 대부분의 인용 엣지 케이스를 제거하기 때문에, 로케일 간 공유에서 쉼표 CSV보다 안전합니다. 출력을 .tsv 또는 .tab 확장자로 저장하면 대부분의 도구가 자동으로 인식합니다.
매우 큰 입력은 어떻게 처리되나요?
100,000자 또는 2,000행 이상에서는 실시간 변환이 자동으로 수동 모드로 전환됩니다. 정보 배너에 변환 버튼이 나타나며 클릭할 때만 변환이 실행됩니다. 이렇게 하면 무거운 직렬화 중에 키 입력마다 브라우저의 메인 스레드가 블로킹되는 것을 방지합니다. 5MB 또는 50,000행을 초과하는 출력의 경우 도구는 화면 미리보기를 첫 500행으로 잘라내고 N행 중 첫 500행 표시 배너를 보여줍니다 — 하지만 다운로드 버튼은 여전히 모든 행이 포함된 전체 파일을 생성합니다. 입력의 절대 상한은 10MB이며, 그 이상이면 도구가 오류를 표시하고 입력을 줄이도록 요청합니다.
어떤 인코딩이 지원되나요?
입력과 출력 모두 UTF-8입니다. UTF-8은 이모지, CJK 한자, 아랍어, 히브리어, 결합 부호를 포함한 모든 현대 문자 집합을 다룹니다. 유일한 인코딩 뉘앙스는 선택적 UTF-8 BOM(Byte Order Mark)입니다. Windows의 Excel은 전통적으로 UTF-8을 올바르게 감지하기 위해 BOM이 필요합니다. 그렇지 않으면 시스템 로케일로 폴백하여 비ASCII 문자가 깨집니다. CSV를 Excel에서 열 계획이라면 BOM을 켜거나(또는 BOM이 기본으로 활성화된 Excel 프리셋 사용) 사용하세요. 그 외의 경우에는 BOM을 끄세요 — 대부분의 현대 파서(PostgreSQL, Pandas, jq, Python csv)는 BOM에서 막히거나 첫 셀의 시작 부분에 BOM을 떠다니는 문자로 포함시킵니다.

Base64 디코더 · 인코더 (Base64 Decoder & Encoder)

인코딩 & 포매팅

Base64를 온라인에서 무료로 인코딩하고 디코딩합니다. UTF-8과 이모지를 완벽 지원하는 실시간 변환으로, 100% 브라우저에서 처리되어 회원 가입이 필요 없습니다.

CSV to JSON 변환기 (CSV to JSON Converter)

인코딩 & 포매팅

브라우저에서 CSV를 JSON으로 변환합니다. RFC 4180, 타입 추론, 헤더 행, 큰 정수 안전 처리. 100% 비공개, 업로드 없음.

JSON Diff 비교

인코딩 & 포매팅

두 JSON 파일을 브라우저에서 즉시 Diff 비교하세요. 나란히 보기 하이라이팅, RFC 6902 JSON Patch 출력, 타임스탬프·ID 같은 노이즈 필드 무시. 비공개, 업로드 없음.

JSON 포맷터 (JSON Formatter)

인코딩 & 포매팅

브라우저에서 JSON을 즉시 포매팅하고 유효성 검사를 수행합니다. 온라인 도구로 구문 검사, 오류 감지, 최소화, 복사를 지원하며 데이터는 서버로 전송되지 않습니다.

JSON Schema 검증기

인코딩 & 포매팅

JSON Schema 온라인 검증기. Draft 2020-12, 2019-09, Draft-07 지원에 JSON Pointer 경로 단위 오류 메시지. 100% 브라우저 처리, 업로드 없음, 무료.

JSON to YAML 변환기 (JSON to YAML Converter)

인코딩 & 포매팅

JSON을 붙여넣으면 즉시 YAML로 변환됩니다. 브라우저에서 실시간 변환, K8s/Compose 지원, 2/4칸 들여쓰기, Norway 안전 자동 인용, 100% 개인 정보 보호.