Skip to content

YAML to JSON 변환기 (YAML to JSON Converter)

YAML을 붙여넣으면 즉시 JSON으로 변환됩니다. K8s 매니페스트, OpenAPI 명세, Helm values 지원, 앵커/별칭 완전 확장, 100% 개인 정보 보호.

트래킹 없음 브라우저 실행 무료
옵션 · 2칸
들여쓰기
0
JSON 출력
0
YAML 1.2 명세 준수, 앵커/별칭 확장, 다중 문서 처리 정확성 검토 완료 — Go Tools Engineering Team · May 4, 2026

JSON이란 무엇인가요?

JSON(JavaScript Object Notation)은 RFC 8259 및 ECMA-404로 표준화된 경량의 텍스트 기반 데이터 교환 형식입니다. 문자열, 숫자, 불리언, null, 배열, 객체 등 여섯 가지 데이터 타입을 지원하며 엄격하고 최소한의 구문으로 거의 모든 프로그래밍 언어, API, 도구체인이 네이티브로 파싱할 수 있습니다. YAML은 사람이 작성하는 설정 파일(Kubernetes 매니페스트, GitHub Actions, Ansible 플레이북, Helm values)에 선호되는 형식이지만, JSON은 API, 자동화 스크립트, 프로그래밍 방식의 데이터 처리를 위한 범용 기계 가독 형식입니다.

따라서 YAML을 JSON으로 변환하는 것은 DevOps와 백엔드 개발에서 가장 일반적인 작업 중 하나입니다 — YAML 설정 파일이 있지만 REST API 입력, jq 쿼리, 자바스크립트 도구 처리를 위해 JSON이 필요합니다.

일반적인 온라인 변환기와 비교할 때 이 도구에는 네 가지 중요한 차별점이 있습니다:

**1. 다중 문서 YAML 처리.** YAML은 ---(문서 시작 마커)로 구분된 단일 스트림에서 여러 문서를 지원합니다. 일부 Kubernetes 매니페스트와 Ansible 플레이북을 포함한 많은 실제 YAML 파일에 여러 문서가 포함되어 있습니다. 이 도구는 { version: '1.2', merge: true } 옵션과 함께 eemeli/yaml 라이브러리의 parseAllDocuments를 사용하여 첫 번째 문서를 JSON으로 반환합니다. 모든 문서가 필요하다면 ---로 분할하여 각각 변환하세요.

**2. 앵커와 별칭 확장.** YAML 앵커(&name)와 별칭(*name)은 데이터 블록의 재사용을 허용합니다 — JSON에 동등한 개념이 없는 강력한 YAML 기능입니다. 이 도구는 모든 앵커와 별칭(병합 키: <<: *anchor 포함)을 완전히 확장하여 JSON 출력에 참조 없이 완전하고 자기 포함된 데이터가 포함되도록 합니다. JSON에는 참조 구문이 없으므로 이것이 항상 올바른 변환입니다. 역방향은 JSON to YAML 변환기를 참조하세요.

**3. 주석 손실 — 투명한 안내.** YAML은 # 주석을 지원하며 Kubernetes 매니페스트, Helm values, Ansible 플레이북에서 의도를 문서화하는 데 자주 사용됩니다. JSON에는 주석 구문이 없으므로 변환 중에 주석이 영구적으로 손실됩니다. 이것은 버그가 아닌 형식 간의 근본적인 차이입니다. 이 도구는 이를 명시적으로 안내하여 예상되는 동작을 알 수 있도록 합니다. YAML Norway 문제와 JSON-YAML 차이점에서 형식 트레이드오프에 대한 자세한 정보를 확인하세요.

**4. 100% 브라우저 기반 개인 정보 보호.** Kubernetes 시크릿, 데이터베이스 자격 증명, 비밀번호가 포함된 Helm values, 내부 서비스 설정이 포함되는 YAML 데이터가 브라우저를 벗어나지 않습니다. 어떤 서버로도 데이터가 전송되지 않습니다. 브라우저의 네트워크 탭에서 확인할 수 있습니다. JSON으로 변환한 후 사용하기 전에 JSON 포맷터로 결과를 검증하고 포매팅할 수 있습니다.

