CSV to JSON 변환 방법
CSV(쉼표로 구분된 값)와 JSON(JavaScript Object Notation)은 가장 일반적인 데이터 교환 형식 두 가지예요. CSV는 간결하고 스프레드시트에 친화적이며, JSON은 계층적이고 웹 API의 기본 형식이에요. 이 도구를 사용하면 브라우저에서 완전히 두 형식 사이를 즉시 변환할 수 있어요.
CSV 형식 (RFC 4180)
공식 CSV 사양(RFC 4180)은 이 변환기가 정확히 따르는 다음 규칙을 정의해요:
- 필드는 구분자(기본값: 쉼표)로 구분돼요. 자동 감지 옵션은 데이터를 확인하고 올바른 구분자를 선택해요.
- 구분자, 큰따옴표, 줄 바꿈이 포함된 필드는 큰따옴표로 감싸야 해요.
- 따옴표로 감싼 필드 내의 큰따옴표는 연속된 두 개의 큰따옴표(
"")로 표현해요. - 첫 번째 행은 일반적으로 열 이름을 지정하는 헤더 행이에요.
- 행은 CRLF 또는 LF 줄 끝으로 구분돼요 — 둘 다 지원해요.
타입 추론
타입 추론이 활성화되면(기본값), 문자열 값이 자동으로 네이티브 JSON 타입으로 변환돼요:
"42"→42(숫자)"3.14"→3.14(숫자)"true"/"false"→true/false(불리언)""또는"null"→null- 그 외 모든 값은 문자열로 유지돼요.
01234처럼 우편번호 열이 "01234"로 유지되어야 할 때(즉 1234로 변환되지 않아야 할 때)는 타입 추론을 꺼주세요.
점 표기 키 → 중첩 객체
점 키 확장을 활성화하면 address.city 같은 헤더가 중첩된 JSON 구조 {"address": {"city": "..."}}로 변환돼요. 중첩 객체를 기대하는 계층형 API를 위한 데이터 준비에 유용해요.
JSON → CSV: 중첩 객체 평탄화
JSON을 CSV로 변환할 때 중첩 객체는 점 표기 키를 사용해 자동으로 평탄화돼요. {"user": {"name": "Alice", "age": 30}} 객체는 user.name과 user.age 두 열이 돼요.
키보드 단축키
- Ctrl/Cmd+Enter — 지금 변환
- Ctrl/Cmd+D — 출력 다운로드
- Ctrl/Cmd+Shift+C — 출력 복사
자주 발생하는 CSV 문제
- 값 내 쉼표: 데이터에 쉼표가 포함된 경우(예: "홍, 길동"), 해당 필드는 따옴표로 감싸야 해요. 이 변환기는 RFC 4180에 따라 이를 올바르게 처리해요.
- 열 수 불일치: 일부 내보내기 도구는 끝 필드가 누락된 행을 생성해요. 이 변환기는 누락된 값을
null로 채우고 영향 받는 행을 알려줘요. - BOM 문자: Excel에서 내보낸 파일은 UTF-8 BOM(
)으로 시작할 수 있어요. 이 변환기는 자동으로 제거해요. - 인코딩: 업로드된 파일은 UTF-8로 읽혀요. CSV가 다른 인코딩(예: Latin-1)을 사용한다면 먼저 UTF-8로 변환해 주세요.
- 큰 파일: 5 MB를 초과하는 파일은 미리보기 테이블을 느리게 할 수 있어요. 변환기는 처리하지만 미리보기를 첫 50행으로 제한해요.
CSV vs JSON: 언제 어떤 것을 사용할까요
CSV를 사용하는 경우: 비기술 사용자와 표 형식 데이터를 공유할 때, 스프레드시트에 가져올 때, 열 이름이 고정된 큰 평면 데이터셋을 다룰 때.
JSON을 사용하는 경우: 웹 API와 작업할 때, 계층적 또는 중첩 데이터를 저장할 때, JavaScript/Node.js/Python 스크립트를 사용할 때, 값에 쉼표나 특수 문자가 포함될 수 있을 때.
자주 묻는 질문
[{"name":"Alice","age":30}]. 대부분의 API와 라이브러리가 기대하는 형식이에요. 배열의 배열은 원시 행을 유지해요: [["name","age"],["Alice","30"]], 데이터 그리드와 행렬 연산에 유용해요.