MYMONDAY.ai
서비스스튜디오도구데이터·포맷73CSS 생성기19색상·이미지10인코딩·보안10웹·SEO11개발·데브옵스10파일·내보내기18계산기6가이드

CSV YAML 변환기

CSV 행마다 매핑 하나인 YAML 시퀀스를 만들며, 타입은 열 단위로 정하고 파서가 잘못 읽을 수 있는 텍스트에만 따옴표를 붙입니다.

  • 브라우저에서 처리
  • 가입 없음
  • 무료

도구 작업 공간

예제

옵션

끄면 열 이름이 column_1, column_2 …가 되고 JSON은 배열이 됩니다.

비어 있거나 구분자만 있는 줄을 버려서 뒤 레코드가 밀리지 않게 합니다.

채워진 셀이 모두 맞을 때만 열이 숫자·불리언이 됩니다. 01234나 20자리 ID는 텍스트로 남습니다. 끄면 모든 셀이 적은 그대로 텍스트입니다.

대소문자 구분 없이 쉼표로 구분합니다. 빈 셀은 항상 null입니다.

들여쓰기

yes, no, on, off, 1_000에 따옴표를 붙여 PyYAML 같은 YAML 1.1 파서도 문자열로 읽게 합니다.

CSV 입력

6줄181byte구분자: 쉼표 (자동 감지)

결과

⌘/Ctrl + Enter로 복사
결과 · data.yaml
- id: 1001
  customer: Ada Lovelace
  total: 87.9
  paid: true
  note: Gift wrap, please
  shipped: "2026-03-14"
- id: 1002
  customer: Grace Hopper
  total: 19
  paid: false
  note: null
  shipped: "2026-03-15"
- id: 1003
  customer: Linus
  total: 1200.5
  paid: true
  note: |-
    Line one
    line two
  shipped: null
행3
열6
키18
크기323byte

파일을 읽은 결과

변환기가 보는 앞쪽 레코드와 열마다 정해진 타입입니다.

줄id숫자customer텍스트total숫자paid불리언note텍스트shipped텍스트
21001Ada Lovelace87.90trueGift wrap, please2026-03-14
31002Grace Hopper19falseNA2026-03-15
41003Linus1200.5trueLine one line two·

이 CSV YAML 변환기는 CSV나 TSV의 각 레코드를 YAML 시퀀스 안의 매핑으로 바꾸고, 헤더 행이 키가 됩니다. 테스트 데이터, 앤서블 변수 파일, Jekyll·Hugo의 _data 폴더 같은 정적 사이트 데이터, 스프레드시트보다 YAML로 검토하기 쉬운 설정에 유용합니다.

결과를 정하는 스위치는 두 개입니다. 기본으로 켜진 ‘숫자·불리언·null 감지’는 열 전체를 보고 타입을 정합니다. 평범한 숫자만 있는 열은 YAML 숫자, true와 false만 있는 열은 불리언이 되고, 빈 셀과 NA 같은 단어는 null이 되며, 02139 같은 우편번호는 문자열로 남습니다. 역시 기본으로 켜진 ‘YAML 1.1 단어 따옴표 처리’는 오래된 YAML 파서가 불리언, 숫자, 날짜로 바꿀 텍스트에 따옴표를 붙여, 국가 코드 NO가 false가 되지 않고 문자열로 남게 합니다.

YAML은 페이지에 포함된 YAML 라이브러리가 브라우저 안에서 쓰며, 입력한 내용은 서버로 전송되지 않습니다. 입력 한도는 20 MiB, 데이터 행 50,000개, 열 200개입니다.

사용 방법

  1. CSV 붙여 넣기 또는 열기

    행을 붙여 넣거나 .csv, .tsv 파일을 끌어다 놓거나 예제로 시작합니다. 따옴표로 감싼 셀은 여러 줄에 걸쳐도 되고, LF, CRLF, 예전 Mac의 CR 줄 끝을 모두 읽으며, UTF-8 BOM은 제거됩니다.

  2. 구분자와 헤더 확인

    ‘자동 감지’는 앞쪽 레코드들에서 열 수가 가장 일정하게 나오는 쪽을 쉼표, 세미콜론, 탭, 파이프 중에서 고르고, 입력창 아래 배지에 결과를 보여 줍니다. 헤더를 키로 쓰려면 ‘첫 행은 헤더’를 켜 두고, 끄면 키가 column_1, column_2 식으로 붙습니다.

  3. 값의 타입 정하기

    ‘숫자·불리언·null 감지’를 켠 상태라면 내보낸 파일에 맞게 ‘null로 볼 단어’를 고칩니다. 1.10 같은 버전 문자열이나 우연히 숫자로만 된 코드처럼 모든 값이 텍스트로 남아야 한다면 감지를 끄세요.

  4. YAML 옵션 정하기

    모든 파서가 YAML 1.2라고 확신할 수 없다면 ‘YAML 1.1 단어 따옴표 처리’를 켜 둡니다. ‘들여쓰기’(공백 2칸 또는 4칸)는 여러 줄 값의 각 줄이 키 아래로 얼마나 들여쓰일지를 정합니다.

  5. 복사 또는 다운로드

    안내와 열마다 정해진 타입을 보여 주는 ‘파일을 읽은 결과’ 패널을 확인한 뒤 YAML을 복사하거나 data.yaml로 내려받습니다.