YAML의 풍부함(주석, 앵커, 다중 문서 지원, 블록 스칼라)은 가독성과 문서화가 중요한 사람이 작성하는 설정 파일에 탁월합니다. JSON의 엄격성과 보편성은 기계가 주요 소비자일 때 더 나은 선택입니다. 이 변환기는 두 세계를 연결합니다: 사람이 유지 관리하기 좋게 YAML로 설정을 유지하고, 기계 가독 교환 형식이 필요할 때 JSON으로 변환하세요.

// Convert YAML to JSON in Node.js using the eemeli/yaml library
import { parseAllDocuments } from 'yaml';

const yamlString = `apiVersion: apps/v1
kind: Deployment`;

// parseAllDocuments handles multi-document YAML (--- separator)
// version: '1.2' ensures yes/no are strings, not booleans
// merge: true expands anchor/alias merge keys (<<: *anchor)
const docs = parseAllDocuments(yamlString, { version: '1.2', merge: true });

// Take the first document (skip additional --- blocks)
const json = JSON.stringify(docs[0].toJSON(), null, 2);

console.log(json);
// {
//   "apiVersion": "apps/v1",
//   "kind": "Deployment"
// }

주요 기능

실시간 변환

YAML을 입력하거나 붙여넣으면 JSON 출력이 즉시 업데이트됩니다 — 변환 버튼이 필요 없습니다. 대용량 입력(>200KB)은 자동으로 수동 모드로 전환하여 브라우저 응답성을 유지합니다.

2칸 또는 4칸 들여쓰기

JSON 출력의 들여쓰기를 2칸과 4칸 사이에서 전환합니다. 2칸은 대부분의 도구와 API의 표준이고, 4칸은 일부 스타일 가이드와 편집기 기본값과 일치합니다.

다중 문서 지원

여러 --- 구분 문서가 포함된 YAML 스트림을 처리합니다. 첫 번째 문서가 JSON으로 변환되어 반환됩니다. Kubernetes 다중 리소스 파일과 Ansible 플레이북에 유용합니다.

앵커와 별칭 확장

YAML 앵커(&name)와 별칭(*name)을 병합 키(<<: *anchor)를 포함하여 완전히 확장합니다. JSON 출력에는 참조 없는 완전한 역참조 데이터가 포함됩니다 — JSON에 동등한 개념이 없으므로 이것이 올바른 동작입니다.

100% 브라우저 기반 개인 정보 보호

모든 변환은 자바스크립트를 사용하여 브라우저에서 로컬로 실행됩니다. 시크릿, 자격 증명, 프로덕션 설정을 포함한 YAML 데이터는 어떤 서버로도 전송되지 않고, 기록되지 않으며, 저장되지 않습니다.

K8s, Compose, Helm, OpenAPI 파일 지원

실제 DevOps 사용 사례에 최적화: Kubernetes 매니페스트, Docker Compose 스택, Helm 차트 values, GitHub Actions 워크플로, OpenAPI 명세, Ansible 플레이북 — 각각에 대한 예시가 제공됩니다.

예시

Kubernetes 매니페스트

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app
  namespace: production
  labels:
    app: my-app
    version: 1.0.0
spec:
  replicas: 3
  selector:
    matchLabels:
      app: my-app
  template:
    metadata:
      labels:
        app: my-app
    spec:
      containers:
        - name: my-app
          image: my-app:1.0.0
          ports:
            - containerPort: 8080
          resources:
            requests:
              memory: 64Mi
              cpu: 250m
            limits:
              memory: 128Mi
              cpu: 500m

Kubernetes Deployment 매니페스트를 YAML에서 JSON으로 변환합니다 — jq 쿼리, Kubernetes API 전송, Terraform 및 CI/CD 파이프라인 입력에 유용합니다

Docker Compose

version: '3.9'
services:
  web:
    image: nginx:1.25-alpine
    ports:
      - '80:80'
      - '443:443'
    environment:
      NGINX_HOST: example.com
      NGINX_PORT: '80'
    depends_on:
      - db
    restart: unless-stopped
  db:
    image: postgres:16-alpine
    environment:
      POSTGRES_DB: mydb
      POSTGRES_USER: admin
      POSTGRES_PASSWORD: secret
    volumes:
      - pgdata:/var/lib/postgresql/data
