나는 30줄의 Python으로 CSV to JSON 변환기를 만들었다 - 이것이 내 $50 SaaS를 대체했다
Source: Dev.to
위에 제공된 텍스트 외에 번역할 내용이 포함되어 있지 않습니다. 번역을 원하는 본문을 제공해 주시면 한국어로 번역해 드리겠습니다.
소개
모든 데이터 분석가, 엔지니어, 연구원은 같은 문제에 직면합니다:
- CSV에 데이터가 있습니다.
- 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 도구
| Tool | Cost | File limit (per month) | Speed |
|---|---|---|---|
| Cloudinary | $50 / mo | 100 MB / mo | Slow |
| Zamzar | $50 / mo | 250 MB / mo | Slow |
| CloudConvert | $48 / mo | 400 MB / mo | Slow |
| My Python script | $0 | Unlimited | Instant |
나는 파이썬 버전을 만들었고, 다시는 돌아보지 않았습니다.
해결책: 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
| 작업 | 내 스크립트 | CloudConvert | Zamzar |
|---|---|---|---|
| 작은 파일 (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 절감. 관심이 있다면 다음 도구를 위해 팔로우해 주세요.