CSV⇔JSON Lines(JSONL) 변환

CSV 파일과 JSON Lines(JSONL, 한 줄에 하나의 JSON 객체) 형식을 상호 변환합니다. 구분자를 선택할 수 있고, 키가 일치하지 않는 행도 자동으로 합쳐집니다. 변환은 브라우저 안에서만 이루어지며 서버로 전송되지 않습니다.

CSV 행과 JSONL 행의 대응 관계

CSV 머리글 행 + 데이터 행 name,age,city
Alice,30,Tokyo
변환된 JSONL(한 줄에 객체 하나) {"name": "Alice", "age": "30", "city": "Tokyo"}

머리글 행의 열 이름을 키로 사용하여 CSV의 각 데이터 행이 하나의 JSON 객체가 되고, 이것이 JSONL의 한 줄로 출력됩니다. 반대 방향(JSONL → CSV)에서는 모든 줄에 등장한 키의 합집합이 머리글 행이 되며, 특정 키가 없는 줄은 해당 열이 빈 칸으로 채워집니다.

CSV⇔JSON Lines 변환이란

CSV⇔JSON Lines 변환이란 표 형식의 CSV 데이터와, 한 줄에 하나의 JSON 객체를 담는 JSON Lines(JSONL) 형식을 서로 변환하는 처리입니다. 이 도구는 RFC 4180 표준을 따르는 파서로 CSV를 읽어 들이므로, 따옴표로 둘러싸인 셀 안에 쉼표나 줄바꿈이 포함된 복잡한 CSV도 정확히 해석합니다.

양방향 변환을 지원하며, CSV→JSONL에서는 머리글 행의 열 이름이 키로 쓰이고, JSONL→CSV에서는 모든 줄에 등장한 키의 합집합이 머리글 행이 됩니다. 줄마다 키의 개수가 달라도 열이 자동으로 맞춰지므로, 머신러닝용 데이터셋 준비와 로그 파일 정리 모두에 활용할 수 있습니다.

CSV⇔JSON Lines 변환 사용법

  1. 변환 방향을 고릅니다 탭에서 "CSV → JSONL" 또는 "JSONL → CSV" 중 원하는 변환 방향을 선택합니다.
  2. 데이터를 입력합니다 텍스트 영역에 변환할 CSV 또는 JSON Lines를 붙여넣습니다. 손에 데이터가 없다면 "샘플 불러오기"로 예시를 확인할 수 있습니다.
  3. 구분자를 선택합니다 CSV 쪽 구분자가 쉼표인지 탭인지 선택합니다. TSV 파일을 다룰 때는 탭을 선택합니다.
  4. 변환 결과를 확인합니다 입력에 따라 변환 결과가 자동으로 표시되고, "건수" 항목에 행 수가 표시됩니다.
  5. 결과를 복사합니다 "복사" 버튼으로 변환 결과를 클립보드에 복사해 다른 도구나 시스템에 붙여넣어 사용합니다.

더 잘 활용하기 위한 팁

  • JSONL→CSV 변환에서는 줄마다 키의 개수나 순서가 달라도 괜찮습니다. 모든 줄에 등장한 키의 합집합으로 머리글 행을 만들어 열을 자동으로 맞춰줍니다.
  • 머리글에 빈칸이나 중복된 열이 있으면 col{열 번호}나 이름_2 같은 키로 자동 치환되어 값이 사라지거나 덮어써지지 않습니다.
  • 값이 숫자·불리언·중첩된 객체나 배열이어도 CSV 셀에는 텍스트로 기록되므로, 변환 결과를 엑셀 등에서 그대로 열 수 있습니다.
  • 자매 도구인 "CSV→JSON 변환", "JSONL⇔JSON 배열 변환"과 함께 사용하면 CSV·JSON 배열·JSONL 세 형식을 자유롭게 오갈 수 있습니다.
  • 따옴표로 둘러싸인 셀 안의 쉼표·줄바꿈까지 정확히 처리하는 RFC 4180 표준 파서를 사용하므로, 엑셀 등에서 내보낸 복잡한 CSV도 정확히 변환됩니다.

CSV⇔JSON Lines 변환 활용 사례

머신러닝 데이터셋 준비

스프레드시트에 정리한 학습 데이터를 JSONL로 변환해 파인튜닝용 데이터셋으로 바로 사용할 수 있습니다.

스프레드시트에서 로그 파일 확인

JSONL 형식으로 출력된 애플리케이션 로그를 CSV로 변환하면 엑셀이나 스프레드시트에서 열어 필터링·집계할 수 있습니다.

