설정의 참조 관계

YAML 앵커공유된 값이 어디서 왔는지 먼저 확인하세요

정의 위치와 별칭 대상을 찾고, 펼친 YAML을 별도로 검토하세요.

YAML 앵커 분석과 펼치기

YAML 입력

펼친 YAML

입력은 현재 브라우저에서만 처리하며 업로드·실행·저장하거나 URL에 넣지 않습니다.

병합은 기본적으로 꺼져 있습니다. 켜면 명시적 키와 앞쪽 원본 맵이 우선하며 얕은 병합만 수행합니다. 병합 예제는 이 옵션을 켜는 변경도 미리 보여 줍니다.

yaml 2.9.0 · 원본의 버전 지시문과 선택한 버전이 같아야 합니다. 출력에도 버전을 선언합니다.

입력 500,000 UTF-16 단위 / UTF-8 2 MB, 문서 100개, 원본 노드 및 펼치기 방문 각각 50,000회, 깊이 100, 그래프 5,000행. 출력 문자 및 스칼라 작업량 각각 200만, 제한 시간 5초.

원본 참조 그래프

화살표는 정의에서 사용 위치로 이어집니다. 양쪽 위치를 누르면 입력으로 이동합니다. “대상 찾음”은 정의를 찾았다는 뜻이며 순환 그래프의 펼치기 성공을 의미하지 않습니다.

YAML을 입력하거나 분석을 실행하세요.

설정 파일에서 YAML 앵커 이름을 다시 쓰면 뒤에 나온 별칭의 대상도 달라질 수 있습니다. 이름만 읽고 판단하지 말고 정의의 행과 열을 확인하세요. 이 도구는 같은 이름의 정의도 따로 표시하여 실제로 적용되는 값을 추적하게 합니다.

YAML 별칭을 펼친 출력과 입력을 나란히 확인하고, YAML 앵커 참조 그래프에서 원본으로 돌아갈 수 있습니다. 필요한 경우에만 YAML 병합 키 확장을 켜서 상속된 설정을 검사하세요. 실패해도 이미 수집한 관계는 진단을 위해 남습니다.

YAML 앵커를 확인해야 하는 이유

같은 이름이 어떤 설정을 가리키는지 구분

같은 이름의 정의를 구분

YAML 앵커 분석은 각 별칭을 같은 문서에서 가장 가까운 앞선 정의에 연결합니다. 같은 이름을 다시 정의해도 별개의 노드로 표시하며, 문자열 속 & 또는 * 기호는 실제 참조로 오인하지 않습니다.

같은 표시를 가진 서로 다른 색의 정의가 각각 뒤쪽 참조 카드와 연결되고 순환 연결은 빨간색으로 남아 있는 그림.

어떤 값이 우선하는지 확인

병합을 켜면 기본값과 명시적으로 덮어쓴 값을 펼친 결과에서 비교할 수 있습니다. 병합 시퀀스에서는 앞쪽 맵이 우선하고 중첩 값은 통째로 교체됩니다. 결과는 검토 후 적용하기 전까지 입력을 바꾸지 않습니다.

두 원본 맵에서 결과 카드로 값이 흐르고 명시적 설정이 상속값을 덮어쓰며 나머지 중첩 블록은 유지되는 그림.

펼친 결과를 이해하는 순서

스키마, 참조 위치, 교체 내용을 차례로 확인

01

버전과 병합을 따로 선택

기본값은 YAML 1.2 코어이며 두 버전 모두 병합은 꺼져 있습니다. 1.1로 바꾸면 yes나 날짜 등의 암시적 자료형이 달라집니다. %YAML 지시문은 선택한 버전과 같아야 합니다. 병합 예제는 입력과 병합 옵션 켜기를 함께 미리 보여 줍니다.

02

정의와 사용 위치로 이동

참조 행의 양쪽 위치를 누르면 정확한 원본 행과 열로 이동합니다. 사용되지 않은 정의도 표시하며 한 페이지는 50개입니다. 해석하지 못한 별칭과 감지한 순환 연결은 실패 후에도 확인할 수 있습니다. 한도 오류가 나면 그래프가 일부일 수 있습니다.

03

교체를 검토하고 되돌리기

결과 사용, 예제, 비우기, 파일 가져오기는 모두 줄 수가 포함된 교체 미리보기를 거칩니다. 적용 후 한 번의 실행 취소로 입력·옵션·출력·진단을 함께 복원합니다. 수동 모드는 Ctrl/Cmd+Enter, 자동 모드는 편집 후 350밀리초를 기다립니다. 오래된 결과는 내보낼 수 없습니다.

참조 추적부터 자료형 보존까지

YAML 구조와 애플리케이션 규칙을 구분합니다

문법에서 찾은 실제 위치

렉서와 구문 트리는 실제 앵커 속성과 별칭 노드를 찾습니다. 별도 줄의 앵커나 문자열 키에 붙은 앵커도 추적합니다. 인용 문자열과 여러 줄 블록 안의 내용은 데이터로 취급하고, 문서마다 정의 표를 새로 만듭니다.

순환 구조도 진단 가능

값을 늘려 쓰기 전에 그래프에서 재귀 의존성을 검사합니다. 자기 참조는 올바른 YAML일 수 있지만 별칭 없는 유한 텍스트로는 표현할 수 없습니다. 오류 연결을 표시하고 전체 출력을 막되 수집된 참조는 유지합니다.

명확한 얕은 병합

원본 맵, 맵 별칭, 맵의 시퀀스를 병합할 수 있습니다. 앞쪽 원본이 기본값을 제공하고 명시적 키는 위치에 관계없이 이를 덮어씁니다. 중첩 객체는 값 전체가 교체되며 재귀 병합하지 않습니다. 시퀀스도 이어 붙이지 않습니다.

