Skip to content

YAMLJSON

YAML에서 JSON

YAML을 JSON으로 온라인 변환 — 브라우저에서 즉시.

YAML

YAML을 여기에 붙여넣거나 파일을 페이지에 놓으세요

JSON

입력하면 JSON이 여기에 표시됩니다

무료 · 무제한 · 가입 불필요 · 어떤 것도 업로드되지 않습니다 — 모든 변환은 사용자의 기기에서 실행됩니다.

이 무료 YAML → JSON 변환기에 대하여

왼쪽 창에 YAML을 붙여넣으면 입력하는 동안 오른쪽에 JSON이 나타납니다. 변환 버튼도, 업로드도, 서버 왕복도 없습니다. 변환은 무료이고 무제한이며 계정이 필요 없습니다. 파서가 페이지 안에 포함되어 있으므로 사용량 측정도 없고, 파일 크기 제한은 기기의 메모리뿐입니다. 출력은 원하는 대로 조정할 수 있습니다: 2칸 공백, 4칸 공백, 압축, 키 정렬, 그리고 Kubernetes의 다중 문서 스트림은 JSON 배열 또는 JSON Lines로 출력됩니다.

노력은 오류 처리에 쏟았습니다. 파싱 오류에는 줄과 열, 편집기 내 표시, 쉬운 설명, 구체적인 해결책이 함께 제공됩니다. 닫히지 않은 괄호는 닫히지 않은 괄호로 보고되지, 40줄 아래의 엉뚱한 들여쓰기 오류로 보고되지 않습니다. YAML 1.1과 YAML 1.2 사이에서 의미가 바뀌는 모든 값 — Norway 문제와 그 유사 사례 — 은 각 버전이 어떻게 해석하는지와 함께 표시됩니다.

JSON이 아니라 정돈된 YAML이 목표라면 YAML 포매터가 문서를 제자리에서 다시 정렬하고 모든 주석을 보존합니다. 반대 방향은 JSON → YAML 변환기가 한 번의 클릭 거리에 있습니다. 변환이 브라우저 탭이 아니라 스크립트에 들어가야 한다면 코드와 명령줄 가이드에서 yq, Python, Node.js, Go를 다룹니다.

다른 도구보다 나은 이유

대부분의 YAML 변환기는 파서를 얇게 감싼 똑같은 도구입니다. 차이는 여기서 드러납니다.

진짜 문제를 짚어 주는 오류

대부분의 변환기는 닫히지 않은 괄호에 대해 "들여쓰기 부족"이라고 답하고 엉뚱한 줄을 가리킵니다. 이 도구는 어떤 구분자가 닫히지 않았는지, 어디서 열렸는지, 어떻게 고칠지를 해당 줄의 표시와 함께 알려 줍니다.

YAML 1.1 경고

country: no는 YAML 1.2에서는 문자열 "no"이고 YAML 1.1에서는 불리언 false입니다. 버전 간에 의미가 바뀌는 문서 내 모든 값은 각 버전이 만들어 내는 값과 함께 표시됩니다.

다중 문서, 제대로

Kubernetes와 Helm의 출력은 거의 항상 ---로 구분됩니다. JSON 배열이나 JSON Lines로 변환하고, 발견된 문서 수도 알려 줍니다.

병합 키 해석

Docker Compose, GitLab CI, Ansible은 <<: *defaults에 의존합니다. 병합 키는 기본적으로 해석되므로 문자 그대로의 "<<" 키 대신 기대한 값을 얻습니다.

브라우저 밖으로 나가지 않음

데이터를 보낼 변환 엔드포인트가 없습니다. 네트워크 탭을 열고 지켜보거나 인터넷을 끊어 보세요 — 페이지는 그대로 변환을 계속합니다.

계정 없음, 제한 없음

가입 장벽도, 변환 횟수 측정도, "공유하면 잠금 해제"도 없습니다. 붙여넣고 바로 사용하세요.

YAML이란?