volumes:
  pgdata: {}

Docker Compose YAML을 JSON으로 변환하여 프로그래밍 방식의 조작, 자동화 스크립트, 자바스크립트 도구 처리에 사용합니다

GitHub Actions 워크플로

name: CI
on:
  push:
    branches:
      - main
  pull_request:
    branches:
      - main
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Set up Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: pnpm
      - name: Install dependencies
        run: pnpm install --frozen-lockfile
      - name: Run tests
        run: pnpm test

GitHub Actions 워크플로 YAML을 JSON으로 파싱하여 특정 필드를 쿼리하거나 구조를 검증하거나 JSON을 사용하는 API와 통합합니다

OpenAPI 명세

openapi: 3.0.3
info:
  title: User API
  version: 1.0.0
  description: Manage application users
paths:
  /users:
    get:
      summary: List users
      operationId: listUsers
      parameters:
        - name: limit
          in: query
          schema:
            type: integer
            default: 20
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/User'
  /users/{id}:
    get:
      summary: Get user
      operationId: getUser
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: string
      responses:
        '200':
          description: Success
components:
  schemas:
    User:
      type: object
      properties:
        id:
          type: string
        name:
          type: string
        email:
          type: string
          format: email

OpenAPI 3.0 명세를 YAML에서 JSON으로 변환하여 클라이언트 코드 생성기, API 테스트 도구, 프로그래밍 방식의 스키마 검사에 사용합니다

Helm values.yaml

replicaCount: 3
image:
  repository: my-app
  tag: 1.0.0
  pullPolicy: IfNotPresent
service:
  type: ClusterIP
  port: 80
ingress:
  enabled: true
  className: nginx
  hosts:
    - host: my-app.example.com
      paths:
        - path: /
          pathType: Prefix
resources:
  requests:
    memory: 64Mi
    cpu: 250m
  limits:
    memory: 128Mi
    cpu: 500m
autoscaling:
  enabled: false
  minReplicas: 1
  maxReplicas: 10
  targetCPUUtilizationPercentage: 80

Helm 차트의 values.yaml을 JSON으로 변환하여 분석, 보고서 생성, JSON 설정을 기대하는 도구에 입력합니다

Ansible 플레이북

- name: Configure web servers
  hosts: webservers
  become: true
  vars:
    http_port: 80
    max_clients: 200
  tasks:
    - name: Ensure nginx is installed
      ansible.builtin.package:
        name: nginx
        state: present
    - name: Start nginx service
      ansible.builtin.service:
        name: nginx
        state: started
        enabled: true
    - name: Copy nginx config
      ansible.builtin.template:
        src: nginx.conf.j2
        dest: /etc/nginx/nginx.conf
        owner: root
        group: root
        mode: '0644'
      notify:
        - Restart nginx
  handlers:
    - name: Restart nginx
      ansible.builtin.service:
        name: nginx
        state: restarted

Ansible 플레이북 YAML을 JSON으로 파싱하여 태스크 구조 검사, 설정 감사, 보고 파이프라인 통합에 사용합니다

사용 방법

  1. 1

    YAML 데이터 붙여넣기

    위 입력 필드에 YAML 데이터를 입력하거나 붙여넣으세요. '예시 불러오기'를 클릭하여 Kubernetes Deployment, Docker Compose 파일, Helm values.yaml 같은 샘플을 사용해 볼 수도 있습니다.

  2. 2

    실시간 JSON 출력 확인

    JSON이 출력 패널에 즉시 표시됩니다. 대상 도구의 요구 사항에 맞게 옵션(들여쓰기 2칸 또는 4칸)을 조정하세요.

  3. 3

    복사 또는 다운로드

    복사를 클릭하여 JSON을 클립보드에 저장하거나 다운로드를 클릭하여 .json 파일로 저장하면 jq, API 호출, 기타 다운스트림 도구에서 바로 사용할 수 있습니다.

일반적인 YAML 변환 함정

탭 들여쓰기

