YAMLとはマークアップ言語じゃない!
YAMLとは、
"YAML Ain’t Markup Language"(YAMLはマークアップ言語じゃない!の略)の略語です。
名前の定義に名前がある再帰的なやり方がかっこいいですね。
YAMLは人間にとって読みやすいデータ記述フォーマットの1つで、設定ファイルやデータの構造を簡潔に書くためによく使われます。
HTMLやXMLのように、文章をコンピュータに理解させるためテキストにタグや記号などを埋め込むマークアップ言語とは異なります。
もっと簡単にいうと、設定ファイル界の「手書きメモ」みたいな存在です。
ざっくり特徴3選
ざっくりと3つの特徴だけ覚えておきましょう。
- ✅ とにかく見やすい
→ もうXMLやカッコだらけのJSONに怯えなくていい。 - ✅ スペースで階層を表現
→ インデントが命。でもタブは禁止!(鬼のルール) - ✅ 設定ファイルによく使われる
→ 開発者がこっそり編集してるファイルの正体がYAMLです。
何に使われてる?
実はあなたの知らないところで、こんな風に使われています。
- アプリやツールの設定ファイル
- Kubernetes(クラウドでアプリを動かす)の構成管理
- GitHub Actionsで「自動でテストしてね」と指示するスクリプト
- Ansibleで「このサーバー、こうしておいてね」とお願いするファイル
など。
👨💻「いや、それってJSONでよくない?」
🤖「いやいや、YAMLは“人間が読む”ためにあるんだよ。」
YAMLを実際に書いてみよう。
実際に書いてみると、JSONとの違いがわかりやすいです。
まずは、YAMLで人の情報を書いてみましょう。
user:
name: "田中太郎"
age: 30
skills:
- Python
- Azure
- Databricks
見やすくないですか?
「田中太郎さん、30歳、クラウドとかデータ分析できそうだな」って、一瞬で伝わります。
これをJSONで書くと……
{
"user": {
"name": "田中太郎",
"age": 30,
"skills": ["Python", "Azure", "Databricks"]
}
}
😇「いや、JSONさん……君も悪くないんだけど、カッコ多すぎ」
YAMLのシンプルさ、可読性が高いことがわかルカと思います。
ただし、YAMLは見やすい分ちょっとしたこだわり屋さんでもあります。
スペースの数、改行の位置――そういう細かいところを気にします。
少しスペースがずれると表示されなかったりします。
YAML vs JSON vs XML
「マークアップ言語と言えば、なんかJSONとかXMLってのも聞いたことあるけどそれらとは違うの?」
と思う方もいるかと思います。
これらは一般的に使用されるデータ形式として、それぞれ独自の特徴を持ち、異なるアプリケーションシナリオに適しています。
以下の項目で比較してみます。
項目 | YAML | JSON | XML |
---|---|---|---|
読みやすさ | ◎(人間向け) | ○(まあまあ) | △(目が疲れる) |
書きやすさ | ○(スペース命) | ◎(カッコ多いけど簡単) | △(タグ閉じるの大変) |
構造の表現力 | ◎(柔軟) | ○(入れ子構造得意) | ◎(属性とか扱える) |
よく使われる場所 | 設定ファイル、インフラ定義 | API通信、Webアプリ | 古めのシステム、Office製品など |
初心者フレンドリーさ | ◎ | ○ | △ |
覚えやすいよう三兄弟をキャラで例えるとこんな感じです。
🟡 YAMLくん(末っ子)
→ 見た目で勝負!感覚派。メモがうまくて、人に伝えるのが得意。几帳面だけど、ちょっと神経質(タブ禁止とか)。
🟢 JSONくん(次男)
→ 真面目で合理主義。カッコは多いけどルールはシンプル。パソコンと仲良し。API界の人気者。
🔵 XMLさん(長男)
→ 昭和生まれのベテラン。礼儀正しいけど、口調が堅い。昔は最強だったけど、今はちょっと距離感ある存在。
もっと詳しく知りたい方はこちらも参考になるかと思います。
あなたのPCでもすぐYAMLを見つけらるはず
あなたのすぐ手の届く範囲にも、すでにYAMLはいます。
試しに、以下の場所を探してみてください。
Mac編(Finderで探す)
- Finderを開く
- 「このMacを検索」を選ぶ
- 🔍 検索欄に:
*.yml
または*.yaml
と入力 - 「種類:その他 → プレーンテキストファイル」にすると探しやすいかも
Windows編(エクスプローラーで探す)
- エクスプローラーを開く
- 上の検索窓に:
*.yml
または*.yaml
と入力 - ユーザーフォルダ(C:\Users\あなたの名前)から探すとヒットしやすいです
見つけたファイル例:
-
docker-compose.yml
:Dockerという開発ツールの設定 -
.github/workflows/deploy.yml
:GitHubでの自動処理の設定 -
vite.config.yaml
:Webフレームワークの設定(Viteなど)
最後に:YAMLと仲良くなろう。
YAMLは 「とにかく書いてみる」 のが一番!
あなたの使ってるアプリにも、もしかしたら.yml
ファイルが眠ってるかも?
設定ファイルを開いて「うわっ、なんか出た!」とならずに
「あ、なんだ〜これYAMLじゃん!」とドヤりましょう。