YAML("YAML Ain’t Markup Language")은 사람이 쓰고 읽도록 설계된 데이터 형식입니다. 괄호 대신 들여쓰기, 주석, 재사용 가능한 블록을 갖추고 있습니다. 그래서 설정 파일의 표준이 되었습니다 — Kubernetes, Docker Compose, GitHub Actions, Ansible 모두 YAML입니다. 대가는 모호함입니다. 공백이 의미를 가지며, 따옴표 없는 값은 예상 밖으로 해석될 수 있습니다.

JSON이란?

JSON(JavaScript Object Notation)은 기계를 위해 만들어진 더 엄격하고 작은 형식입니다. 중괄호와 대괄호, 항상 따옴표로 감싼 문자열, 주석 없음, 모호함 없음. 이 엄격함이 변환하는 이유입니다 — 모든 언어가 JSON을 같은 방식으로 파싱하므로, JSON으로 바뀐 YAML은 API에서든 테스트 픽스처에서든 로그 파이프라인에서든 똑같이 동작합니다.

YAML과 JSON 한눈에 비교

항목YAMLJSON
주석가능, #없음
구조 표현들여쓰기중괄호와 대괄호
재사용앵커, 별칭, 병합 키없음 — 값을 반복
문자열 따옴표대개 생략 가능항상 필수
일반적 용도사람이 작성하는 설정기계 간 데이터 교환

YAML → JSON 예시

아래의 모든 예시는 위 도구에서 올바르게 변환됩니다. 사람들이 가장 자주 당황하는 경우를 다룹니다.

중첩된 매핑과 시퀀스

들여쓰기는 중첩이 되고, "-" 목록은 JSON 배열이 됩니다.

YAML

name: api
replicas: 3
ports:
  - 80
  - 443
resources:
  limits:
    memory: 512Mi

JSON

{
  "name": "api",
  "replicas": 3,
  "ports": [80, 443],
  "resources": {
    "limits": { "memory": "512Mi" }
  }
}

앵커, 별칭, 병합 키

JSON은 참조를 표현할 수 없으므로 앵커는 제자리에서 펼쳐집니다.

YAML

defaults: &defaults
  restart: always
  logging: json

web:
  <<: *defaults
  image: nginx

worker:
  <<: *defaults
  image: redis

JSON

{
  "defaults": {
    "restart": "always",
    "logging": "json"
  },
  "web": {
    "restart": "always",
    "logging": "json",
    "image": "nginx"
  },
  "worker": {
    "restart": "always",
    "logging": "json",
    "image": "redis"
  }
}

여러 문서

---로 구분된 스트림은 JSON 배열이 됩니다 — 한 줄에 객체 하나가 좋다면 JSON Lines로도 가능합니다.

YAML

apiVersion: v1
kind: Service
---
apiVersion: apps/v1
kind: Deployment

JSON

[
  { "apiVersion": "v1", "kind": "Service" },
  {
    "apiVersion": "apps/v1",
    "kind": "Deployment"
  }
]

민감한 데이터에도 안전한가요?

네, 그리고 저희 말을 믿을 필요도 없습니다. 이것은 정적 페이지입니다. 서버 측 변환 엔드포인트가 없으므로 YAML을 보낼 곳 자체가 없습니다. 파서는 탭 안에서 실행되는 JavaScript입니다.

1분 안에 확인하는 방법이 두 가지 있습니다. 브라우저 개발자 도구를 열고 네트워크 탭으로 전환한 뒤 무언가를 변환해 보세요 — 데이터를 실어 나르는 요청이 보이지 않을 것입니다. 또는 페이지를 불러온 뒤 인터넷 연결을 끊고 계속 변환해 보세요. 필요한 모든 것이 이미 로컬에 있으므로 여전히 작동합니다.

이것은 생각보다 중요합니다. 인기 있는 변환기 여럿이 "URL에서 불러오기"나 "저장 후 공유" 기능을 제공하는데, 이는 필연적으로 콘텐츠를 그들의 서버로 보냅니다. 적어도 하나는 공유 문서를 기본적으로 공개 상태로 저장합니다. 설정 파일은 호스트 이름, 내부 경로, 때로는 비밀 정보를 담고 있는 바로 그런 종류의 파일입니다.

