변환이 무손실인가요?
아니요. 그리고 어떤 YAML→JSON 변환도 무손실이 아닙니다. 주석, 앵커, 병합 키, 태그, 블록 스타일은 JSON에 대응물이 없어서 해석되거나 버려집니다. 이 도구가 다른 점은 그 하나하나가 조용히 사라지는 대신 개수가 세어지고 위치가 표시된다는 것입니다.
결과를 되돌리면 같은 파일이 되나요?
JSON은 됩니다. 실제 파일 세 개로 JSON을 YAML로 바꾸고 곧바로 되돌렸더니, 숫자 리터럴과 키 순서까지 포함해 바이트 단위로 동일한 JSON이 나왔습니다. YAML은 되지 않습니다. 주석은 사라지고 앵커와 병합 키는 펼쳐지며 따옴표도 달라집니다. 값은 왕복을 견디지만, 여러분이 쓴 그대로의 파일은 견디지 못합니다.
왜 제 yes가 문자열이 됐나요?
이 도구가 YAML 1.2로 읽기 때문이며, 거기서 yes는 문자열입니다. PyYAML, Ruby, Go의 yaml.v2는 YAML 1.1로 읽어 같은 낱말을 true로 만듭니다. 불일치 목록이 짚어 주는 줄이 바로 그 줄이라, 망가진 배포가 아니라 이 화면에서 먼저 보게 됩니다.
숫자를 반올림하나요?
아니요. JSON은 JavaScript 숫자가 아니라 원본 텍스트에서 만들어지므로 9007199254740993도 1.10도 입력한 그대로 찍힙니다. 키 순서도 유지됩니다. 평범한 JavaScript 객체라면 10, 2, 1 같은 숫자 모양 키를 조용히 1, 2, 10으로 재정렬하지만 여기서는 그대로입니다.
CloudFormation이나 Ansible 파일도 열 수 있나요?
실패하지는 않습니다. !Ref와 !GetAtt는 받아들여지고 값도 유지됩니다. 다만 태그 자체가 버려지므로 돌려받는 것은 데이터이지, 그대로 배포할 수 있는 템플릿이 아닙니다.
제 파일이 업로드되나요?
아니요. 변환은 브라우저 탭 안에서 실행됩니다. 이 페이지에서는 그 점이 다른 어떤 페이지보다 중요합니다. Kubernetes 매니페스트와 CI 워크플로에는 내부 호스트 이름, 레지스트리 주소, 시크릿 이름, 때로는 시크릿 자체가 예사로 들어 있기 때문입니다.