tooliv

JSON ↔ CSV 변환기

JSON과 CSV를 상호 변환합니다. 텍스트를 붙여넣으면 즉시 변환됩니다.

입력

결과

JSON CSV 변환 핵심 질문

JSON과 CSV의 차이는 무엇인가요?

JSON은 중첩 구조와 타입 정보를 유지하기 좋고, CSV는 표 형태라 엑셀과 분석 도구에서 다루기 쉽습니다. API 연동은 JSON, 시트 작업과 대량 검토는 CSV가 더 적합한 경우가 많습니다.

중첩된 JSON도 CSV로 변환할 수 있나요?

가능은 하지만 CSV는 평면 구조라서 중첩 객체와 배열은 문자열로 풀리거나 평탄화가 필요합니다. 데이터 구조가 깊을수록 키 설계와 후처리 기준을 먼저 정하는 것이 좋습니다.

한글이 포함된 CSV가 엑셀에서 깨지는 이유는?

엑셀이 UTF-8을 자동으로 잘못 해석하면 한글이 깨질 수 있습니다. CSV 앞에 BOM을 붙이거나 가져오기 메뉴에서 인코딩을 지정하면 대부분 해결됩니다.

자주 묻는 질문

JSON과 CSV의 차이는 무엇인가요?
JSON은 중첩 구조와 다양한 데이터 타입을 지원하는 반면, CSV는 표 형태의 단순한 구조입니다. JSON은 API에, CSV는 엑셀/데이터 분석에 주로 사용됩니다.
중첩된 JSON도 CSV로 변환할 수 있나요?
기본적으로 1단계 객체 배열을 지원합니다. 중첩된 객체는 문자열로 변환되므로, 필요하면 사전에 평탄화(flatten)하는 것이 좋습니다.
CSV 구분자를 쉼표 외에 다른 것으로 바꿀 수 있나요?
탭(TSV) 또는 세미콜론 등 다른 구분자를 사용할 수 있습니다. 유럽에서는 소수점에 쉼표를 사용하므로 세미콜론 구분이 일반적입니다.
한글이 포함된 CSV가 엑셀에서 깨지는 이유는?
엑셀이 UTF-8 인코딩을 자동 인식하지 못하는 경우가 있습니다. CSV 파일 앞에 BOM(Byte Order Mark)을 추가하면 해결됩니다.
입력한 데이터가 서버로 전송되나요?
아닙니다. 모든 변환이 브라우저에서 처리됩니다.

JSON과 CSV 형식 비교

JSON을 CSV로 변환할 때 중첩 구조는 어떻게 처리되나요?

JSON은 객체 안에 또 다른 객체를 중첩할 수 있지만, CSV는 단일 행과 열로만 데이터를 표현합니다. 중첩 구조는 점 표기법으로 평탄화(user.address.city)하거나, 배열은 쉼표로 이어 붙인 문자열로 변환합니다. 이 구조 차이 때문에 중첩이 깊을수록 변환 후 데이터 검토가 필요합니다.

JSON과 CSV는 데이터를 저장하고 교환하는 데 가장 널리 쓰이는 두 가지 텍스트 형식입니다. 용도와 특성이 꽤 다르기 때문에, 차이점을 정확히 알아두면 상황에 맞는 포맷을 선택하는 데 도움이 됩니다.

특성 JSON CSV
데이터 구조중첩 가능 (트리 구조)평면 (표 형태)
데이터 타입문자열, 숫자, 불리언, null, 배열, 객체모든 값이 문자열
파일 용량상대적으로 큼 (키 이름 반복)상대적으로 작음
가독성중간 (개발자 친화적)높음 (비개발자도 이해 가능)
주요 용도API 통신, 설정 파일스프레드시트, 데이터 분석

간단히 말하면, JSON은 프로그래밍 세계의 표준 데이터 교환 형식이고, CSV는 비개발자도 엑셀에서 바로 열어볼 수 있는 직관적인 형식입니다. 개발팀과 기획팀 사이에서 데이터를 주고받아야 할 때, 이 두 형식 간의 변환이 가장 빈번하게 일어납니다.

JSON에서 CSV로 변환할 때 주의할 점

JSON을 CSV로 변환하는 과정에서 데이터 구조의 차이 때문에 몇 가지 주의해야 할 사항이 있습니다.

중첩 객체 평탄화가 가장 큰 이슈입니다. JSON은 객체 안에 또 다른 객체를 넣을 수 있지만, CSV는 단일 행과 열로만 데이터를 표현합니다. 예를 들어 {"user": {"name": "홍길동", "address": {"city": "서울"}}} 같은 구조는 CSV에서 "user.name", "user.address.city"처럼 점(dot) 표기법으로 펼쳐야 합니다.

배열 값 처리도 고려해야 합니다. JSON에서 {"tags": ["react", "vue", "angular"]}처럼 배열이 들어있는 경우, CSV의 한 셀에 어떻게 표현할지 결정해야 합니다. 일반적으로 쉼표 구분 문자열로 합치거나, JSON 문자열 그대로 셀에 넣는 방식을 사용합니다.

