·2분 읽기
JSON을 YAML로 변환하는 법 — 설정 파일 실전 변환 가이드
Kubernetes·Docker Compose·GitHub Actions 설정을 JSON에서 YAML로 옮길 때 주의할 점을 정리했어요. 주석 처리, 앵커 문법, 흔한 변환 실수까지 한 번에.

{ }
JSON 포맷터 바로 사용하기
JSON을 예쁘게 정렬하고 검증하세요
→
왜 JSON 대신 YAML로 옮기나
JSON은 파싱하기 쉽지만 **사람이 읽기엔 불편**해요. 중괄호·쉼표·따옴표가 과해요. YAML은 들여쓰기로 구조를 표현하고 **주석도 지원**해요. Kubernetes, Docker Compose, GitHub Actions, Ansible 같은 도구들이 YAML을 선택한 이유예요.
저도 처음엔 JSON 설정이 익숙했는데, 100줄 넘어가니 YAML이 훨씬 편해요. 특히 팀원과 공유할 때 가독성 차이가 커요.
1. 기본 변환 규칙
JSON과 YAML은 구조가 거의 1:1 대응이에요.
```json
{
"name": "app",
"replicas": 3,
"tags": ["prod", "api"]
}
```
YAML로 바꾸면:
```yaml
name: app
replicas: 3
tags:
- prod
- api
```
따옴표 대부분 생략 가능, 들여쓰기로 구조 표현이 핵심이에요.
2. 주석 넣기 (JSON엔 없는 강력한 기능)
YAML만의 장점이에요. `#` 기호로 주석을 넣을 수 있어요.
```yaml
# 프로덕션 환경 설정
replicas: 3 # 부하 기준
```
설정 파일에 **왜 이 값인지** 기록해두면 6개월 후 본인도 고마워해요.
3. 앵커와 별칭 (YAML만의 무기)
같은 값을 여러 곳에 반복해야 할 때 YAML 앵커로 DRY하게 작성할 수 있어요.
```yaml
defaults: &defaults
timeout: 30
retries: 3
service-a:
<<: *defaults
port: 8080
service-b:
<<: *defaults
port: 8081
```
JSON으로 같은 걸 표현하려면 복붙 범벅이에요.
4. 자주 하는 변환 실수 5가지
변환 중 흔한 함정이에요.
- **들여쓰기에 탭 사용** → YAML은 스페이스만 허용
- **콜론 뒤 공백 누락** → `key:value` 금지, `key: value`
- **따옴표 안 감싼 문자열** → `yes`, `no`, `on`, `off`는 boolean으로 해석됨
- **하이픈 뒤 공백 누락** → `- item1` (OK) vs `-item1` (에러)
- **멀티라인 문자열 오해** → `|`(줄바꿈 유지) vs `>`(줄바꿈 공백 변환) 구분 필요
5. Toolkio JSON Formatter로 YAML 구조 미리 보기
Toolkio JSON Formatter에 JSON 넣고 포맷팅하면 **들여쓰기 구조가 한눈에** 보여요. 이 구조 그대로 YAML로 옮기면 실수가 줄어요.
변환 후엔 YAML Linter(yamllint.com 등)로 검증하세요. 들여쓰기 실수는 런타임 에러로 드러나요.