영업팀 누군가가 스프레드시트를 CSV로 내보내고 "그냥 시스템에 불러와 달라"고 요청합니다. 시스템은 JSON을 기대합니다. 그래서 CSV 파싱 라이브러리를 쓰는 짧은 Python이나 Node 스크립트를 작성하고, 열을 필드에 매핑하고, 헤더 행을 처리하고, 값 안에 쉼표가 들어 있어서 단순한 쉼표 분리 로직이 망가지지 않기를 바랍니다(보통 인용부호 안에 숨어서 망가뜨립니다).
이는 개발자가 매번 조금씩 다른 일회성 코드를 작성하며 반복해서 해결하는 작업입니다. CSV는 스프레드시트, 데이터베이스, 분석 도구의 내보내기 형식으로 끊임없이 등장하는 반면, 대부분의 최신 도구와 API는 JSON을 기대하기 때문입니다.
CSV의 기만적인 단순함
CSV는 사소해 보입니다 — 쉼표로 나누고, 줄바꿈으로 나누면 끝. 그러다 쉼표를 포함한 필드가 사양에 따라 인용부호로 감싸져 있는 것을 만나면 단순한 파서가 망가집니다. 또는 인용부호 안에 줄바꿈이 포함된 필드를 만나면 한 줄씩 읽는 방식으로는 제대로 처리할 수 없습니다. CSV 파싱을 제대로 하려면 실제로 인용 규칙을 존중해야 하며, 이것이 매번 처음부터 작성하는 것보다 전용 변환기가 나은 이유입니다.
CSV를 구조화된 JSON으로 변환하기
Bellows는 인용된 필드와 헤더 행을 올바르게 처리하는 CSV to JSON 변환기를 포함해서, 스프레드시트 내보내기 파일을 테스트 픽스처, 요청 본문, 스크립트에 바로 붙여넣을 수 있는 JSON 객체 배열로 바꿔줍니다.
스프레드시트 데이터를 API에 불러오기
일회성 데이터 임포트가 전체 스크립트를 작성하고 유지관리할 정도의 가치가 없을 때, CSV 내보내기를 바로 JSON으로 변환해서 API 테스트 도구나 데이터베이스 시드 파일에 붙여넣으면 훨씬 짧은 시간에 작업을 끝낼 수 있습니다.
실제 데이터로 테스트 픽스처 만들기
스프레드시트에서 프로덕션과 비슷한 데이터 샘플을 CSV로 내보내고 JSON으로 변환하는 것은 JSON 객체를 필드별로 직접 작성하지 않고도 현실적인 테스트 픽스처를 빠르게 만드는 방법입니다.