작동 원리

타입은 CSV 열에서 정해짐

감지가 켜져 있으면 YAML을 쓰기 전에 열마다 타입을 먼저 정합니다. 채워진 셀이 모두 앞자리 0이나 천 단위 구분 기호 없는 평범한 숫자일 때만 숫자 열이 되고, 모두 true나 false일 때만 불리언 열이 됩니다. 이 값들은 실제 숫자와 불리언으로 YAML 작성기에 넘어가 id: 1, active: true처럼 따옴표 없이 쓰이고, 빈 셀과 null 단어는 null이 됩니다.

텍스트도 기본은 따옴표 없이 쓰지만, YAML 파서가 다른 타입으로 읽을 수 있는 값이면 큰따옴표로 감쌉니다. 감지를 껐을 때 id: "1"에 따옴표가 붙는 이유가 이것입니다. 이제 이 값은 문자열 1이고, 따옴표가 없으면 다시 읽을 때 숫자가 되기 때문입니다.

CSV 열감지 켬감지 끔
1, 21"1"
9.5, NA9.5와 null"9.5"와 NA
true, falsetrue"true"
빈 셀null""
007, 008"007""007"
2026-03-14"2026-03-14""2026-03-14"

YAML 1.1 단어와 따옴표 스위치

YAML 1.2는 true와 false만 불리언으로 보고 코어 스키마에 타임스탬프가 없습니다. 하지만 PyYAML, Ruby의 Psych를 비롯한 많은 로더는 아직 YAML 1.1을 따릅니다. 여기서는 대소문자와 관계없이 yes, no, on, off, y, n이 불리언이고, 12:30은 60진수 정수, 1_000은 1000, 2026-03-14는 날짜입니다. ‘YAML 1.1 단어 따옴표 처리’가 켜져 있으면 이런 문자열을 키까지 모두 따옴표로 감싸서 두 버전에서 같은 뜻이 되게 합니다.

끄면 이 문자열들이 따옴표 없이 쓰입니다. YAML 1.2로는 맞지만 1.1 로더에서는 뜻이 바뀝니다. 국가 코드 목록에서 노르웨이 NO가 false가 되는 사례가 대표적입니다. 007이나 0x1F처럼 YAML 1.2에서도 숫자인 값은 어느 쪽이든 따옴표가 붙습니다.

문서의 모양

문서는 레코드마다 매핑 하나가 들어 있는 블록 시퀀스이고, 키는 헤더 순서를 따릅니다. %YAML 지시자나 --- 표시는 붙지 않습니다. 줄바꿈이 든 값은 리터럴 블록 스칼라(|-)로 쓰여 모든 줄이 유지되고 마지막 줄바꿈만 빠집니다. - , 공백, @·!·&·* 같은 지시 문자로 시작하거나 : , #가 들어 있는 값은 목록 항목, 앵커, 매핑, 주석으로 읽히지 않도록 따옴표로 감쌉니다. first name처럼 공백이 든 키는 따옴표 없이도 유효합니다.

- id: 1
  name: Ari
  note: |-
    line1
    line2

실제 예시

기본 설정의 타입 감지
입력
id,name,score,active,joined
1,Ari,9.5,true,2026-03-14
2,Bea,NA,false,
출력
- id: 1
  name: Ari
  score: 9.5
  active: true
  joined: "2026-03-14"
- id: 2
  name: Bea
  score: null
  active: false
  joined: null

기본 옵션입니다. id와 score는 숫자 열이고, NA와 비어 있는 joined 셀은 null이 됐습니다. 날짜는 YAML 1.1이 타임스탬프로 읽기 때문에 따옴표가 붙었습니다.

YAML 1.1이 잘못 읽을 단어
입력
country,answer,time,code
NO,no,12:30,007
SE,yes,1_000,0x1F
출력
- country: "NO"
  answer: "no"
  time: "12:30"
  code: "007"
- country: SE
  answer: "yes"
  time: "1_000"
  code: "0x1F"

‘YAML 1.1 단어 따옴표 처리’가 켜진 기본 상태입니다. 따옴표가 없으면 PyYAML에서 NO, no, yes는 불리언, 12:30은 60진수 숫자, 1_000은 정수 1000이 됩니다. 007과 0x1F는 평범한 숫자가 아니어서 code 열은 텍스트입니다.

같은 파일에서 스위치를 끈 경우
입력
country,answer,time,code
NO,no,12:30,007
SE,yes,1_000,0x1F
출력
- country: NO
  answer: no
  time: 12:30
  code: "007"
- country: SE
  answer: yes
  time: 1_000
  code: "0x1F"

