JSON ↔ CSV · YAML 변환기는 개발·데이터 작업에서 가장 자주 오가는 세 가지 데이터 포맷을 브라우저 안에서 바로 상호 변환해 주는 도구입니다. API 응답으로 받은 JSON을 스프레드시트에서 열 수 있는 CSV로 바꾸거나, 엑셀에서 내보낸 CSV를 코드에서 다루기 좋은 JSON 배열로 만들거나, 설정 파일에 쓰기 좋은 YAML로 변환하는 일을 붙여넣기 한 번으로 끝낼 수 있습니다.
이 도구가 지원하는 변환은 JSON → CSV, CSV → JSON, JSON → YAML, YAML → JSON 네 가지입니다. 상단에서 원하는 방향을 고르고 입력창에 데이터를 붙여넣은 뒤 변환 버튼을 누르면 결과가 아래에 나타납니다. 모든 처리는 사용자의 브라우저에서만 이루어지며 입력한 데이터가 서버로 전송되지 않으므로, 사내 데이터나 민감한 값이 섞인 데이터도 외부 유출 걱정 없이 변환할 수 있습니다.
아래에서는 각 변환 방향이 실제로 어떻게 동작하는지, CSV 따옴표 이스케이프 규칙, 세 포맷의 특징과 언제 무엇을 쓰면 좋은지, 그리고 중첩 객체처럼 변환 시 주의할 점까지 정리했습니다. 포맷의 개념을 이해하면 변환 결과가 왜 그렇게 나오는지 예측할 수 있어 데이터를 다루기가 훨씬 수월해집니다.
사용 방법
- 상단 버튼에서 변환 방향을 선택합니다. JSON → CSV, CSV → JSON, JSON → YAML, YAML → JSON 중 하나를 고릅니다.
- 입력창에 변환할 데이터를 붙여넣습니다. JSON은 객체 배열(예: [{...}, {...}]) 형태가 표 변환에 가장 적합하며, 단일 객체도 한 행으로 처리됩니다.
- 변환 버튼을 누르면 결과가 아래 출력창에 표시됩니다. 형식이 잘못되면 파싱 오류 메시지가 나오므로, 괄호·따옴표·들여쓰기를 확인하고 다시 시도합니다.
- 출력창의 결과를 선택해 복사한 뒤 스프레드시트, 코드 편집기, 설정 파일 등 원하는 곳에 붙여넣어 사용합니다.
네 가지 변환 방향
이 도구는 아래 네 방향의 변환만 제공합니다. 각 방향이 입력을 어떻게 해석하고 무엇을 출력하는지 알아 두면 결과를 정확히 예측할 수 있습니다.
| 방향 | 입력 | 출력 |
|---|---|---|
| JSON → CSV | 객체 배열 또는 단일 객체 | 첫 줄에 열 이름, 이후 값 행으로 구성된 CSV |
| CSV → JSON | 첫 줄이 헤더인 CSV | 헤더를 키로 쓰는 객체 배열(2칸 들여쓴 JSON) |
| JSON → YAML | 임의의 JSON 값 | 들여쓰기 기반 YAML 텍스트 |
| YAML → JSON | YAML 텍스트 | 2칸 들여쓴 JSON 텍스트 |
모든 변환은 브라우저에서만 처리됩니다
입력한 데이터는 어떤 서버로도 전송되지 않고 사용자의 브라우저 안에서만 변환됩니다. 네트워크가 끊긴 상태에서도 동작하며, 민감한 데이터를 붙여넣어도 외부로 나가지 않습니다.
JSON → CSV 변환 규칙
JSON을 CSV로 바꿀 때는 입력이 객체 배열이라고 가정합니다. 배열이 아니면 단일 객체를 한 행으로 처리합니다. 열(헤더)은 배열에 들어 있는 모든 객체의 키를 모아 만든 합집합이므로, 어떤 객체에만 있는 키도 빠짐없이 열로 포함되고, 그 키가 없는 행의 칸은 비어 있게 됩니다.
- 헤더 순서는 처음 등장한 키 순서를 따르며, 서로 다른 객체에 있는 키는 모두 열로 합쳐집니다.
- 값에 쉼표(,), 큰따옴표("), 줄바꿈이 들어 있으면 해당 칸 전체를 큰따옴표로 감쌉니다.
- 값 안의 큰따옴표는 두 개("")로 바꿔 이스케이프합니다. CSV 표준(RFC 4180) 방식입니다.
- 값이 null이거나 키가 없으면 빈 칸으로 출력됩니다.
중첩 객체·배열은 평탄화되지 않습니다
값이 다시 객체나 배열인 경우 문자열로 변환되어 [object Object] 같은 형태로 나올 수 있습니다. CSV는 본질적으로 표(2차원) 포맷이므로, 깔끔한 표를 얻으려면 각 항목이 문자열·숫자 같은 단순 값으로 이루어진 평평한(flat) 객체 배열을 입력하는 것이 좋습니다.
CSV → JSON 변환 규칙
CSV를 JSON으로 바꿀 때는 첫 줄을 헤더로 보고, 그 아래 각 줄을 헤더 키에 대응시켜 객체를 만듭니다. 결과는 사람이 읽기 좋게 2칸 들여쓴 JSON 배열로 출력됩니다. 큰따옴표로 감싼 칸, 칸 안의 이스케이프된 따옴표(""), 그리고 CRLF·LF 줄바꿈을 모두 처리합니다.
- 모든 값은 문자열로 변환됩니다. 예를 들어 30이라는 숫자도 결과 JSON에서는 "30" 문자열이 됩니다.
- 칸 수가 헤더보다 적은 행은 부족한 값이 빈 문자열로 채워집니다.
- 큰따옴표로 감싼 칸 안에서는 쉼표와 줄바꿈이 값의 일부로 취급됩니다.
숫자·불리언 타입이 필요하면 한 번 더 손봐야 합니다
CSV에는 타입 개념이 없어 모든 값이 문자열로 들어옵니다. 변환된 JSON에서 특정 필드를 숫자나 불리언으로 다뤄야 한다면, 코드에서 Number()나 조건 비교로 변환하거나 결과 JSON을 직접 수정해 주세요.
JSON · CSV · YAML 언제 무엇을 쓸까
세 포맷은 목적이 조금씩 다릅니다. JSON은 API·프로그램 간 데이터 교환의 사실상 표준이고, CSV는 스프레드시트·표 데이터에 강하며, YAML은 사람이 손으로 읽고 쓰는 설정 파일에 자주 쓰입니다.
| 포맷 | 강점 | 대표 용도 |
|---|---|---|
| JSON | 중첩 구조 표현, 타입 구분(숫자·불리언·null) | API 응답, 앱 데이터 저장·교환 |
| CSV | 표 형태에 최적, 엑셀·구글시트에서 바로 열림 | 표 데이터 내보내기·가져오기, 통계 자료 |
| YAML | 들여쓰기로 가독성 높음, 주석 작성 가능 | 설정 파일(CI, 도커, 앱 config) |
변환은 되돌려도 완전히 같지 않을 수 있습니다
포맷마다 표현력이 달라 왕복 변환(예: JSON → CSV → JSON) 시 원본과 정확히 일치하지 않을 수 있습니다. 특히 CSV를 거치면 타입이 모두 문자열이 되고, 중첩 구조는 CSV에서 표현되지 않는다는 점을 염두에 두세요.
자주 묻는 질문
- 지원하는 변환 방향은 무엇인가요?
- JSON → CSV, CSV → JSON, JSON → YAML, YAML → JSON 네 가지입니다. 상단 버튼에서 방향을 고른 뒤 데이터를 붙여넣고 변환 버튼을 누르면 됩니다. XML이나 TOML 같은 다른 포맷은 이 도구에서 지원하지 않습니다.
- 변환 버튼을 눌렀더니 오류 메시지가 떠요.
- 입력 데이터의 형식이 올바르지 않을 때 파싱 오류가 표시됩니다. JSON은 키·문자열을 큰따옴표로 감쌌는지, 마지막 항목 뒤에 불필요한 쉼표가 없는지 확인하세요. YAML은 들여쓰기가 일정한지, CSV는 첫 줄이 헤더로 되어 있는지 점검한 뒤 다시 시도하면 됩니다.
- JSON을 CSV로 바꿨더니 값이 [object Object]로 나와요.
- 해당 필드의 값이 다시 객체나 배열인 중첩 구조이기 때문입니다. CSV는 평평한 표 포맷이라 중첩 데이터를 그대로 담지 못하고 문자열로 변환합니다. 깔끔한 표를 얻으려면 각 필드가 문자열·숫자 같은 단순 값인 평평한 객체 배열로 입력하세요.
- CSV를 JSON으로 바꾸면 숫자도 문자열이 되나요?
- 네. CSV에는 타입 정보가 없어서 모든 값이 문자열로 변환됩니다. 예를 들어 나이 30은 "30"이 됩니다. 숫자나 불리언으로 다뤄야 한다면 변환된 JSON을 코드에서 형 변환하거나 직접 수정해 주세요.
- 쉼표나 줄바꿈이 들어 있는 값도 CSV로 안전하게 변환되나요?
- 네. 값에 쉼표, 큰따옴표, 줄바꿈이 포함되면 그 칸을 큰따옴표로 감싸고, 값 안의 따옴표는 두 개로 이스케이프합니다. 이는 CSV 표준(RFC 4180) 방식이라 엑셀·구글시트에서 열이 어긋나지 않고 올바르게 열립니다.
- 입력한 데이터가 서버로 전송되나요?
- 아니요. 모든 변환은 사용자의 브라우저 안에서만 처리되며 어떤 서버로도 데이터를 보내지 않습니다. 사내 데이터나 민감한 값이 포함되어도 외부로 유출되지 않으므로 안심하고 사용할 수 있습니다.