자주 묻는 질문

이 YAML → JSON 변환기는 무료인가요?

네, 완전히 무료입니다. 가입도, 계정도, 사용 제한도, 유료 장벽도 없습니다. 이 페이지의 모든 기능을 누구나 언제든 사용할 수 있습니다.

내 데이터가 서버에 업로드되나요?

아니요. 변환은 브라우저에서 JavaScript로 실행됩니다. YAML은 어디로도 전송되지 않습니다 — 서버 측 변환 엔드포인트도, 로그도, 붙여넣은 내용에 대한 분석도 없습니다. 변환하는 동안 브라우저 네트워크 탭을 열거나 인터넷을 끊어서 확인할 수 있습니다. 페이지는 계속 작동합니다.

YAML을 JSON으로 변환하려면 무언가를 설치해야 하나요?

아니요. 이것은 온라인 YAML → JSON 변환기로, 이미 열려 있는 브라우저 탭에서 실행됩니다. 다운로드도, 명령줄 도구도, 확장 프로그램도 필요 없습니다. 모든 온라인 변환기는 변환이 실제로 어디서 일어나는지 정해야 합니다 — 대부분은 문서를 자기 서버로 보내지만, 이 도구는 사용자의 기기에 둡니다. 스크립트로 변환하고 싶다면 "코드로 YAML을 JSON으로 변환하기" 가이드에서 명령줄, Python, Node.js, Go를 다룹니다.

파일 크기 제한이 있나요?

인위적인 상한은 없습니다. 변환은 사용자의 기기에서 이루어지므로 실질적인 한계는 기기의 메모리입니다. 수 메가바이트 파일은 문제없이 변환됩니다. 매우 큰 문서는 파싱 중 페이지가 잠시 멈출 수 있습니다.

JSON을 다시 YAML로 변환할 수 있나요?

네. 두 창 사이의 전환 버튼으로 페이지를 떠나지 않고 방향을 바꾸거나, 전용 JSON → YAML 변환기로 이동하세요. 전환하면 현재 출력이 새 입력으로 넘어가므로 문서를 왕복 변환할 수 있습니다.

YAML 주석은 어떻게 되나요?

JSON에는 주석 문법이 없으므로 제거됩니다. 변환기는 조용히 버리는 대신 몇 개가 제거되었는지 알려 줍니다. 주석을 유지해야 한다면 YAML을 제자리에서 다시 정렬하며 주석을 보존하는 YAML 포매터를 사용하세요.

다중 문서 YAML은 어떻게 처리되나요?

---로 문서를 구분한 파일은 완전히 지원됩니다. 모든 문서를 담은 JSON 배열로 출력하거나, 한 줄에 압축된 JSON 객체 하나씩인 JSON Lines(NDJSON)로 출력할 수 있습니다. 후자는 kubectl과 대부분의 로그 파이프라인이 기대하는 형식입니다. Kubernetes 매니페스트와 Helm 출력은 보통 다중 문서입니다.

앵커, 별칭, 병합 키를 지원하나요?

네. JSON은 참조를 표현할 수 없으므로 앵커(&name)와 별칭(*name)은 전체 값으로 펼쳐집니다. 병합 키(<<)는 기본적으로 해석되며, Docker Compose, GitLab CI, Ansible 파일이 여기에 의존합니다. 원시 << 키를 보고 싶다면 병합 해석을 끌 수 있습니다.

YAML 1.1과 YAML 1.2의 차이는 무엇인가요?

YAML 1.2는 no, yes, on, off 같은 따옴표 없는 값을 일반 문자열로 취급합니다. YAML 1.1은 이를 불리언으로 취급하므로 country: no는 false가 됩니다. YAML 1.1은 또한 022를 8진수 18로, 12:30을 60진수 750으로 읽습니다. 이 변환기는 기본적으로 YAML 1.2를 사용하며, 문서의 값이 1.1에서 다르게 읽힐 때마다 경고합니다.

