웹 개발을 하다 보면 JSON과 YAML을 자주 마주치게 돼요.
둘 다 데이터를 표현하는 방법이지만, 쓰임새와 장단점이 조금 달라서 헷갈리기 쉽습니다.
🖥 JSON과 YAML이란?
JSON
- JavaScript Object Notation의 약자
- 🏠 데이터 교환 포맷으로 가장 널리 사용
- 📄 구조: {키: 값} 형태
- ✅ 특징: 웹에서 표준, 대부분 언어에서 지원
YAML
- YAML Ain’t Markup Language의 약자
- 🏠 사람이 읽기 쉬운 데이터 표현 형식
- 📄 구조: 들여쓰기로 계층 표시
- ✅ 특징: 가독성 높음, 설정 파일이나 CI/CD 환경에서 자주 사용
🖥 JSON과 YAML 장점 비교
| 구분 | JSON | YAML |
|---|---|---|
| 가독성 | ❌ 중첩 많으면 읽기 어려움 | 🏠 들여쓰기 기반으로 가독성 좋음 |
| 데이터 구조 표현 | ✅ 객체, 배열, 문자열 모두 지원 | ✅ 객체, 배열, 문자열 지원, 표현 방법 다양 |
| 파일 크기 | ✅ 비교적 작음 | ❌ 들여쓰기 때문에 파일 크기 약간 큼 |
| 학습 난이도 | ✅ 비교적 쉬움 | ❌ 규칙 많아서 초반엔 헷갈림 |
| 사용 환경 | 웹 API, 서버-클라이언트 통신 | 설정 파일, CI/CD, 도커 컴포즈 등 |
🏠 JSON과 YAML 단점 비교
- JSON
- ❌ 주석 사용 불가
- ❌ 사람이 직접 편집하기 어려움
- YAML
- ❌ 들여쓰기 실수하면 오류 발생
- ❌ 파서에 따라 일부 기능 동작이 다를 수 있음
🖥 사용처 한눈에 보기
JSON
- 🖥 REST API 응답
- 🖥 웹 클라이언트와 서버 데이터 교환
- 🖥 브라우저 저장용 데이터 (LocalStorage 등)
YAML
- 🏠 설정 파일 (.yml, .yaml)
- 🏠 CI/CD 파이프라인 정의 (GitHub Actions, GitLab CI)
- 🏠 컨테이너 구성 파일 (Docker Compose)
🏠 결론
- 웹 개발이나 API 통신 중심이면 JSON
- 사람이 읽고 쓰는 설정 파일 중심이면 YAML
- 사용 환경과 목적에 따라 적절히 선택하는 것이 핵심