나는 30줄의 Python으로 CSV to JSON 변환기를 만들었다 - 이것이 내 $50 SaaS를 대체했다

발행: (2026년 3월 8일 PM 09:16 GMT+9)
8 분 소요
원문: Dev.to

Source: Dev.to

위에 제공된 텍스트 외에 번역할 내용이 포함되어 있지 않습니다. 번역을 원하는 본문을 제공해 주시면 한국어로 번역해 드리겠습니다.

소개

모든 데이터 분석가, 엔지니어, 연구원은 같은 문제에 직면합니다:

  1. CSV에 데이터가 있습니다.
  2. JSON이 필요합니다.

그래서 여러분은:

  • 온라인 변환기(Cloudinary, Zamzar, CloudConvert)를 엽니다
  • 파일을 업로드합니다 (프라이버시 문제: 데이터를 낯선 서버에 올리는 것)
  • 처리될 때까지 기다립니다 (느림)
  • JSON을 다운로드합니다
  • 한 달에 20번 반복합니다

100행 이상을 변환해야 하면 무료 티어 한도에 걸리고 구독을 위해 $50‑$100 / 월을 지불해야 합니다.

지난 달에 계산해 보니: 저는 매월 50+ 번 CSV를 변환하고 있었습니다.
$50 / 월 SaaS = $600 / 년은 30초면 끝날 일을 위해 쓰는 비용이었습니다.

그래서 저는 CSV‑to‑JSON 변환기 CLI를 파이썬으로 만들었습니다 – 30 줄, 의존성 전혀 없고 완전히 무료. 그 이후로는 구독료를 한 푼도 내지 않았습니다.

Source:

문제: CSV → JSON 은 간단하지만 비용이 많이 듭니다

CSV‑to‑JSON 변환은 프로그래밍적으로 아주 간단하지만, 온라인 도구들은 다음과 같은 이유로 비용을 청구합니다:

  • 서버 호스팅 – 비용이 발생하고, 이는 사용자에게 전가됩니다
  • 요금 제한 – 무료 사용자를 제한하여 업그레이드를 유도합니다
  • 데이터 프라이버시 – 파일을 그들의 서버에 업로드해야 합니다 (신뢰성 문제)
  • 파일 크기 제한 – 무료 플랜: 2 MB. 50 MB 파일을 변환하려면 비용을 지불해야 합니다.

내 사용량 vs. SaaS 도구

ToolCostFile limit (per month)Speed
Cloudinary$50 / mo100 MB / moSlow
Zamzar$50 / mo250 MB / moSlow
CloudConvert$48 / mo400 MB / moSlow
My Python script$0UnlimitedInstant

나는 파이썬 버전을 만들었고, 다시는 돌아보지 않았습니다.

해결책: 30줄 파이썬

#!/usr/bin/env python3
"""CSV to JSON Converter – No dependencies, instant conversion, unlimited files"""

import csv
import json
import argparse
from pathlib import Path

def csv_to_json(csv_file, json_file=None, key_field=None, pretty=True):
    """Convert CSV to JSON."""
    # Read CSV
    with open(csv_file, 'r', encoding='utf-8') as f:
        reader = csv.DictReader(f)
        data = list(reader)

    # If key_field specified, convert to dict
    if key_field:
        data = {row[key_field]: row for row in data}

    # Write JSON
    output_file = json_file or csv_file.replace('.csv', '.json')
    with open(output_file, 'w', encoding='utf-8') as f:
        json.dump(data, f, indent=2 if pretty else None)

    return output_file

def main():
    parser = argparse.ArgumentParser(
        description="Convert CSV to JSON instantly, no dependencies",
        formatter_class=argparse.RawDescriptionHelpFormatter,
        epilog="""
Examples:
  csv-to-json data.csv
  csv-to-json data.csv --output result.json
  csv-to-json data.csv --key id
  csv-to-json data.csv --minify
        """
    )

    parser.add_argument('csv_file', help='CSV file to convert')
    parser.add_argument('--output', '-o', help='Output JSON file (default: data.json)')
    parser.add_argument('--key', '-k', help='Use column as key (converts to dict)')
    parser.add_argument('--minify', action='store_true', help='Minify JSON (no pretty print)')

    args = parser.parse_args()
    output = csv_to_json(args.csv_file, args.output, args.key, not args.minify)
    print(f"✅ Converted {args.csv_file}{output}")

