CSV를 JSON으로 바꾼 뒤 가장 먼저 확인할 값

4월 24일에는 문서·표 변환 도구와 Docker Compose 생성기를 추가했습니다. 당시 글은 도구 이름을 나열하는 데 집중했지만, 변환 결과를 실제 작업에 쓰려면 원본의 어떤 정보가 바뀌는지 확인해야 합니다. 여기서는 CSV와 Excel에서 JSON으로 옮기는 과정을 중심으로, 현재 win-j.com의 변환 규칙과 확인 순서를 정리합니다.

PDF의 페이지·서식 문제는 PDF 도구 선택 안내에서 별도로 다룹니다. 표 데이터의 핵심은 파일이 열리는지에 더해 열 이름, 자료형, 행 수가 목적에 맞게 유지되는지입니다.

앞자리 0이 필요한 열은 자동 형식 변환을 끄기

CSV → JSON 변환기에 다음 내용을 UTF-8 CSV 파일로 만들어 넣어 볼 수 있습니다.

code,name,active
0012,"서울, 강남",true

구분자를 쉼표, 첫 행을 키로 선택하고 자동 형식 변환을 켜면 다음 구조가 됩니다.

[{"code":12,"name":"서울, 강남","active":true}]

현재 변환기는 숫자처럼 생긴 문자열을 숫자로 바꿉니다. 따라서 0012는 12가 되고, true는 문자열이 아닌 불리언이 됩니다. 상품 코드나 우편번호처럼 앞자리 0이 의미가 있다면 자동 변환을 꺼야 합니다. 이때 결과는 "code":"0012", "active":"true"처럼 문자열을 유지합니다.

열별 자동 변환을 지정하는 방식은 아니므로, 코드 열은 문자열로 두고 수량만 숫자로 바꿔야 한다면 전체를 문자열로 내보낸 뒤 후속 처리에서 필요한 열만 변환하는 편이 명확합니다. 큰 정수도 자동 변환 결과와 원본을 대조해야 합니다. JavaScript 숫자로 해석하는 과정에서 정밀도가 달라질 수 있습니다. MDN JSON.parse 설명

쉼표가 들어간 값과 중복된 헤더

위 예제의 "서울, 강남"은 따옴표로 묶었으므로 하나의 값입니다. 단순히 모든 쉼표를 줄바꿈으로 치환하면 이 구분이 사라집니다. CSV 변환기는 따옴표 안의 쉼표와 줄바꿈을 구분해 읽지만, 텍스트 목록 정리는 같은 작업이 아닙니다.

헤더도 그대로 복사되는 것은 아닙니다. 현재 구현은 앞뒤 공백을 제거하고 이름 안의 공백을 밑줄로 바꿉니다. 빈 헤더에는 column_번호를 붙이고, 같은 이름이 반복되면 _2, _3을 붙여 구분합니다.

code,code,
A,B,C

첫 행을 키로 처리한 결과는 code, code_2, column_3입니다. 외부 API가 특정 키 이름을 요구한다면 이 자동 이름을 그대로 보내지 말고 요청 규격과 맞춰야 합니다. 행마다 열 수가 다르면 부족한 칸은 빈 문자열로 채워집니다. 잘못된 구분자로 열이 늘어난 경우까지 자동 교정하는 것은 아니므로 미리보기에서 열 수를 확인합니다.

Excel에서는 선택 시트와 표시 형식도 점검

Excel → JSON 변환기는 시트 선택과 여러 시트 출력 방식을 제공합니다. 현재 읽기 경로는 셀의 표시 문자열을 사용하므로, 날짜·통화·백분율이 원래 저장된 숫자와 다르게 표현될 수 있습니다. 수식 자체와 셀 서식을 보존하는 Excel 백업 용도로 쓰기에는 맞지 않습니다.

변환 전에는 머리글과 데이터 범위를 정리하고, 변환 후에는 다음 세 행을 골라 원본과 비교합니다.

  1. 앞자리 0이 있는 코드와 빈 칸이 있는 행.
  2. 쉼표·따옴표·여러 줄 메모가 들어 있는 행.
  3. 날짜, 백분율, 큰 금액이 들어 있는 행.

CSV 파일은 현재 UTF-8로 읽습니다. 한글이 깨지면 결과를 수작업으로 고치기 전에 원본 파일의 인코딩을 확인하고 UTF-8 사본으로 다시 시도합니다. 빈 행 제외 옵션도 전체 행 수에 영향을 주므로, 결과 개수를 비교할 때 머리글과 제외한 빈 행을 따로 계산합니다.

같은 날 추가한 Compose 생성기의 사용 범위

Docker Compose 생성기는 구성 초안을 만드는 도구입니다. 생성된 파일은 실제 폴더, 실행 명령, 환경 변수와 맞춘 뒤 해당 프로젝트에서 검사해야 합니다.

docker compose -f compose.yaml config --quiet

이 명령의 성공은 Compose 설정 검사를 통과했다는 뜻입니다. 이미지 빌드 성공, 애플리케이션 실행, DB 연결까지 증명하지는 않습니다. 환경 변수가 포함된 전체 설정을 다른 사람에게 공유할 때는 비밀값이 출력되지 않도록 주의합니다. 명령의 검사 범위는 Docker 공식 문서에서 확인할 수 있습니다.

표 변환과 설정 생성 모두 결과를 만드는 단계 뒤에 원본·사용처와 대조하는 단계가 필요합니다. 이 글의 예제는 2026년 9월 22일 프로젝트 구현을 기준으로 정리했습니다.