YAML 설정 (.yaml)

YAML 표준

YAML Ain't Markup Language(YAML)는 현대 DevOps, 클라우드 인프라(Kubernetes, Docker Compose) 및 CI/CD 자동화를 위한 지배적인 데이터 직렬화 형식으로, 깔끔한 공백 들여쓰기를 통해 가독성을 강조합니다.

YAML을(를) JSON(으)로 변환

무료 브라우저 내 YAML-JSON 변환기. 기기에서 파일을 즉시 변환하세요.

검사 및 메타데이터

운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 YAML 파일을 식별합니다:

여기에 파일을 선택하거나 놓으세요

100% 브라우저 내 프라이버시 변환 - 파일이 기기를 절대 떠나지 않습니다

또는 붙여넣기 Ctrl+V
제로 네트워크 전송 프라이버시 보장: 외부 서버로 업로드된 데이터 0바이트. 모든 처리는 브라우저 샌드박스내에서 로컬로 수행되었습니다.

바이트 단위 헤더 시그니처 (매직 바이트)

운영 체제와 파일 분석기는 파일 선두의 바이너리 바이트 시퀀스를 검사하여 YAML 파일을 식별합니다:

16진수 시그니처 (오프셋 0):

2D 2D 2D 0A

ASCII 표현: ---\n

표준화: YAML 1.2.2 Specification

기술 사양

컨테이너 아키텍처Indentation-based human-friendly data serialization format superset of JSON supporting anchors and aliases
압축Uncompressed text stream
바이트 엔디안UTF-8 / Unicode text stream
색 공간N/A (Data Serialization)
채널 및 구조Mappings (key-value dictionaries), sequences (lists), scalar types (strings, numbers, booleans), and anchors (&ref/*ref)
최대 크기Unbounded document size (supports multi-document streams separated by '---')
투명도None
스트리밍 및 프로그레시브Multi-document streams allow sequential document-by-document processing

기술 비교 매트릭스: YAML 대 경쟁사

기술적 속성YAML (현재)JSONTOMLXML
구문 스타일들여쓰기 공백 계층 구조엄격한 대괄호와 따옴표테이블 및 key=value 쌍장황한 여닫기 태그
주석 지원네이티브 (# 주석)주석 허용 안 함네이티브 (# 주석)<!-- 주석 -->
DevOps 채택범용 표준 (Kubernetes, CI/CD)범용 API 표준Rust/Python 패키지 설정엔터프라이즈 레거시 설정
데이터 재사용네이티브 앵커(&) 및 별칭(*)없음 (수동 중복)없음 (수동 중복)XML 엔티티

일반적인 손상 모드 및 헥스 복구 가이드

구문 분석기 오류: 'mapping values are not allowed here' 또는 들여쓰기 오류.

근본 원인: 탭과 공백을 혼용했거나 들여쓰기 수준이 잘못 정렬되었습니다.

복구: 탭을 공백으로 변환하고 File2File YAML 포맷터를 사용하여 구문을 검증하세요.

보안 분석 및 파서 공격 벡터

사용자 정의 형식 태그(PyYAML의 'yaml.load()' 등)를 지원하는 YAML 구문 분석기는 역사적으로 임의 객체 인스턴스화를 통한 원격 코드 실행을 허용했습니다.

알려진 공격 벡터

  • 안전하지 않은 객체 역직렬화 태그(예: '!!python/object/apply')를 통한 임의 코드 실행.
  • YAML 앵커와 별칭을 사용하는 엔티티 확장 폭탄(십억 명의 웃음 공격과 동일).
  • 암시적 부울 및 타임스탬프 구문 분석으로 인한 형식 혼동 취약점.

방어적 모범 사례:

역사적 배경 및 주요 이력

2021JSON 호환성 및 공식 문법 정의를 개선한 YAML 1.2.2 개정판이 발행되었습니다.
2009YAML 1.2가 YAML을 JSON의 엄격한 상위 집합으로 표준화하여, 유효한 모든 JSON은 유효한 YAML이 되도록 했습니다.
2001Clark Evans, Ingy döt Net, Oren Ben-Kiki가 XML의 인간 친화적인 대안으로 YAML을 만듭니다.

주요 장점

  • 현대 클라우드 인프라를 위한 확실한 표준: Kubernetes 매니페스트, Docker Compose, GitHub Actions에서 범용적으로 사용됨.
  • 깔끔하고 읽기 쉬운 구문: 직관적인 들여쓰기를 통해 중괄호, 대괄호, 따옴표의 복잡함을 없앰.
  • 참조 및 앵커(&anchor / *anchor)를 지원하여 중복 없이 반복되는 설정 블록을 재사용할 수 있음.

기술적 제한 사항 및 단점

  • 공백에 민감함: 실수로 탭을 넣거나 여분의 공백 하나만 들어가도 문서 계층 구조가 손상되거나 구문 분석 오류가 발생할 수 있음.
  • 'no', 'on', 'yes' 또는 국가 코드('NO')와 같이 따옴표가 없는 단어가 부울 값으로 조용히 변환되는 악명 높은 형식 강제 버그.
  • 바이너리 형식이나 엄격한 JSON에 비해 구문 분석 속도가 현저히 느림.

흥미로운 기술적 상식

  • YAML은 원래 'Yet Another Markup Language'의 약자였으나, 데이터 직렬화를 강조하기 위해 순환 약어인 'YAML Ain't Markup Language'로 유머러스하게 이름이 변경되었습니다.
  • '노르웨이 문제'는 YAML 파일의 국가 코드 'NO'가 부울 값 'false'로 구문 분석되던 유명한 프로그래밍 버그입니다.
  • 세계의 모든 유효한 JSON 파일은 동시에 100% 유효한 YAML 파일이기도 합니다.

자주 묻는 기술 질문

YAML은 어디에 사용되나요?

YAML은 클라우드 컴퓨팅, Kubernetes 클러스터 배포, Docker Compose 파일, GitHub Actions 워크플로 및 소프트웨어 설정의 기본 구성 언어입니다.

YAML 파일에 탭을 사용할 수 있나요?

아니요. 공식 YAML 사양에서는 들여쓰기에 탭 문자 사용을 엄격히 금지합니다. 항상 공백을 사용해야 합니다(레벨당 일반적으로 공백 2개).

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

완전한 프라이버시를 유지하며 웹 브라우저에서 직접 File2File.app을 사용하여 한 번의 클릭으로 YAML 파일을 깔끔하고 검증된 JSON으로 변환할 수 있습니다.