YAML-JSON 변환
📋 포맷/변환YAML과 JSON을 서로 전환합니다. Kubernetes·Docker Compose 설정 변환에 편리합니다.
⚠️ 이 도구는 기본적인 YAML 구문만 지원합니다. 복잡한 YAML은 정확하게 변환되지 않을 수 있습니다.
🔄 YAML ↔ JSON 변환기란?
YAML과 JSON을 양방향으로 즉시 변환합니다. YAML은 들여쓰기 기반으로 사람이 읽기 쉽고, JSON은 중괄호와 따옴표로 기계 처리에 적합합니다.Docker Compose, Kubernetes, GitHub Actions 같은 설정 파일과 API 응답 분석에 바로 활용하세요.
📋 YAML vs JSON 비교
| 항목 | YAML | JSON |
|---|---|---|
| 문법 | 들여쓰기 기반 | 중괄호, 대괄호 |
| 주석 | # 지원 | 미지원 |
| 따옴표 | 선택적 | 필수 |
| 주요 용도 | 설정 파일 | API 통신 |
🔄 같은 설정, 두 가지 표기
동일한 데이터를 두 포맷으로 써보면 왜 설정 파일에 YAML이 자리 잡았는지 바로 보입니다. 중괄호와 따옴표가 사라지고 주석을 달 수 있습니다.
YAML
# 웹 서비스 설정
service:
name: web-api
port: 8080
replicas: 3
env:
- DB_HOST=db.internal
- LOG_LEVEL=info
healthcheck:
path: /health
interval: 30JSON
{
"service": {
"name": "web-api",
"port": 8080,
"replicas": 3,
"env": ["DB_HOST=db.internal", "LOG_LEVEL=info"],
"healthcheck": { "path": "/health", "interval": 30 }
}
}⚠️ YAML에서 실수하기 쉬운 지점
YAML은 읽기 쉬운 대신 눈에 안 보이는 규칙이 많습니다. 배포가 실패하는 원인의 상당수가 여기서 나옵니다.
- 탭 문자 금지 — 들여쓰기에 탭을 쓰면 파싱 자체가 실패합니다. 에디터에서 탭을 스페이스로 변환하도록 설정해두세요.
- 불린으로 둔갑하는 값들 —
yes,no,on,off가 true/false로 해석되는 경우가 있습니다. GitHub Actions에서on:키가 헷갈리는 이유이기도 합니다. - 앞자리 0이 있는 숫자 — 우편번호나 버전 번호처럼
0123형태는 8진수로 해석될 수 있습니다. 따옴표로 감싸세요. - 콜론 뒤 공백 필수 —
key:value는 통째로 문자열이 됩니다. 반드시key: value로 쓰세요. - 값 안의 콜론 —
url: http://a.com처럼 값에 콜론이 들어가면 따옴표로 감싸는 편이 안전합니다. - 주석은 변환 시 사라짐 — JSON은 주석을 지원하지 않으므로 YAML → JSON 변환에서
#주석이 모두 제거됩니다.
💡 활용 사례
- Docker Compose YAML을 JSON으로 변환하여 프로그램에서 파싱
- Kubernetes 매니페스트를 JSON으로 변환하여 API 전송
- JSON API 응답을 YAML로 변환하여 가독성 있게 확인
- GitHub Actions 워크플로우 디버깅
⚠️ YAML 들여쓰기 주의
YAML은 탭(Tab)을 들여쓰기로 허용하지 않습니다. 반드시 스페이스로 통일하세요. 또한 on, yes 같은 값은 불린으로 자동 변환되므로 문자열이면 따옴표로 감싸세요.
자주 묻는 질문
복잡한 YAML도 변환되나요?▼
이 도구는 기본적인 YAML 구문(키-값, 배열, 중첩 객체)을 지원합니다. 앵커(&), 별칭(*), 멀티라인 문자열(|, >) 등 고급 기능은 부분적으로만 지원됩니다.
YAML의 주석은 어떻게 되나요?▼
JSON은 주석을 지원하지 않으므로, YAML의 # 주석은 변환 시 제거됩니다. 중요한 주석은 별도로 저장하세요.
타입 변환은 어떻게 되나요?▼
true/false는 불린, 숫자 형태는 Number, null/~는 null로 자동 인식됩니다. 문자열로 유지하려면 따옴표로 감싸세요.
YAML에 탭을 쓰면 왜 오류가 나나요?▼
YAML 명세가 들여쓰기에 탭을 허용하지 않기 때문입니다. 화면상 같아 보여도 파서는 구분하므로, 에디터에서 탭을 스페이스로 변환하도록 설정하세요.
no나 off를 썼는데 false가 됐어요.▼
yes/no/on/off를 불린으로 해석하는 경우가 있기 때문입니다. 문자열로 쓰고 싶다면 "no"처럼 따옴표로 감싸면 됩니다.
입력한 설정 파일이 서버로 전송되나요?▼
아니요. 변환은 브라우저 안에서만 처리되며 내용이 서버로 전송되거나 저장되지 않습니다. 다만 실제 비밀번호나 API 키가 담긴 설정은 어디서든 취급에 주의하세요.