키 개수가 일치하지 않는 데이터 통합

줄마다 항목 수가 다른 JSONL 데이터도 CSV로 변환할 때 열이 자동으로 맞춰져 수작업 정리가 필요 없습니다.

API·데이터베이스에 입력할 데이터 준비

CSV로 받은 데이터를 JSONL 형식으로 변환해, 한 줄씩 읽어 들이는 가져오기 처리에 그대로 흘려 넣을 수 있습니다.

용어집

CSV
Comma-Separated Values의 약자로, 값을 쉼표로 구분해 표 형식 데이터를 나타내는 순수 텍스트 형식입니다.
JSON Lines(JSONL)
한 줄에 하나의 JSON 객체를 기록하는 형식입니다. 줄 단위로 독립적으로 읽고 쓸 수 있어 대량 데이터를 스트림 처리하는 용도에 적합합니다.
RFC 4180
CSV 파일의 일반적인 형식을 정한 사양입니다. 큰따옴표로 둘러싼 셀 안의 쉼표·줄바꿈·따옴표 처리 방식을 규정하고 있습니다.
키의 합집합
여러 줄에 걸쳐 등장한 모든 키(열 이름)를 빠짐없이 모은 집합입니다. JSONL→CSV 변환에서는 이 합집합이 머리글 행이 됩니다.
스트림 처리
데이터 전체를 한 번에 메모리로 불러오지 않고, 한 건(한 줄)씩 순서대로 처리하는 방식입니다. JSON Lines는 이 처리 방식과 궁합이 좋은 형식입니다.

자주 묻는 질문

CSV는 스프레드시트에서 열어 한눈에 확인·집계하기에 편리하고, JSON Lines는 한 줄씩 독립적으로 스트리밍 처리할 수 있어 머신러닝 데이터셋이나 로그 수집 도구에 자주 쓰입니다. 이 도구는 두 형식을 수작업 없이 오갈 수 있게 이어줍니다.

머리글 행을 제외한 각 데이터 행이 JSONL의 한 줄(하나의 JSON 객체)에 대응하며, 머리글 행의 열 이름이 그대로 JSON 객체의 키가 됩니다.

네. JSONL→CSV 변환에서는 모든 줄에 등장한 키를 모두 모아 하나의 머리글 행으로 만듭니다. 특정 키가 없는 줄은 해당 열이 빈 셀로 출력됩니다.

네. "구분자"에서 "탭"을 선택하면 양방향 모두 쉼표 대신 탭으로 구분된 데이터를 그대로 처리할 수 있습니다.

아니요. 모든 변환 처리는 브라우저 안의 자바스크립트에서 이루어지며, 입력한 내용이 서버로 전송되는 일은 없습니다.
툴군

여담 ― JSON Lines가 머신러닝과 로그 처리의 "공통어"가 된 이유

JSON Lines(JSONL)가 널리 쓰이게 된 큰 계기 중 하나는 머신러닝 데이터셋 배포입니다. 대규모 언어 모델의 파인튜닝 데이터는 수백만 건의 "입력과 출력" 쌍으로 이루어지는 경우가 많은데, 이를 하나의 JSON 배열로 묶어버리면 파일 전체를 메모리에 불러와 파싱을 마칠 때까지 단 한 건도 꺼낼 수 없습니다. JSONL은 한 줄을 하나의 완결된 레코드로 취급함으로써, 거대한 데이터셋도 스트림 형태로 순차 처리할 수 있게 해줍니다.

로그 처리 분야에서도 JSONL은 궁합이 좋은 형식입니다. Elasticsearch나 Logstash 같은 로그 수집 기반은 애플리케이션이 하나씩 내보내는 이벤트를 순차적으로 받아들이도록 설계되어 있어, JSON 배열처럼 "전체가 하나의 구조"인 형식보다 한 줄씩 독립적으로 추가·파싱할 수 있는 JSONL이 훨씬 자연스럽게 맞아떨어집니다.

한편 CSV는 지금도 업무 데이터 전달이나 스프레드시트에서의 확인 용도로 여전히 뿌리 깊은 수요가 있습니다. 이 도구는 성격이 다른 CSV와 JSONL 두 형식을 직접 이어줌으로써, "CSV로 받은 데이터를 그대로 머신러닝 파이프라인에 넣고 싶다", "JSONL로 출력된 로그를 엑셀에서 확인하고 싶다" 같은 상황을 한 단계로 해결해 줍니다.