‘YAML 1.1 단어 따옴표 처리’를 끈 결과입니다. 이 단어들이 문자열인 YAML 1.2로는 맞지만, YAML 1.1 로더는 NO, no, yes를 불리언으로 읽습니다. 007과 0x1F는 YAML 1.2에서도 숫자로 읽히므로 따옴표가 남습니다.

여러 줄 텍스트와 특수문자
입력
first name,note
Ari,"line1
line2"
Bea,'q': #x
출력
- first name: Ari
  note: |-
    line1
    line2
- first name: Bea
  note: "'q': #x"

줄바꿈은 두 줄을 그대로 지키는 리터럴 블록 스칼라가 됐습니다. 콜론과 #이 든 값은 매핑이나 주석으로 읽히지 않도록 따옴표로 감쌌고, 공백이 든 키에는 따옴표가 필요 없습니다.

감지를 끈 경우
입력
id,qty,note
1,,NA
2,3,ok
출력
- id: "1"
  qty: ""
  note: NA
- id: "2"
  qty: "3"
  note: ok

‘숫자·불리언·null 감지’를 끈 결과입니다. 모든 값이 문자열이라 1, 2, 3은 문자열로 남도록 따옴표가 붙고, 빈 셀은 빈 문자열, NA는 평범한 텍스트입니다.

자주 하는 실수

  • 버전 번호의 끝자리 0이 사라짐

    1.10, 2.0 같은 버전 열은 평범한 숫자로만 되어 있어서 감지가 켜져 있으면 1.1과 2로 쓰입니다. 이런 열이 있으면 감지를 끄거나, 텍스트가 섞인 열에 코드를 두세요.

  • 긴 ID는 일부러 문자열로 남김

    20자리 주문 번호나 소수점 아래 19자리 값처럼 JavaScript 숫자가 반올림해 버릴 값이 있으면 그 열은 텍스트로 남아 id: "12345678901234567890"처럼 따옴표가 붙습니다. 많은 YAML 로더도 이런 숫자를 반올림합니다. 해당 열 이름은 안내에 표시됩니다.

  • 불리언처럼 보이는 키

    ‘YAML 1.1 단어 따옴표 처리’가 켜져 있으면 no, on, y 같은 헤더는 따옴표 키가 됩니다. 끄면 따옴표 없는 키가 되어 YAML 1.1 로더가 불리언으로 읽으므로, 문자열 키로 조회하면 찾지 못합니다.

  • null과 빈 문자열은 다름

    감지가 켜져 있으면 빈 셀은 null, 꺼져 있으면 ""로 쓰입니다. 많은 애플리케이션이 값 없음과 빈 문자열을 다르게 다루므로, 파일마다 바꾸지 말고 받는 쪽이 기대하는 방식 하나를 고르세요.

  • 큰 파일은 YAML이 길어짐

    레코드마다 모든 키가 반복되므로 YAML은 CSV보다 몇 배 길어집니다. 결과가 아주 크면 결과 패널에는 앞쪽 줄만 보이지만, 복사와 다운로드에는 문서 전체가 들어갑니다.

자주 묻는 질문

어떤 값에는 따옴표가 붙고 어떤 값에는 안 붙는 이유는?

YAML 파서가 다른 것으로 읽을 수 있는 값에만 따옴표를 붙입니다. 숫자, 불리언, null, 날짜처럼 보이는 텍스트나, - 나 @로 시작하거나 : 가 들어 있는 텍스트가 그렇습니다. 타입이 정해진 열의 숫자와 불리언은 따옴표 없이 쓰입니다.

모든 값을 문자열로 남길 수 있나요?

네. ‘숫자·불리언·null 감지’를 끄세요. 그러면 모든 셀이 적힌 텍스트 그대로 쓰이고, 숫자나 불리언처럼 보이는 값에는 따옴표가 붙어 파일을 읽을 때도 문자열로 남습니다.

출력은 어느 YAML 버전용인가요?

‘YAML 1.1 단어 따옴표 처리’를 켜면 YAML 1.1과 1.2 파서에서 똑같이 읽힙니다. 끄면 평범한 YAML 1.2입니다. 어느 쪽이든 버전 지시자나 문서 시작 표시는 붙지 않습니다.

id 열을 키로 하는 매핑으로 만들 수 있나요?

바로는 안 됩니다. 출력은 항상 레코드마다 매핑 하나인 목록입니다. 짧은 스크립트나 수작업으로 id를 키로 옮기세요.

셀 안의 쉼표와 줄바꿈도 처리되나요?

네. RFC 4180을 따르므로 따옴표로 감싼 셀에 구분자, 두 번 쓴 따옴표, 줄바꿈이 들어갈 수 있습니다. 여러 줄 값은 모든 줄을 지키는 리터럴 블록 스칼라로 쓰입니다.

CSV가 업로드되나요?

아니요. 입력한 내용은 브라우저 안에서 처리되며 서버로 전송되지 않습니다. 호스트 이름이나 내부 설정값이 든 설정 시트를 다룰 때 중요한 점입니다.

마지막 업데이트: