プログラミング初心者が最初に知るべきYAMLの基本

こんにちは。ゆうせいです。

新しい技術を学ぼうとするとき、設定ファイルという言葉を耳にしたことはありませんか。アプリケーションを動かすための指示書のようなものですが、その中でも特によく使われるのがYAML(ヤムル)です。

名前だけ聞くと難しそうに感じるかもしれませんが、実は私たちが普段書いているメモ書きにそっくりなんですよ。今回は、このYAMLの正体と使い方を、研修講師の視点で優しく紐解いていきます。

YAMLとは何者なのか

YAMLは、データの階層構造を表現するための書き方のルールです。正式には「YAML Ain't Markup Language」という少しひねくれた名前がついていますが、要するに人間がパッと見て理解しやすいように作られた形式だと考えてください。

データの受け渡しを支える役割

私たちがコンピュータに何かをさせたいとき、日本語で細かく指示を出すのは限界があります。一方で、コンピュータが好む複雑な記号だらけの形式は、人間が読むには苦労します。

そこで登場するのがYAMLです。YAMLは、人間にとっての読みやすさと、コンピュータにとっての処理のしやすさを両立させた仲介役なのです。

専門用語を高校生レベルの例えで解説

YAMLを理解するために欠かせない概念がいくつかあります。難しい言葉を使わずに説明しますね。

インデント(字下げ)

インデントとは、行の先頭にスペースを入れて文章を下げることです。YAMLでは、この空白の数が非常に重要な意味を持ちます。

例えば、学校のクラス編成をイメージしてください。

3年A組

1番 佐藤

2番 鈴木

このように、少し右にずらすことで、佐藤くんと鈴木くんが3年A組に所属していることが一目でわかりますよね。YAMLはこの段差を使って、情報の親子関係を表現します。

キーと値(バリュー)

YAMLは、名前と中身がペアになって構成されています。これをキーと値と呼びます。

例えば、自己紹介のカードを想像してください。

  • 名前:ゆうせい
  • 趣味:キャンプ

この場合、名前や趣味という見出しがキーで、ゆうせいやキャンプという具体的な内容が値です。

配列(リスト)

同じ種類の情報を並べたものを配列と呼びます。箇条書きと同じです。

  • りんご
  • みかん
  • ぶどう

このように、ハイフンを使って並べることで、これらは同じグループのデータですよとコンピュータに教えることができます。

YAMLのメリットとデメリット

どんな便利なツールにも、良い点と気をつけるべき点があります。

メリット

とにかく見た目がスッキリしていることが最大の魅力です。他の形式(JSONなど)に比べて、カッコやカンマといった余計な記号がほとんどありません。そのため、初めてプログラムの設定ファイルを見る人でも、どこに何が書いてあるか直感的に把握できます。

デメリット

最大の弱点は、空白の数に厳格すぎることです。半角スペースが1つ多いだけで、コンピュータは「意味がわからない!」とへそを曲げてしまいます。目に見えにくいスペースがエラーの原因になるため、慣れるまでは慎重な入力が求められます。

数式で見るYAMLの構造

YAMLのデータの個数を数えるような場面を想像してみましょう。例えば、1つのグループに属する要素の合計を計算する場合です。

全体の要素数 = グループ A の要素数 + グループ B の要素数

もし、それぞれのグループに 3 つずつデータがあるなら、計算式は次のようになります。

合計 3 \times 2 = 6

このように、YAML内のデータも単純な足し算や掛け算で管理できる構造になっています。

YAMLの書き方サンプル

実際にどのように書くのか、簡単な例を見てみましょう。

teacher:
  name: yusei
  age: 30
  skills:
    - programming
    - design

このように、コロンの後に半角スペースを入れるのが鉄則です。このルールを忘れると正しく動きません。

まとめと今後のステップ

YAMLは、現代のIT現場では避けて通れない大切な道具です。一見するとただの箇条書きですが、その中には厳格なルールと、人間への優しさが詰まっています。

さて、ここまで読んでみて「意外と簡単そうだな」と感じていただけたでしょうか。

次は、実際に自分でYAMLファイルを作ってみることをお勧めします。まずは自分のプロフィールをYAML形式で書き出してみてください。自分の得意なことや好きなものをリスト形式で並べてみるだけで、立派な練習になりますよ。

YAMLとマークアップ言語(HTML/XML)の決定的な違い

こんにちは。ゆうせいです。

YAMLの名前は「YAML Ain't Markup Language」なので「マークアップ言語」ではありません。では、どう違うのでしょうか?マークアップ言語といえばHTMLやXMLといった名前を聞いたことがある方も多いのではないでしょうか。

実は、YAMLはこのマークアップ言語の仲間だと思われがちですが、その設計思想は正反対と言ってもいいほど違います。今回は、なぜYAMLが「マークアップ言語ではない」と名乗っているのか、その理由を解き明かしていきましょう!

マークアップ言語とは「目印」をつける言葉

マークアップという言葉には「目印をつける」という意味があります。

例えば、ただのテキストに「ここは見出しですよ」「ここからここまでが段落ですよ」とタグで囲んで意味付けをしていくのがマークアップ言語の役割です。代表的なHTMLをイメージしてみてください。

タグでサンドイッチするXML

XML(エックスエムエル)は、YAMLが登場する前に設定ファイルとしてよく使われていたマークアップ言語です。

<teacher>
  <name>ゆうせい</name>
  <age>30</age>
</teacher>

このように、データの内容を <タグ名></タグ名> でサンドイッチにするのが特徴です。

専門用語を高校生レベルの例えで解説

YAMLとマークアップ言語の違いを、もっと身近なもので例えてみましょう。

データの「梱包」と「骨組み」

マークアップ言語(XML)は、商品を一つひとつ丁寧に箱に入れて、さらに大きな段ボールに詰めていく「過剰梱包」のような状態です。中身が何であるかというラベル(タグ)が、中身と同じくらい場所を取ってしまいます。

対してYAMLは、中身を最小限の仕切りだけで整理した「システム手帳」のようなものです。余計な箱(タグ)がないので、情報の骨組みだけがスッキリと見えます。

可読性(かどくせい)

可読性とは、人間がパッと見たときにどれだけ内容を理解しやすいかという指標です。

マークアップ言語はタグが多いため、データが増えれば増えるほど「どこからどこまでが一つのデータなのか」を探すのが大変になります。一方のYAMLは、以前お話ししたインデント(字下げ)だけで構造を作るため、圧倒的に可読性が高いのです。

YAMLとXMLのメリット・デメリット

XML(マークアップ言語)の視点

メリット

  • 構造が厳密:タグの始まりと終わりが明確なので、プログラムが読み取る際に間違いが起きにくいです。
  • 文書の装飾に強い:文字の一部を太字にするなど、文章の中に意味を埋め込むのが得意です。

デメリット

  • 記述量が多い:同じタグ名を2回書く必要があるため、書くのも読むのも疲れます。

YAML(データ記述言語)の視点

メリット

  • とにかくシンプル:タグがない分、情報の密度が高く、人間が手で書き換えるのに最適です。

デメリット

  • 複雑な文書には不向き:長い文章の一部にだけ意味を持たせるような、複雑なレイアウトを表現するのは苦手です。

まとめと今後のステップ

YAMLの名前の由来である「YAML Ain't Markup Language(YAMLはマークアップ言語じゃない)」という言葉の意味が、少しずつ見えてきたでしょうか。

YAMLは「タグで囲む」という面倒な作業を捨て、スペースによる見た目の美しさを選んだのです。

JSONとYAMLはどう違うの?

YAMLの基本をマスターしたところで、必ずセットで登場するのがJSON(ジェイソン)という形式です。IT現場では「設定ファイルはYAMLで」「データのやり取りはJSONで」といった使い分けが日常茶飯事です。

一見すると似た者同士ですが、実は性格が全く違います。今回は、この2つの違いを、初心者の方でも「なるほど!」と思えるように解説しますね。


JSONとYAMLの決定的な違い

結論から言うと、JSONは「コンピュータのための厳格な書き方」、YAMLは「人間のための読みやすい書き方」という違いがあります。

JSONの書き方の特徴

JSONは、JavaScriptというプログラミング言語から生まれた形式です。そのため、プログラミングコードに近い見た目をしています。

  • データ全体を波カッコ { } で囲む
  • キー(項目名)をダブルクォーテーション "" で囲む
  • データの区切りには必ずカンマ , を入れる

専門用語で比較:文法(シンタックス)の違い

JSONは「文法」が非常に厳格です。例えば、最後に余計なカンマが1つあるだけでエラーになります。

これを高校の校則に例えると、JSONは「制服のボタンは一番上まで留め、靴下は白でなければならない」という厳しい学校です。一方でYAMLは「清潔感があれば、着こなしは自由」という、少し余裕のある学校のようなイメージですね。


どちらを使うべき?メリットとデメリット

JSONのメリット・デメリット

メリット

  • 転送速度が速い:余計な改行やスペースを詰め込めるため、インターネットでデータを送る際にデータのサイズを小さくできます。
  • 互換性が高い:ほぼすべてのプログラミング言語が、標準でJSONを扱う機能を持っています。

デメリット

  • 人間には読みづらい:カッコが重なりすぎると、どこでデータが終わっているのかパッと見で分かりません。
  • コメントが書けない:これは大きな弱点です。「ここは何の設定です」というメモを残すことができません。

YAMLのメリット・デメリット

メリット

  • 圧倒的な可読性:カッコがないので、テキストエディタで開いた瞬間に内容が理解できます。
  • コメントが書ける:ハッシュ記号 # を使って、人間向けのメモを残せます。これが設定ファイルに採用される最大の理由です。

デメリット

  • 解析に時間がかかる:コンピュータにとっては、YAMLのインデントを読み解くのはJSONよりも少し「重い」作業になります。

結局、どう使い分ければいいの?

研修講師として、私はいつもこうアドバイスしています。

  1. 人間が直接書き換える「設定ファイル」(アプリの動作設定など)は、メモが残せて読みやすい YAML を選ぶ。
  2. システム同士が裏側でやり取りする「通信データ」(スマホアプリとサーバーの通信など)は、正確で速い JSON を選ぶ。

まとめと今後のステップ

YAMLとJSONは、どちらが優れているかという話ではなく、「使う場所が違う」だけなのです。

まずは、身近なツール(例えばVS Codeの設定など)がどちらの形式で書かれているか、覗いてみてください。実際に目にするのが一番の近道です。

セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。