개발자 작업 흐름
CSV와 JSON 변환 오류 고치기
헤더, 따옴표 처리, 구분자, 빈 셀, 인코딩, BOM, 잘못된 JSON 배열 때문에 생기는 CSV와 JSON 변환 오류를 진단합니다.
문제 상황
CSV와 JSON 변환 실패는 대부분 변환기 자체보다 원본 구조 불일치에서 시작됩니다. 헤더 행, 따옴표로 감싼 쉼표, 세미콜론 구분자, 빈 셀, 숨은 BOM, 여러 줄 셀, 잘못된 JSON 배열이 모두 빠른 미리보기에서는 그럴듯해 보여도 스프레드시트, 데이터베이스, API 테스트에서는 잘못된 열이나 키를 만들 수 있습니다.
이럴 때 사용하세요
- CSV 내보내기 후 JSON 키가 누락되거나 열 값이 한 칸씩 밀릴 때 사용합니다.
- JSON payload가 배열이 아니거나 레코드 모양이 달라 CSV로 변환되지 않을 때 사용합니다.
- 이름, 주소, 설명에 쉼표나 줄바꿈이 들어 있어 셀이 여러 칸으로 쪼개질 때 적합합니다.
- 첫 번째 헤더에 이상한 문자가 붙거나 한글/일본어 텍스트가 깨져 인코딩과 BOM을 확인해야 할 때 사용합니다.
- 빈 셀, 중첩 필드, 서로 다른 열 처리를 예상과 다르게 해 스프레드시트 가져오기가 실패할 때 사용합니다.
단계
- 1단계
헤더 행부터 확인
첫 번째 CSV 행이 안정적인 필드 이름인지 확인합니다. 빈 헤더, 중복 헤더, 사람이 읽기 위한 설명형 라벨은 JSON 객체 키로 쓰기 전에 정리하세요.
- 2단계
구분자와 따옴표 처리 확인
이름, 주소, 설명 안에 쉼표나 줄바꿈이 있는지 확인합니다. 구분자가 들어간 값은 따옴표로 감싸야 파싱 중 열이 밀리지 않습니다.
- 3단계
JSON을 CSV로 되돌리기 전에 정리
JSON에서 시작할 때는 JSON Formatter로 먼저 포맷하고 문법 오류, 배열 위치, 레코드별 키 차이를 확인한 뒤 CSV로 내보냅니다.
- 4단계
문자가 깨지면 인코딩 확인
헤더나 값에 깨진 문자가 보이면 문자 인코딩과 숨은 BOM을 확인한 뒤 다시 변환합니다. 값을 하나씩 고치기 전에 원본 해석 방식을 먼저 점검하세요.
- 5단계
작은 샘플로 왕복 테스트
대표 행 몇 개를 먼저 변환한 뒤, 전체 파일을 처리하기 전에 대상 스프레드시트, API 클라이언트, 데이터 파이프라인에서 다시 열어 확인합니다.
예시
CSV와 JSON 변환 오류 고치기 예시
입력
id,name,note
1,Ada,"uses commas, safely"
2,Linus,"exports cleanly"출력
[{"id":"1","name":"Ada","note":"uses commas, safely"},{"id":"2","name":"Linus","note":"exports cleanly"}]흔한 실수
중복 헤더를 그대로 둠
중복된 열 이름은 값이 덮어써지거나 혼란스러운 키를 만들 수 있습니다. 행을 JSON 객체로 바꾸기 전에 중복 헤더를 명확한 이름으로 바꾸세요.
파일을 보지 않고 구분자를 바꿈
일부 지역 설정에서는 세미콜론을 쓰지만 많은 파일은 여전히 쉼표를 사용합니다. 추측하지 말고 실제 파일의 구분자와 설정을 맞추세요.
인코딩 문제를 데이터 손실로 오해함
깨진 문자는 잘못된 문자셋으로 읽었거나 BOM이 포함됐다는 신호일 수 있습니다. 모든 값을 수동으로 고치기 전에 인코딩을 먼저 확인하세요.
중첩 JSON을 열 선택 없이 펼침
API 응답에는 레코드 안에 객체나 배열이 들어 있을 수 있습니다. CSV 열로 만들 중첩 필드를 먼저 고르지 않으면 셀이 읽기 어려운 문자열 덩어리가 됩니다.
여러 줄 CSV 셀을 잊음
주소, 댓글, 설명에는 따옴표 안의 줄바꿈이 들어갈 수 있습니다. 이런 줄바꿈은 새 레코드가 아니라 값의 일부로 처리해야 합니다.
자주 묻는 질문
CSV 변환 뒤 열이 밀리는 이유는 무엇인가요?
값 안의 쉼표, 줄바꿈, 구분자가 올바르게 따옴표 처리되지 않았을 가능성이 큽니다. 열이 처음 밀리는 행을 찾고 해당 셀을 따옴표로 감쌌는지 확인하세요.
API 응답을 JSON에서 CSV로 바꾸면 왜 실패하나요?
대부분 변환기는 일정한 레코드 배열을 기대합니다. 먼저 JSON을 포맷하고, 응답이 metadata로 감싸져 있다면 실제로 내보낼 배열만 추출하세요.
CSV 헤더의 이상한 문자는 어떻게 고치나요?
데이터를 바꾸기 전에 파일 인코딩과 숨은 BOM을 확인하세요. 인코딩 문제는 첫 번째 헤더나 한글, 일본어 같은 비영어 텍스트를 깨져 보이게 만들 수 있습니다.
JSON 레코드마다 키가 다르면 어떻게 해야 하나요?
CSV로 내보내기 전에 레코드 모양을 정규화하세요. 누락된 키를 의도적으로 채우고, 충돌하는 필드명을 바꾸고, 안정적인 열 순서를 정해야 값이 다른 헤더로 이동하지 않습니다.
빈 CSV 셀은 빈 문자열로 둘까요, 누락 필드로 둘까요?
목적지 시스템의 의미에 맞추세요. 스프레드시트에서는 빈 문자열이 표 모양을 유지하기 쉽고, API에서는 없는 값과 빈 텍스트를 다르게 처리할 수 있습니다.
CSV 값 안의 줄바꿈은 어떻게 처리하나요?
여러 줄 값은 따옴표로 감싼 셀 안에 유지하고 변환 후 행 수를 확인하세요. 따옴표 안의 줄바꿈은 새 레코드를 만들면 안 됩니다.