본문으로 건너뛰기

YAML 정렬·검사

YAML Formatter & Validator

YAML 들여쓰기를 통일하고 문법을 검사하며, 파서를 깨뜨리는 탭·앵커 실수를 표시합니다.

YAML 파일의 들여쓰기를 일관되게 맞추고, 다른 파서라면 다르게 읽었을 곳을 알려 줍니다. 주석·앵커·태그·블록 스칼라를 보존하는 YAML 1.2 리더라서, 출력은 배치만 고쳐진 원래 문서입니다. 주석을 버렸을 데이터 모델을 왕복하지 않습니다.

🔒 브라우저 안에서만 처리yamlformatvalidateconfig
출력
들여쓰기

YAML 입력

.yaml 파일 놓기

이 탭 안에서만 읽습니다. 어디에도 올라가지 않습니다.

정렬된 YAML

정렬했습니다.

읽히긴 했지만, 파서마다 다르게 읽을 수 있는 곳

  • 19:22 — `no`는 YAML 1.2에서 문자열 "no"입니다. YAML 1.1 파서는 이것을 불리언으로 읽습니다. 따옴표로 감싸거나 true/false로 적어야 양쪽이 같아집니다.

문서

1

키

30

목록 항목

8

앵커 / 별칭

1 / 1

경고

1

이 정렬기가 하는 일과 하지 않는 일

  • · YAML 1.2 코어 스키마로 읽습니다. yes·no·on·off 는 문자열이고, 0755는 8진수가 아니라 십진수 755입니다. 1.1 파서와 결과가 달라지는 값은 위에 경고로 표시됩니다.
  • · 주석·앵커(&)·별칭(*)·태그· |·> 블록 스칼라를 그대로 보존합니다. 값의 순서도 바꾸지 않습니다.
  • · 탭 들여쓰기, 중복 키, 정의되기 전에 쓴 별칭, 닫히지 않은 따옴표는 줄·열과 함께 오류로 잡습니다.
  • · << 병합 키는 1.1 기능이지만 docker-compose·Ansible 파일이 워낙 많이 써서 JSON 변환 때 적용하고, 그 사실을 경고로 알립니다.
  • · [a, b] 같은 플로 컬렉션 안의 주석은 붙일 줄이 없어 사라집니다. 그 외의 주석은 모두 남습니다.

JSON이나 TOML로 바꾸려면 JSON ⇄ YAML 변환기를, 스키마로 검증하려면 JSON 스키마 검증기를 쓰세요.

사용 방법

  1. 매니페스트나 설정을 붙여넣습니다

    쿠버네티스 매니페스트, CI 파일, docker-compose 등입니다. `---`로 나뉜 여러 문서는 스트림으로 읽고 따로 셉니다.

  2. 목록 스타일을 고릅니다

    사람들이 실제로 다투는 설정입니다. `- 항목`을 키와 같은 열에 둘지, 한 단계 들여쓸지입니다. 둘 다 유효한 YAML이고, 쿠버네티스 매니페스트는 관례적으로 같은 열에 둡니다.

  3. 경고를 읽습니다

    읽는 쪽이 어느 YAML 버전을 구현했느냐에 따라 뜻이 달라지는 값 — `yes`, `no`, `0755` — 을 줄·열과 함께 나열합니다. 다른 도구에서 배포를 깨뜨리는 것들입니다.

  4. 또는 출력을 JSON으로 바꿉니다

    같은 파싱 결과를 JSON으로 보여 줍니다. 어떤 값이 실제로 무엇으로 해석됐는지 — 병합 키가 무엇으로 펼쳐졌는지까지 — 가장 빨리 확인하는 방법입니다.

자주 묻는 질문

여기서는 `no`가 왜 문자열인가요?

YAML 1.2 코어 스키마가 그렇게 정하고 있어서입니다. 불리언은 `true`와 `false`뿐입니다. PyYAML이 아직 기본으로 쓰는 YAML 1.1은 `no`, `off`, `n`을 거짓으로 읽습니다. 두 해석이 갈리는 값은 경고로 표시합니다. 스타일이 아니라 실제 동작의 차이이기 때문입니다.

앵커와 별칭이 유지되나요?

YAML 출력에서는 유지됩니다. `&res`와 `*res`가 쓴 그대로 나오고 개수도 통계에 표시됩니다. JSON 보기에서는 펼쳐야 합니다. JSON에는 "같은 노드를 다시"라고 말할 방법이 없기 때문입니다.

병합 키를 지원하나요?

`<<:`는 YAML 1.1 기능이고 1.2에는 없습니다. 다만 docker-compose와 Ansible 파일이 워낙 많이 써서, JSON으로 변환할 때는 적용하고 그렇게 했다는 경고를 함께 냅니다. YAML 출력에서는 쓴 그대로 둡니다.

주석이 하나 사라졌습니다. 왜인가요?

거의 확실히 플로 컬렉션 안에 있던 주석입니다 — `[a, # 메모\n b]` 같은 경우죠. 플로 컬렉션은 한 줄로 다시 출력되는데, 그 안의 주석은 붙일 줄이 없습니다. 자기 줄에 있는 주석과 값 뒤에 붙은 주석은 모두 남습니다.

이 도구로 이어지는 것

다음 단계

이 도구의 결과를 그대로 받을 수 있는 도구들입니다.