YAML 명세는 들여쓰기에 탭 문자 사용을 금지합니다 — 공백만 허용됩니다. YAML이 탭을 사용하는 편집기에서 작성되거나 복사된 경우 파서가 오류를 발생시킵니다. 모든 탭 들여쓰기를 공백(레벨당 2칸 또는 4칸)으로 대체하세요.

✗ 오류
services:
	web:
		image: nginx:1.25-alpine
✓ 정상
services:
  web:
    image: nginx:1.25-alpine

들여쓰기 불일치

YAML은 일관된 들여쓰기를 사용하여 중첩을 정의합니다. 같은 블록 내에서 다른 수의 공백(예: 한 레벨은 2칸, 다른 레벨은 3칸)을 혼용하면 파싱 오류가 발생합니다. 문서 전체에서 각 레벨은 동일한 수의 공백으로 들여써야 합니다.

✗ 오류
metadata:
  name: my-app
   namespace: production
✓ 정상
metadata:
  name: my-app
  namespace: production

인용되지 않은 특수 문자

콜론(:), 샵(#), &, *, {, }, [, ], |, >, !, @ 등의 문자는 YAML에서 특별한 의미를 가집니다. 이 문자들을 값에 인용 없이 사용하면 파싱 오류나 예상치 못한 동작이 발생할 수 있습니다. 이러한 문자를 포함하는 값을 작은따옴표나 큰따옴표로 감싸세요.

✗ 오류
url: http://example.com:8080/api
tag: #latest
✓ 정상
url: 'http://example.com:8080/api'
tag: '#latest'

앵커 순환 참조

YAML은 기술적으로 자기 자신을 참조하는 앵커(순환 참조)를 허용하지만 실제로는 드뭅니다. 순환 앵커는 파서가 무한 확장 루프에 빠지게 합니다. eemeli/yaml 라이브러리는 중단되지 않고 순환 앵커를 감지하여 오류를 발생시킵니다.

✗ 오류
# Circular anchor (rare but possible)
base: &base
  parent: *base
✓ 정상
# Use explicit fields instead of circular references
base:
  parent: null

다중 문서 혼동

여러 --- 구분자가 있는 YAML 파일에는 여러 문서가 포함됩니다. 이 도구는 첫 번째 문서만 JSON으로 반환합니다. 두 번째나 세 번째 --- 이후의 데이터를 기대했다면 출력에 나타나지 않습니다. 모든 문서가 필요하다면 YAML을 ---로 분할하여 각 섹션을 개별적으로 변환하세요.

✗ 오류
# Only the first document is converted
apiVersion: v1
kind: ConfigMap
---
apiVersion: v1
kind: Secret
✓ 정상
# Convert each document separately
apiVersion: v1
kind: ConfigMap

주석 손실

YAML은 # 주석을 지원하지만 JSON은 그렇지 않습니다. 모든 YAML 주석은 변환 중에 영구적으로 손실됩니다 — 이것은 도구의 한계가 아닌 형식 간의 근본적인 차이입니다. JSON에 주석 정보를 유지해야 한다면 _comment 키나 메타데이터 객체 같은 전용 필드로 인코딩하세요.

✗ 오류
# This comment will be lost
replicas: 3 # scale this up for production
✓ 정상
replicas: 3
_comment: scale this up for production

주요 사용 사례

Kubernetes 매니페스트 분석
Kubernetes YAML 매니페스트를 JSON으로 변환하여 jq로 쿼리하거나, Kubernetes REST API로 전송하거나, Terraform 데이터 소스에서 처리하거나, JSON을 기대하는 CI/CD 파이프라인에 입력합니다.
Docker Compose에서 자바스크립트 도구로
Docker Compose YAML을 JSON으로 파싱하여 자동화 스크립트, 의존성 그래프, Node.js 도구에서 사용할 서비스 정의, 이미지 이름, 포트 매핑, 환경 변수를 추출합니다.
GitHub Actions API 통합
GitHub Actions 워크플로 YAML을 JSON으로 변환하여 구조를 프로그래밍 방식으로 검증하거나, job 및 step 정의를 추출하거나, JSON 워크플로 명세를 허용하는 CI/CD API와 통합합니다.
OpenAPI에서 클라이언트 코드 생성으로
많은 코드 생성기(openapi-generator, swagger-codegen, oazapfts)는 두 형식의 OpenAPI 명세를 허용합니다. 도구가 특히 JSON 입력을 요구하거나 JSON Schema 검증기로 검사해야 할 때 YAML 명세를 JSON으로 변환하세요.
Helm Values 분석
Helm 차트 values.yaml을 JSON으로 변환하여 보고서를 생성하거나, 환경 간 values를 비교하거나, 정책 적용 도구에 입력하거나, JSON 설정을 기대하는 자동화로 처리합니다.
JSON 기반 도구로 설정 마이그레이션
애플리케이션 설정을 인프라 도구에서 일반적인 YAML에서 자바스크립트 환경, REST API, AWS AppConfig, Azure App Configuration, JSON으로 설정을 저장하는 모든 시스템용 JSON으로 마이그레이션합니다.

기술 세부 정보

merge:true로 parseAllDocuments를 통한 YAML 1.2 명세
YAML은 eemeli/yaml 라이브러리(v2.8+, CVE 안전)를 통해 { version: '1.2', merge: true }로 parseAllDocuments를 사용하여 파싱됩니다. YAML 1.2 스키마는 yes와 no 같은 단순 문자열이 현재 YAML 명세와 일치하여 불리언이 아닌 문자열로 처리되도록 합니다. merge: true 옵션은 앵커/별칭 병합 키(<<: *anchor)를 완전히 확장하여 JSON 출력에 완전한 역참조 데이터가 포함되도록 합니다. 다중 문서 YAML(--- 구분)은 첫 번째 문서를 반환합니다.
라이브러리를 통한 앵커와 별칭 확장
eemeli/yaml 라이브러리는 순환 참조 감지를 포함하여 앵커(&name)와 별칭(*name) 확장을 안전하게 처리합니다. 모든 참조된 데이터 블록(병합 키 확장 포함)이 JSON 출력에 완전히 인라인됩니다. JSON에는 참조나 앵커 개념이 없으므로 이것이 올바른 변환입니다. 라이브러리의 안전한 확장은 잘못된 형식의 YAML로 인한 무한 루프를 방지합니다.
브라우저 기반 — 업로드 없음, 서버 없음
모든 처리는 브라우저의 자바스크립트 엔진에서 완전히 실행됩니다. 어떤 시점에서도 네트워크를 통해 데이터가 전송되지 않습니다. 200KB보다 큰 입력은 자동으로 실시간 모드에서 수동 모드(명시적인 변환 클릭 필요)로 전환되어 브라우저 응답성을 유지하고 무거운 직렬화 중 메인 스레드 블로킹을 방지합니다.

모범 사례

깔끔한 변환을 위해 YAML 1.2 호환 구문 사용
YAML 1.2 관례를 사용하여 YAML을 작성하세요 — 모호함을 피하기 위해 yes, no, on, off, y, n 문자열 값을 명시적으로 인용하세요(예: enabled: 'yes'). 이 도구는 YAML 1.2 스키마로 파싱(이것들은 문자열)하지만 파이프라인의 구버전 도구는 YAML 1.1을 사용(불리언으로 처리)할 수 있습니다. 소스 YAML에서 명시적으로 인용하는 것이 모든 파서에서 가장 안전한 방법입니다.
정밀도 유지를 위해 YAML에서 큰 숫자 인용
자바스크립트는 2^53 - 1(9007199254740991)보다 큰 정수를 정확히 표현할 수 없습니다. Kubernetes의 resourceVersion과 uid 같은 필드는 서버에서 int64이며 이 한계를 초과할 수 있습니다. YAML 소스에서 이 값들을 인용하면(resourceVersion: '9007199254740993') 파서가 문자열로 처리하여 JSON 출력에서 문자열 값으로 정확히 유지됩니다.
API에서 사용하기 전 JSON 출력 유효성 검사
YAML을 JSON으로 변환한 후 API로 전송하거나, 저장하거나, 프로그래밍 방식으로 처리하기 전에 결과를 검증하세요. JSON 포맷터를 사용하여 구조가 올바른지 확인하세요. 이것은 Kubernetes API 호출, OpenAPI 명세, JSON Schema 검증 페이로드에서 특히 중요하며 구조 오류는 변환 단계가 아닌 API 계층에서 혼란스러운 거부를 유발합니다.
변환 전 다중 문서 YAML 분리
YAML 파일에 여러 --- 구분 문서가 있고 모두 JSON으로 변환해야 한다면 먼저 파일을 ---로 분할한 후 각 문서를 개별적으로 변환하세요. 이 도구는 첫 번째 문서만 처리합니다. 간단한 방법: 편집기에서 '\n---\n'으로 분할하거나 awk를 사용한 후 각 섹션을 개별적으로 붙여넣으세요.
다운스트림 JSON 처리에 jq 사용
YAML에서 JSON을 얻은 후 jq는 명령줄에서 가장 빠르게 쿼리하고 변환하는 방법입니다. 이 도구와 jq를 조합하세요: 온라인으로 YAML을 변환하고, JSON을 붙여넣은 후, jq '.spec.replicas' 또는 jq '.services | keys'로 정확히 필요한 내용을 추출합니다. 많은 파일을 일괄 처리하려면 -o json 플래그와 함께 yq CLI를 직접 사용하세요.

자주 묻는 질문

온라인에서 YAML을 JSON으로 어떻게 변환하나요?
위 입력 필드에 YAML을 붙여넣으세요. 버튼을 클릭하지 않아도 브라우저에서 즉시 JSON으로 변환됩니다. 옵션 패널에서 출력 들여쓰기(2칸 또는 4칸)를 조정할 수 있습니다. 출력 영역에 JSON이 표시되면 복사를 클릭해 클립보드에 저장하거나 다운로드를 클릭해 .json 파일로 저장하세요. 모든 처리는 로컬에서 실행됩니다 — 데이터가 기기를 벗어나지 않습니다.
다중 문서 YAML(--- 구분자)은 어떻게 처리하나요?
YAML은 단일 스트림에서 ---(문서 시작 마커)로 구분된 여러 문서를 지원합니다. 다중 문서 YAML 문자열을 붙여넣으면 이 도구는 eemeli/yaml 라이브러리의 parseAllDocuments를 사용하여 첫 번째 문서를 JSON으로 반환합니다. 첫 번째 이후의 추가 문서는 무시됩니다. 모든 문서를 처리해야 한다면 YAML을 ---로 분할하여 각 섹션을 개별적으로 변환하세요.
YAML 앵커와 별칭(&anchor와 *alias)은 어떻게 처리되나요?
YAML 앵커(&name)는 재사용 가능한 블록을 정의하고 별칭(*name)은 이를 참조합니다. 이 도구는 파싱 중에 모든 앵커와 별칭을 완전히 확장하므로 출력 JSON에 완전한 역참조 데이터가 포함됩니다. 예를 들어 YAML 앵커가 리소스 제한 집합을 정의하고 여러 서비스가 병합 키(<<: *anchor)로 참조하면 JSON 출력에 각 서비스의 모든 필드가 명시적으로 인라인됩니다. JSON에는 참조 개념이 없으므로 이것이 올바른 동작입니다. eemeli/yaml 라이브러리는 순환 참조 감지를 포함하여 앵커/별칭 확장을 안전하게 처리합니다.
YAML 주석이 JSON 출력에 유지되나요?
아니요. JSON은 어떤 형태의 주석도 지원하지 않습니다 — #, //, /* */ 모두 해당됩니다. YAML을 JSON으로 변환하면 모든 주석이 영구적으로 손실됩니다. 이것은 도구의 한계가 아닌 형식 간의 근본적인 차이입니다. 주석 정보를 유지해야 한다면 전용 JSON 필드(_comment 키 등)로 인코딩하거나 YAML 소스를 주석이 포함된 권위 있는 버전으로 유지하세요.
Kubernetes 매니페스트와 함께 이 도구를 어떻게 사용하나요?
Kubernetes YAML 매니페스트(.yaml 파일, kubectl get -o yaml 출력, Helm 템플릿)를 입력 필드에 붙여넣으세요. JSON 출력은 jq로 쿼리하거나, Kubernetes REST API로 직접 전송하거나, Terraform 데이터 소스에서 사용하거나, JSON을 기대하는 도구로 처리할 수 있습니다. 일반적인 워크플로는 YAML 매니페스트를 JSON으로 변환하여 특정 필드를 추출하는 것입니다 — 예: JSON 출력에서 jq '.spec.replicas'를 실행하여 배포 전반의 복제본 수를 확인합니다.
Docker Compose 파일과 함께 이 도구를 어떻게 사용하나요?
Docker Compose 파일은 관례적으로 YAML 형식입니다. JSON으로 변환하면 자바스크립트 도구, jq 스크립트, JSON을 읽는 시스템으로 서비스 정의를 처리할 수 있습니다. 모든 이미지 이름을 추출하여 의존성 목록을 만들거나, compose 파일에서 보고서를 생성하거나, JSON을 허용하는 CI/CD 오케스트레이션 도구에 Compose 설정을 입력하는 것이 일반적인 사용 사례입니다.
YAML 1.1과 YAML 1.2의 차이는 무엇이며, 이 도구는 어느 버전을 사용하나요?
YAML 1.1(구버전 명세, PyYAML, Ansible, Ruby Psych, 많은 Kubernetes 도구에서 여전히 사용)은 단순 문자열 yes, no, on, off, y, n을 불리언 true/false 값으로 처리합니다. 이것이 ISO 국가 코드 'NO'가 false로 파싱된 악명 높은 Norway 문제를 일으켰습니다. YAML 1.2(2009년 발표된 현재 명세)에서 이 문제가 수정되었습니다: 모든 단순 문자열은 문자열이고 true/false만 불리언입니다. 이 도구는 YAML 1.2 스키마를 사용하여 파싱하므로 YAML 입력의 yes와 no는 JSON 출력에서 불리언 true/false가 아닌 문자열 'yes'와 'no'로 유지됩니다. 이것이 올바른 현대적 동작입니다. YAML이 원래 YAML 1.1 파서용으로 작성되었고 yes/no를 불리언으로 사용했다면 JSON 출력에서는 문자열로 처리됩니다.
YAML이 탭 들여쓰기를 금지하는 이유는 무엇인가요?
YAML 명세는 들여쓰기에 탭 문자(\t) 사용을 명시적으로 금지합니다 — 공백만 허용됩니다. 이것은 편집기마다 탭 너비가 달라 생기는 모호함을 방지하기 위한 의도적인 설계 결정입니다. YAML이 탭 들여쓰기를 사용하면(공백을 탭으로 자동 변환하는 텍스트 편집기에서 복사할 때 자주 발생) YAML 파서가 파싱 오류를 발생시킵니다. 해결 방법은 모든 탭 들여쓰기를 공백으로 대체하는 것입니다. 대부분의 코드 편집기에는 탭을 공백으로 변환하는 설정이 있습니다(예: Vim의 'Expand Tabs', VS Code의 '공백 삽입'). YAML을 붙여넣었을 때 'tab'이나 'indentation'에 관한 파싱 오류가 발생하면 거의 항상 이것이 원인입니다.
YAML을 JSON으로 변환할 때 큰 숫자의 정밀도가 손실될 수 있나요?
그렇습니다. 이것은 브라우저 기반의 모든 도구에 영향을 미치는 근본적인 자바스크립트 한계입니다. 자바스크립트의 IEEE 754 배정밀도 부동소수점은 2^53 - 1(9007199254740991) 이하의 정수만 정확히 표현할 수 있습니다. 이보다 큰 YAML 숫자(예: Kubernetes int64 필드 resourceVersion)는 YAML 파서가 자바스크립트의 number 타입으로 전달할 때 자동으로 반올림됩니다. 예를 들어 YAML 값 9007199254740993은 JSON 출력에서 9007199254740992가 됩니다. 안전한 해결 방법은 YAML 소스에서 큰 숫자를 인용하여(resourceVersion: '9007199254740993') 파서가 문자열로 처리하게 하는 것입니다 — JSON에서 문자열 값으로 정확히 유지됩니다.
명령줄에서 YAML을 JSON으로 변환하려면 어떻게 하나요?
가장 널리 사용되는 방법은 yq(Mike Farah 버전)와 jq를 사용하는 것입니다. yq 설치: macOS는 brew install yq, Linux는 github.com/mikefarah/yq/releases에서 다운로드하세요. 그런 다음 yq -o json input.yaml로 YAML 파일을 JSON으로 변환하거나 cat input.yaml | yq -o json -로 표준 입력에서 파이프합니다. 예쁘게 출력: yq -o json input.yaml | jq . — jq로 파이프하여 일관된 포매팅을 얻습니다. Python 한 줄 명령: python3 -c "import sys, json, yaml; print(json.dumps(yaml.safe_load(sys.stdin), indent=2))" < input.yaml. 다중 문서 YAML은 yq: yq -o json '.[0]' input.yaml로 첫 번째 문서만 JSON으로 추출합니다.
이 도구를 사용할 때 YAML 데이터가 서버로 전송되나요?
아니요. 모든 변환은 자바스크립트를 사용하여 브라우저에서 완전히 처리됩니다. YAML 데이터는 네트워크를 통해 전송되지 않고, 어떤 서버에도 저장되지 않으며, 기록되거나 분석되지 않습니다. 따라서 Kubernetes 시크릿, 데이터베이스 자격 증명, 내부 Helm values, 설정 파일의 API 키, 기타 민감한 인프라 설정과 함께 안전하게 사용할 수 있습니다. 브라우저의 네트워크 탭을 열면 확인할 수 있습니다 — YAML을 붙여넣어도 아무 요청도 발생하지 않습니다.
YAML 입력에 파일 크기 제한이 있나요?
파일 크기 제한은 없지만, 200KB 이상의 대용량 입력은 자동으로 실시간 변환에서 수동 모드로 전환됩니다. 수동 모드에서는 변환 버튼이 나타나며 클릭할 때만 변환이 실행됩니다 — 이렇게 하면 키를 입력할 때마다 브라우저 메인 스레드가 블로킹되는 것을 방지합니다. 매우 큰 YAML 파일(여러 메가바이트)의 경우 더 나은 성능을 위해 yq 같은 명령줄 도구 사용을 고려하세요. 이 도구는 전체 Kubernetes 네임스페이스 내보내기, 대용량 OpenAPI 명세, 멀티 서비스 Helm 차트 values 파일 같은 실제 페이로드를 효율적으로 처리합니다.

Base64 디코더 · 인코더 (Base64 Decoder & Encoder)

인코딩 & 포매팅

Base64를 온라인에서 무료로 인코딩하고 디코딩합니다. UTF-8과 이모지를 완벽 지원하는 실시간 변환으로, 100% 브라우저에서 처리되어 회원 가입이 필요 없습니다.

JSON 포맷터 (JSON Formatter)

인코딩 & 포매팅

브라우저에서 JSON을 즉시 포매팅하고 유효성 검사를 수행합니다. 온라인 도구로 구문 검사, 오류 감지, 최소화, 복사를 지원하며 데이터는 서버로 전송되지 않습니다.

JSON to YAML 변환기 (JSON to YAML Converter)

인코딩 & 포매팅

JSON을 붙여넣으면 즉시 YAML로 변환됩니다. 브라우저에서 실시간 변환, K8s/Compose 지원, 2/4칸 들여쓰기, Norway 안전 자동 인용, 100% 개인 정보 보호.

URL 인코더 · 디코더 (URL Encoder & Decoder)

인코딩 & 포매팅

URL을 실시간 인코딩·디코딩하고 내장 파서로 구조를 분석합니다. encodeURI와 encodeURIComponent 모드를 온라인에서 지원하며 데이터는 브라우저를 떠나지 않습니다.

진법 변환기 (Number Base Converter)

변환 도구

2진수, 16진수, 10진수, 8진수 및 임의 진법(2-36)을 즉시 변환합니다. 온라인에서 무료로 사용할 수 있으며 모든 처리는 브라우저에서 이루어집니다.

이미지 압축기 · JPEG, PNG, WebP 온라인 압축

변환 도구

JPEG, PNG, WebP 이미지를 온라인에서 최대 80% 압축합니다. 브라우저 안에서만 처리되며 업로드 없이 20장 일괄 처리, 품질 조절, 전후 비교를 무료로 지원합니다.