null과 undefined 처리에도 주의가 필요합니다. JSON에서 null은 명시적으로 "값이 없음"을 나타내지만, CSV에서는 빈 셀로 표현됩니다. 원래 빈 문자열("")이었던 값과 null이었던 값이 CSV에서는 구분이 안 되기 때문에, 역변환할 때 데이터 타입이 달라질 수 있습니다.

쉼표가 포함된 값의 이스케이프는 반드시 처리해야 합니다. "서울시 강남구, 역삼동"처럼 값 안에 쉼표가 있으면, 큰따옴표로 전체 값을 감싸야 합니다. 그렇지 않으면 쉼표 위치에서 컬럼이 분리되어 데이터가 엉켜버립니다. 이 도구에서는 이런 이스케이프 처리를 자동으로 해줍니다.

CSV에서 JSON으로 변환할 때 주의할 점

CSV를 JSON으로 변환할 때도 몇 가지 알아둘 점이 있습니다.

헤더 행이 키값이 됩니다. CSV의 첫 번째 줄은 각 컬럼의 이름(키)으로 사용됩니다. 따라서 헤더에 특수문자나 공백이 포함되어 있으면 JSON 키로 그대로 들어가므로, 미리 정리하는 것이 좋습니다. 예를 들어 "상품 이름"보다는 "productName" 같은 형태가 API 연동에 더 적합합니다.

데이터 타입 자동 추론이 필요합니다. CSV에서는 모든 값이 문자열이지만, JSON에서는 숫자, 불리언 등의 타입을 구분합니다. "30"이 숫자 30인지, 문자열 "30"인지는 맥락에 따라 판단해야 합니다. 이 도구에서는 숫자처럼 보이는 값은 자동으로 숫자 타입으로 변환합니다.

빈 셀 처리 방식도 중요합니다. CSV에서 빈 셀은 JSON에서 빈 문자열("")로 변환됩니다. API에서 null을 기대하는 필드가 있다면 변환 후 수동으로 확인하는 것이 안전합니다.

실무 활용 사례

JSON-CSV 변환은 다양한 실무 상황에서 매일같이 사용됩니다. 대표적인 사례들을 소개합니다.

  • API 응답 데이터를 엑셀로 분석 - REST API에서 받은 JSON 응답을 CSV로 변환하면 엑셀에서 피벗 테이블, 필터, 차트 등을 활용해 빠르게 분석할 수 있습니다.
  • 엑셀 데이터를 API에 전송 - 기획팀이 엑셀로 정리한 상품 목록이나 고객 리스트를 JSON으로 변환해 웹 어드민이나 CRM 시스템에 일괄 등록할 수 있습니다.
  • 데이터 마이그레이션 - 데이터베이스를 이관하거나, 서로 다른 시스템 간에 데이터를 옮길 때 CSV와 JSON 사이의 변환이 필수적으로 필요합니다.
  • 로그 분석 - 서버 로그가 JSON 형태로 쌓이는 경우, CSV로 변환하면 엑셀이나 구글 시트에서 편하게 분석하고 시각화할 수 있습니다.

개발팀과 비개발팀 사이에서 데이터를 주고받는 일이 잦다면, 이 도구를 북마크해두는 것을 추천합니다. 매번 파이썬 스크립트를 짜거나 npm 패키지를 설치할 필요 없이, 브라우저에서 붙여넣기 한 번이면 바로 변환됩니다.

한글 CSV 파일의 인코딩 문제

한글이 포함된 CSV 파일을 엑셀에서 열었을 때 글자가 깨져 보이는 문제는 정말 흔한 이슈입니다. 원인은 인코딩에 있습니다.

대부분의 현대 시스템은 UTF-8 인코딩을 사용하지만, 마이크로소프트 엑셀은 CSV 파일을 열 때 기본적으로 ANSI(Windows의 경우) 또는 시스템 기본 인코딩을 적용합니다. UTF-8로 저장된 한글 CSV를 엑셀이 다른 인코딩으로 해석하면 글자가 깨지는 것이죠.

가장 확실한 해결 방법은 CSV 파일 맨 앞에 BOM(Byte Order Mark)을 추가하는 것입니다. BOM은 파일의 시작 부분에 붙는 특수한 바이트 시퀀스(EF BB BF)로, 엑셀에게 "이 파일은 UTF-8입니다"라고 알려주는 역할을 합니다. BOM이 있으면 엑셀이 자동으로 UTF-8로 인식하여 한글이 정상적으로 표시됩니다.

참고로 과거에는 한국에서 EUC-KR 인코딩이 널리 쓰였고, 일부 레거시 시스템에서는 여전히 EUC-KR을 사용합니다. 오래된 시스템과 데이터를 교환할 때는 인코딩을 확인하고, 필요하면 UTF-8로 변환한 뒤 작업하는 것이 안전합니다. 모든 처리가 브라우저에서 이루어지며 서버로 전송되지 않습니다.

관련 도구