// converters
YAML Flattener.
Flatten a nested YAML structure into dotted keys, or unflatten a flat dotted-key map back into nested form.
Input
Output
자주 묻는 질문
점 표기법이란 무엇인가요?
{a: {b: 1}}을 a.b = 1로 변환합니다.
플래튼을 되돌릴 수 있나요?
네, 도구는 플랫한 키에서 중첩된 구조를 재구성할 수 있습니다.
배열에서도 작동하나요?
네, 배열은 array.0, array.1 등의 인덱스로 확장됩니다.
YAML 플래트닝이란
YAML 플래트닝은 중첩된 YAML 구조를 평면적인 키-값 쌍으로 변환하는 과정입니다. 중첩된 블록은 점(.)이나 언더스코어(_)로 구분된 단일 키로 변환됩니다.
예를 들어, { database: { host: localhost, port: 5432 } }는 { database.host: localhost, database.port: 5432 } 형태로 변환됩니다. 깊이에 관계없이 모든 값을 최상위 레벨로 가져옵니다.
이 변환은 설정 파일의 구조를 단순화하고, 환경 변수 매핑이나 설정 주입에 유용합니다. 복잡한 중첩 구조를 평면화하여 관리하기 쉽게 만듭니다.
YAML을 플래트닝해야 하는 경우
환경 변수를 YAML 설정에 매핑할 때 유용합니다. 대부분의 환경 변수 시스템은 점으로 구분된 키를 지원하므로, 플래트닝된 YAML이 자연스럽게 대응됩니다.
Kubernetes 환경변수 주입이나 Docker Compose 설정에서 복잡한 구조를 단순화할 때 활용됩니다. 플래트닝된 형식은 설정 덮어쓰기(override)가 더 직관적입니다.
설정 파일을 동적으로 생성하거나 병합할 때 플래트닝된 형식이 더 효율적입니다. 키 충돌을 방지하고, 설정 값을 검색하거나 수정하기 더 쉬워집니다.
변환 방식 설명
변환은 재귀적으로 수행됩니다. 모든 중첩 레벨을 탐색하면서 각 값을 최상위 키로 변환합니다. 배열이나 객체 모두 처리할 수 있습니다.
배열 요소의 경우, 키에 인덱스 번호가 추가됩니다. 예를 들어, fruits: [apple, banana]는 fruits.0: apple, fruits.1: banana로 변환됩니다.
원본 YAML의 타입 정보는 유지됩니다. 문자열, 숫자, 부울 등 원본 데이터 타입이 변환 후에도 동일하게 유지되므로, 다시 중첩된 구조로 되돌릴 수도 있습니다.