if __name__ == "__main__":
    main()

그게 전부입니다. 클라우드 서버도 없고, 속도 제한도 없으며, 파일 크기 제한도 없습니다.

실제 예시

예시 1 – 기본 CSV → JSON

입력 CSV (users.csv):

id,name,email,role
1,Alice,alice@example.com,Engineer
2,Bob,bob@example.com,Manager
3,Charlie,charlie@example.com,Designer

명령

csv-to-json users.csv

출력 JSON

[
  {
    "id": "1",
    "name": "Alice",
    "email": "alice@example.com",
    "role": "Engineer"
  },
  {
    "id": "2",
    "name": "Bob",
    "email": "bob@example.com",
    "role": "Manager"
  },
  {
    "id": "3",
    "name": "Charlie",
    "email": "charlie@example.com",
    "role": "Designer"
  }
]

예시 2 – 열을 키로 사용하기

명령

csv-to-json users.csv --key id

출력 JSON

{
  "1": {
    "name": "Alice",
    "email": "alice@example.com",
    "role": "Engineer"
  },
  "2": {
    "name": "Bob",
    "email": "bob@example.com",
    "role": "Manager"
  },
  "3": {
    "name": "Charlie",
    "email": "charlie@example.com",
    "role": "Designer"
  }
}

ID로 조회하기가 훨씬 쉬워집니다.

예시 3 – 최소화 (Pretty Print 없음)

명령

csv-to-json data.csv --minify

출력 (단일 라인, API나 데이터베이스에 적합)

[{"id":"1","name":"Alice","email":"alice@example.com","role":"Engineer"},{"id":"2","name":"Bob","email":"bob@example.com","role":"Manager"},{"id":"3","name":"Charlie","email":"charlie@example.com","role":"Designer"}]

Real‑World Use Cases

  • 📊 데이터 분석가 – CSV 내보내기를 API용 JSON으로 변환.
  • 🏢 엔터프라이즈 – 레거시 CSV 데이터를 대량으로 JSON으로 변환.
  • 🤖 자동화 – CI/CD 파이프라인에서 스크립트를 통해 CSV 파이프.
  • 📱 모바일 앱 – 로컬 모바일 데이터베이스용 CSV를 JSON으로 변환.
  • 🔗 API 테스트 – 테스트 데이터 CSV를 JSON 픽스처로 전환.
  • 📈 BI 도구 – CSV 보고서를 JSON 기반 대시보드에 공급.

설치

git clone https://github.com/godlmane/csv-to-json-cli.git
cd csv-to-json-cli
python csv_to_json.py --help

또는 단일 Python 파일을 프로젝트에 그대로 복사하면 됩니다 – 별도의 설정이 필요 없습니다.

벤치마크: 내 스크립트 vs. SaaS

작업내 스크립트CloudConvertZamzar
작은 파일 (1 KB)비용을 지불하는 문제를 찾고 → 간단하다는 것을 깨닫고 → 파이썬으로 구현하고 → 영원히 비용과 시간을 절약한다.

지금 바로 받으세요

👉 GitHub: csv-to-json-cli

무료. 오픈 소스. MIT 라이선스. 영원히 사용하세요.

요청

  • Buy me a coffee – 저와 같은 도구를 더 만들 수 있게 도와줍니다
  • Star the repo – 다른 데이터 분석가들에게 가시성을 높입니다
  • 💬 Comment – 여러분이 겪는 가장 큰 CSV/JSON 문제는 무엇인가요? 실제 수요에 따라 기능을 만들겠습니다

30초 작업에 월 $50를 지불하지 마세요. 이 도구를 사용하세요. 무료입니다.

P.S. 저는 이런 “SaaS를 대체하는” 도구를 13개 만들었습니다. 각각이 연간 $100‑500의 구독료를 절감합니다. 총합: 연간 $2,000‑5,000 절감. 관심이 있다면 다음 도구를 위해 팔로우해 주세요.

0 조회
Back to Blog

관련 글

더 보기 »