왜 내 YAML이 들여쓰기 오류로 실패하나요?

가장 흔한 두 원인은 YAML이 완전히 금지하는 탭 문자 들여쓰기와, title: foo: bar처럼 콜론을 포함한 따옴표 없는 값입니다. 닫히지 않은 괄호와 따옴표도 대부분의 파서에서 들여쓰기 오류로 나타납니다. 이 변환기는 이를 개별적으로 감지하고 닫히지 않은 구분자를 가리킵니다.

변환기가 내 YAML을 검증하나요?

네. 문서를 파싱할 수 없으면 문제에 대한 쉬운 설명, 정확한 줄과 열, 제안된 해결책, 편집기 내 해당 줄의 표시를 받습니다. 전용 YAML 검증기 페이지는 같은 엔진에 출력 창을 진단에 집중시킨 것입니다.

페이지가 오프라인에서도 작동하나요?

한 번 불러오면 작동합니다. 변환에 필요한 모든 것이 이미 브라우저에 있으므로 연결이 끊겨도 도구는 계속 작동합니다.

YAML을 JSON으로 변환하기

YAML을 JSON으로 어떻게 변환하나요?

이 페이지 상단 변환기의 왼쪽 창에 YAML을 붙여넣으세요 — 브라우저에서 입력하는 동안 온라인으로 변환되므로 누를 버튼도 없고 업로드되는 것도 없습니다. 들여쓰기를 2칸, 4칸, 탭, 압축 중에서 설정하고, 원하면 키를 정렬한 뒤, JSON을 복사하거나 .json 파일로 다운로드하세요. 문서가 파싱되지 않으면 빈 출력 창 대신 정확한 줄과 열, 쉬운 설명, 제안된 해결책을 받습니다. 반복해야 하는 변환이라면 터미널에서 yq -o=json input.yaml이 같은 일을 합니다.

YAML 파일을 JSON 파일로 어떻게 변환하나요?

업로드를 눌러 .yaml 또는 .yml 파일을 선택하거나 이 페이지 아무 곳에나 끌어다 놓은 뒤, 다운로드를 눌러 결과를 .json 파일로 저장하세요. 파일은 브라우저가 읽으며 어디로도 전송되지 않습니다. 호스트 이름, 레지스트리, 자격 증명이 담긴 설정에서는 중요한 점입니다. 셸에서는 yq -o=json input.yaml > output.json을 사용하거나, 디렉터리 전체를 한 번에 변환하려면 for f in *.yaml; do yq -o=json "$f" > "${f%.yaml}.json"; done을 사용하세요.

YAML을 JSON으로 변환할 수 있나요?

거의 모든 경우에 가능합니다. YAML 1.2는 JSON의 상위 집합으로 정의되며, 일반적인 매핑, 시퀀스, 문자열, 숫자, 불리언, null로 구성된 모든 YAML 문서에는 정확한 JSON 대응물이 있습니다. 변환에서 살아남지 못하는 것은 네 가지입니다. JSON에 문법이 없는 주석. JSON이 참조를 표현할 수 없어 전체 값으로 펼쳐지는 앵커와 별칭. 날짜나 중첩 구조처럼 JSON이 허용하지 않는 문자열이 아닌 매핑 키. 그리고 !Ref나 !GetAtt처럼 고유 도구 밖에서는 의미가 없는 사용자 정의 태그입니다. 이 변환기는 이를 조용히 버리는 대신 각각 보고합니다.

YAML은 유효한 JSON인가요?

