변환기 · 2026년 7월 7일 · 읽는 시간 4분
API 데이터를 엑셀로 넘길 때마다 귀찮아서 만든 변환기
API에서 JSON으로 가져온 데이터를 기획팀에서 엑셀로 달라고 한다.
JSON↔CSV 변환이 필요한 상황
개발하다 보면 꽤 자주 나온다:
- API 응답 데이터 → 기획/마케팅팀에 엑셀로 공유
- DB 쿼리 결과 JSON → CSV로 변환 후 분석
- 엑셀 데이터(CSV) → 백엔드 API에 올릴 JSON으로
- 테스트 데이터 만들기 → CSV로 작성 후 JSON으로 변환해서 시드
- 로그 데이터 → CSV로 내보내서 스프레드시트에서 필터링
특히 "이 데이터 엑셀로 줄 수 있어요?" 요청이 갑자기 들어올 때, 빠르게 변환할 방법이 필요하다.
JSON 배열과 CSV 구조 비교
// JSON 배열
[
{"name": "철수", "age": 30, "city": "서울"},
{"name": "영희", "age": 25, "city": "부산"},
{"name": "민수", "age": 28, "city": "대전"}
]
// → CSV로 변환
name,age,city
철수,30,서울
영희,25,부산
민수,28,대전구조가 단순할 때는 직관적이다. 문제는 중첩된 객체나 배열 값이 있을 때인데, 이럴 때는 어떻게 처리할지 결정해야 한다.
기존 방법의 문제
- Python pandas → 라이브러리 설치, 코드 짜기, 실행 환경 필요
- Node.js 스크립트 → json2csv 같은 패키지 써야 함
- Excel 직접 → JSON 붙여넣기 불가, 일일이 입력
- 온라인 사이트 → 데이터 보안 걱정, 광고 범벅
JSON 100줄짜리 변환하려고 파이썬 환경 세팅하는 건 너무 오버다.
그래서 만들었음
주요 기능:
- JSON 배열 → CSV 변환 (헤더 자동 생성)
- CSV → JSON 배열 변환
- 중첩 객체 → 점 표기법으로 평탄화 (user.name 같은 형태)
- 쉼표 포함된 값 자동으로 따옴표 처리
- 결과 복사 / 다운로드
- 구분자 선택 (쉼표, 탭, 세미콜론)
CSV → JSON 변환도 됨:
// CSV 입력
id,product,price,in_stock
1,노트북,1500000,true
2,마우스,35000,true
3,키보드,89000,false
// → JSON 변환
[
{"id": "1", "product": "노트북", "price": "1500000", "in_stock": "true"},
{"id": "2", "product": "마우스", "price": "35000", "in_stock": "true"},
{"id": "3", "product": "키보드", "price": "89000", "in_stock": "false"}
]주의사항
- CSV는 타입 정보가 없음 → 숫자도 문자열로 변환됨
- 중첩이 깊은 JSON → 평탄화 후 컬럼 수가 많아질 수 있음
- 배열 값 (예: tags: ["a", "b"]) → 단순 변환 시 문자열로 직렬화됨
- 한글 포함 CSV → Excel에서 열 때 UTF-8 BOM 설정 필요할 수 있음
실제로 써보니
좋은 점:
- 브라우저에서만 처리 → 민감한 데이터도 업로드 걱정 없음
- 양방향 변환 → JSON→CSV, CSV→JSON 모두
- 헤더 자동 생성 → 첫 번째 객체의 키를 헤더로
- CSV 다운로드 버튼 → 바로 파일로 저장 가능
한계:
- 복잡하게 중첩된 JSON 구조는 완벽하게 CSV로 표현 불가
- 수백만 행 데이터는 느릴 수 있음
사용법
- JSON 또는 CSV 붙여넣기
- 변환 방향 선택 (JSON→CSV 또는 CSV→JSON)
- 결과 확인 후 복사 또는 다운로드
써보기
기획팀 데이터 공유 요청 올 때 빠르게 처리할 수 있음.
#JSON변환 #CSV변환 #데이터변환 #엑셀변환 #개발도구