스칼라 표현 보존

JSON으로 변환하지 않고 구문 트리 노드를 복사합니다. 큰 정수, 숫자 표기, 비유한 실수, timestamp 토큰은 원본 표현을 유지합니다. 생성한 YAML은 같은 스키마로 다시 파싱하고 내용 보존 검사에 통과해야 내보낼 수 있습니다.

버전·자료형·처리 한도

완전하게 펼칠 수 있는 결과만 내보냅니다

버전 충돌은 오류
yaml 2.9.0의 1.2 코어 또는 1.1 스키마를 사용합니다. %YAML 지시문이 선택과 다르면 임의로 옵션을 바꾸지 않고 중단합니다. 각 출력 문서는 선택한 버전을 선언합니다. 병합은 별도 확장이므로 1.1에서도 기본적으로 꺼져 있습니다.
병합 키와 문자열 키 구분
확장을 켜면 일반 << 및 !!merge 키가 맵을 병합합니다. 여러 병합 키는 엔진 확장으로 허용하며 원본 순서로 처리합니다. 앞선 맵과 명시적 키가 우선합니다. 따옴표로 감싼 <<와 !!str <<는 일반 문자열이며 출력에도 인용됩니다. 병합을 끄면 일반 <<도 문자열 키이고 보통의 중복 키는 거부합니다.
문자열 키와 제한된 태그
앵커 문자열을 가리키는 별칭을 포함해 키는 문자열로 해석되어야 합니다. 숫자·불리언·null·컬렉션 키를 텍스트로 강제 변환하지 않고 거부합니다. 코어 태그와 timestamp, binary를 지원하며 binary에는 패딩이 있는 정규 Base64가 필요합니다. 알 수 없는 태그와 set·omap·pairs는 중단 사유이며 사용자 정의 생성자는 실행하지 않습니다.
값의 의미와 원본 서식은 다름
출력에는 앵커·별칭 문법, 주석, 원래 공백이 남지 않습니다. 숫자와 timestamp는 Number나 Date를 거치며 반올림하지 않고 원본 토큰을 유지합니다. 특수 실수와 이진 값도 YAML 자료형을 유지합니다. 문자열은 인용이나 서식이 바뀔 수 있으니 확인 후 적용하세요. 원본 파일을 자동으로 덮어쓰지 않습니다.
문서와 애플리케이션 범위
별칭은 해당 문서에서 가장 가까운 앞선 정의만 사용합니다. 전방 참조는 오류입니다. 앵커 이름 재사용은 허용되지만 맵 키 중복과는 다릅니다. Docker Compose 보간, GitLab extends나 !reference, Helm 템플릿, JSON $ref, 원격 include, 다른 파일 가져오기는 평가하지 않습니다.
모든 펼치기 경로에 작업 한도 적용
입력은 500,000 UTF-16 단위와 UTF-8 2 MB, 문서 100개, 원본 노드 50,000개, 깊이 100까지입니다. 펼치기 방문은 50,000회이며 반복 별칭, 덮어써지는 병합 원본, 병합 키도 포함합니다. 원본과 결과 스칼라 길이는 총 200만 단위의 작업 예산을 공유하고, 최종 출력은 별도로 200만 문자까지입니다. 그래프는 5,000행, Worker는 5초가 한도입니다. 실패하면 전체 내보내기를 막으며 잘린 파일을 주지 않습니다.

YAML 앵커 자주 묻는 질문

별칭 지원, 이름 재사용, 병합 옵션

앵커(&)와 별칭(*)을 지원하나요?

네. YAML 앵커 정의와 실제 별칭 노드를 구문 트리에서 찾아 참조를 펼칩니다. 문자열 안의 기호는 건드리지 않습니다. 순환 구조는 진단 그래프에 남지만 유한한 결과를 만들 수 없으므로 내보내기는 중단됩니다.

같은 앵커 이름을 다시 써도 되나요?

가능합니다. 별칭은 같은 문서에서 자신보다 앞에 있는 가장 최근 정의를 사용합니다. 그래프는 정의마다 실제 위치를 표시해 구분합니다. 뒤쪽 정의나 다른 문서의 정의는 대상이 될 수 없습니다.

병합 키는 처음부터 켜져 있나요?

아니요. 두 YAML 버전 모두 별도 병합 옵션을 켜야 합니다. 명시적 키가 상속값보다 우선하고 병합 시퀀스에서는 앞선 맵이 우선합니다. 따옴표 안의 <<는 일반 키이며, 병합 예제에서는 옵션을 켜는 변경도 미리 확인합니다.

어떤 YAML 자료형을 지원하나요?

문자열, 숫자, 불리언, null, 맵과 시퀀스, 지원되는 timestamp와 binary 태그를 처리합니다. 키는 문자열이어야 하고 binary는 패딩을 갖춘 정규 Base64여야 합니다. 알 수 없는 태그와 set·omap·pairs는 거부하며, 암시적 자료형은 선택한 버전에 따릅니다.

Compose include 파일과 앵커를 공유할 수 있나요?

YAML 앵커는 한 문서 안에서만 사용할 수 있습니다. 이 도구는 Compose include나 변수 보간을 실행하지 않습니다. 텍스트를 합쳐도 문서 경계를 넘는 별칭은 유효해지지 않습니다. 파일 사이의 재사용은 대상 애플리케이션의 규칙으로 처리해야 합니다.

확인이 필요한 참조나 스칼라 사례가 있나요?

YAML 앵커 분석 시작하기

YAML 앵커가 가리키는 정의와 펼친 값을 확인한 뒤, 원하는 설정인지 검토하고 적용하세요.

펼친 파일에도 대상 애플리케이션의 자체 검증이 필요합니다.