반대입니다. JSON은 유효한 YAML이지만 YAML은 일반적으로 유효한 JSON이 아닙니다. YAML 1.2 명세는 이 언어를 JSON의 상위 집합으로 정의하므로 어떤 JSON 문서든 그대로 YAML 1.2 파서에 넘길 수 있습니다 — 위 YAML 창에 JSON을 붙여넣어도 파싱됩니다. YAML 문서가 유효한 JSON이 되는 경우는 JSON의 플로우 스타일로 모든 키와 문자열을 따옴표로 감싸고 주석이 없을 때뿐입니다. 일반적인 들여쓰기 기반 YAML은 모든 JSON 파서가 거부합니다. 이 보장은 YAML 1.2에 적용됩니다 — PyYAML과 오래된 도구가 구현하는 YAML 1.1은 JSON의 엄격한 상위 집합이 아닙니다.

YAML과 JSON 비교

YAML과 JSON의 차이는 무엇인가요?

JSON은 기계를 위한 엄격한 교환 형식이고, YAML은 같은 데이터를 표현할 수 있는 사람을 위한 설정 형식입니다. 구체적으로 YAML은 들여쓰기에서 구조를 얻지만 JSON은 중괄호와 대괄호를 사용합니다. YAML은 #로 주석을 지원하지만 JSON에는 주석이 전혀 없습니다. YAML은 앵커, 별칭, 병합 키로 블록을 재사용할 수 있지만 JSON은 모든 값을 그대로 반복합니다. YAML은 ---로 구분해 한 파일에 여러 문서를 담을 수 있지만 JSON은 정확히 하나의 값만 담습니다. 그리고 YAML은 대개 문자열을 따옴표 없이 둘 수 있는데, country: NO가 false로 읽히기 전까지는 편리합니다. YAML 1.2는 JSON의 상위 집합이므로 JSON이 표현할 수 있는 것은 YAML도 표현할 수 있습니다.

언제 YAML을, 언제 JSON을 써야 하나요?

사람이 파일을 쓰고 유지 관리하면 YAML, 기계가 쓰거나 읽으면 JSON입니다. YAML은 코드 리뷰에서 읽히는 설정에서 값어치를 합니다 — Kubernetes 매니페스트, Docker Compose, GitHub Actions 워크플로, Ansible 플레이북, OpenAPI 명세 — 주석이 값을 설명하고 앵커가 반복을 줄여 주기 때문입니다. JSON은 API 요청·응답 본문, 로그 줄, 테스트 픽스처, 대량으로 생성되거나 저장되는 모든 것에서 값어치를 합니다. 더 빨리 파싱되고, 모든 언어에 파서가 있으며, 틀리기 쉬운 의미 있는 공백도, 논쟁할 버전 모호함도 없습니다. 두 논리가 모두 해당된다면 보통의 답은 YAML로 작성하고 빌드 시 JSON으로 변환하는 것이며, 이 페이지 상단의 변환기가 바로 그 용도입니다.

가독성과 사용성 면에서 YAML과 JSON은 어떻게 비교되나요?

YAML은 읽기 쉽고 올바르게 쓰기는 어렵습니다. JSON은 장황하지만 훨씬 예측 가능합니다. 가독성에서는 중첩된 설정의 경우 YAML이 확실히 앞섭니다. 닫는 괄호 없음, 모든 키에 따옴표 없음, 잘못 놓을 쉼표 없음, 자명하지 않은 값을 설명하는 주석 있음 — 같은 Kubernetes 매니페스트가 JSON보다 YAML에서 약 40% 짧습니다. 사용성에서는 반대가 됩니다. 들여쓰기가 의미를 가지므로 잘못 들어간 탭이나 어긋난 형제 키가 문서를 망가뜨립니다. 따옴표 없는 값은 조용히 타입이 바뀝니다(yes, no, on, off, 022, 12:30). 중복 키와 YAML 1.1과 1.2의 분열은 깔끔하게 파싱되면서도 잘못 동작하는 파일을 만듭니다. 그리고 YAML 파서 오류는 진짜 문제의 위치에 대해 악명 높을 만큼 모호합니다. JSON에는 이런 실패 양상이 전혀 없으며, 그래서 실무적인 입장은 YAML로 쓰되 배포 전에 검증하거나 변환하는 것입니다.