JSON ↔ YAML 변환기란
프로그래밍에서 널리 쓰이는 JSON과 설정 파일에 자주 쓰이는 YAML을 서로 바꿔 주는 도구입니다. JSON을 사람이 읽기 편한 YAML로 정리하거나, YAML 설정을 JSON으로 변환해 코드에서 활용할 수 있습니다. 입력한 데이터는 브라우저에서만 처리되어 외부로 전송되지 않습니다.
사용법
- 상단에서 JSON → YAML 또는 YAML → JSON 모드를 선택합니다.
- 입력창에 데이터를 붙여넣으면 입력하는 즉시 결과가 표시됩니다.
- 형식이 올바르지 않으면 빨간색 오류 메시지가 나타납니다.
- 결과 오른쪽 위 복사 버튼으로 클립보드에 복사할 수 있습니다.
JSON과 YAML의 차이
둘 다 같은 데이터 구조(객체·배열·문자열·숫자·불리언·null)를 표현하지만 문법이 다릅니다. JSON은 중괄호 { }와 대괄호 [ ], 큰따옴표, 쉼표로 구조를 명시적으로 표시해 기계가 파싱하기 좋습니다. YAML은 괄호와 따옴표 대신 들여쓰기로 계층을 표현하고, 키: 값 형태와 - 로 시작하는 목록을 써서 사람이 읽고 쓰기 편합니다. 그래서 API 응답에는 JSON이, Docker·Kubernetes·CI 설정 같은 사람이 손으로 편집하는 설정 파일에는 YAML이 많이 쓰입니다.
같은 데이터를 두 형식으로 나란히 보면 이렇습니다.
// JSON
{"name":"홍길동","tags":["a","b"]}
# YAML
name: 홍길동
tags:
- a
- b
변환 규칙과 활용
JSON → YAML 변환은 큰따옴표와 괄호를 걷어내고 들여쓰기 기반의 YAML로 바꿉니다. YAML → JSON 변환은 반대로 들여쓰기 구조를 읽어 정렬된 JSON으로 만듭니다. 들여쓰기 칸 수는 2칸 또는 4칸으로 선택할 수 있습니다. 설정 파일을 코드에서 다루기 쉬운 JSON으로 바꾸거나, 반대로 장황한 JSON을 사람이 편집하기 좋은 YAML로 정리할 때 유용합니다.
주의점·팁
YAML은 들여쓰기에 탭 대신 공백을 사용해야 하며, 들여쓰기 칸이 어긋나면 파싱 오류가 납니다. 또 yes/no, on/off 같은 값이 불리언으로 해석될 수 있으니, 문자열로 남기려면 따옴표로 감싸는 편이 안전합니다. 이 도구는 단일 문서를 기준으로 변환하므로, 여러 문서가 ---로 구분된 YAML은 하나씩 나누어 변환하세요.
YAML은 사람이 손으로 편집하기 좋게 설계되어 주석(#)과 여러 줄 문자열을 지원하지만, JSON으로 변환하면 이런 표현은 순수한 데이터 값만 남습니다. 반대로 JSON을 YAML로 바꾸면 괄호와 따옴표가 사라져 훨씬 간결해 보입니다. 어느 쪽이 더 낫다기보다, 기계끼리 주고받을 때는 JSON이, 사람이 읽고 고칠 설정 파일에는 YAML이 어울린다고 이해하면 됩니다. 이 도구를 쓰면 두 형식 사이를 오가며 필요한 쪽으로 손쉽게 정리할 수 있고, 입력한 데이터는 브라우저 밖으로 나가지 않습니다.
자주 묻는 질문
입력한 데이터가 서버로 전송되나요?
아니요. 모든 변환은 브라우저 안에서만 실행되며 입력한 JSON·YAML 데이터는 서버로 전송되거나 저장되지 않습니다.
YAML 들여쓰기가 자동으로 맞춰지나요?
네. JSON을 YAML로 변환하면 표준 들여쓰기(2칸)로 정렬된 YAML이 생성됩니다. 반대로 YAML을 JSON으로 변환하면 들여쓰기 2칸의 정렬된 JSON으로 출력됩니다.
JSON과 YAML은 무엇이 다른가요?
둘 다 같은 데이터 구조를 표현하지만, JSON은 괄호와 따옴표로 구조를 명시하고 YAML은 들여쓰기로 계층을 표현합니다. JSON은 API 전송에, YAML은 사람이 편집하는 설정 파일에 주로 쓰입니다.
YAML에서 탭을 써도 되나요?
안 됩니다. YAML은 들여쓰기에 탭 대신 공백을 사용해야 하며, 탭을 쓰거나 들여쓰기 칸이 어긋나면 파싱 오류가 발생합니다.
변환 중 오류가 나면 어떻게 되나요?
입력 형식이 올바르지 않으면 결과 대신 빨간색 오류 메시지가 표시됩니다. 메시지 내용을 보고 입력을 수정하면 즉시 다시 변환됩니다.
여러 문서가 든 YAML도 변환되나요?
단일 문서 YAML을 기준으로 변환합니다. 여러 문서가 --- 로 구분된 경우 첫 번째 문서만 변환되므로, 문서를 하나씩 나누어 변환하세요.