📝 用語まとめ
🔹 Swagger(スワッガー)
API設計&ドキュメント作成ツール群
APIの仕様を標準化して、ドキュメント・テスト・コード生成を支援する。
例:「このWeb APIはこう呼べばデータが取れますよ」を自動で見える化。
👉 APIの取説作成ツール と覚える。
🔹 Serverspec(サーバスペック)
サーバの設定や状態をテストするツール
Rubyで書ける。
例:「Apacheがインストールされているか」「ポート80が開いているか」を自動で確認。
👉 サーバの健康診断ツール と覚える。
🔹 curl(カール)
HTTPリクエストを送るコマンドラインツール
例:curl https://example.com でページ取得。
APIの動作確認にもよく使う。
👉 Webに手紙を送る郵便屋さんコマンド と覚える。
🔹 OpenAM(オープンエーエム)
SSO(シングルサインオン)や認証・認可を実現するOSS
多要素認証やフェデレーション(IdP/SP連携)も対応。
👉 ログイン周りをまとめて面倒みるツール と覚える。
🧩 仮想化方式と代表OSS
- フル仮想化(ハイパーバイザー型)
Xen、KVM
物理ハードの上に「ハイパーバイザー」を載せて、仮想マシンを複数動かす。
1つの仮想マシンごとにOSが必要。
👉 重いけど完全に独立した環境。
- ホストOS型
QEMU、VirtualBox
ホストOSの上に「アプリ的に仮想マシンを動かすソフト」を入れて動かす。
👉 個人PCで使う仮想マシンに多い。
- コンテナ型
Docker
ホストOSのカーネルを共有しながら、アプリケーションごとに独立環境を提供。
OSごと仮想化するより軽量・高速。
👉 アプリ実行環境に特化した軽量な仮想化。
💡 試験での覚え方
Docker=アプリの入れ物(軽量コンテナ)
KVM・Xen=仮想マシン(ハイパーバイザー型)
QEMU=ホスト型エミュレータ
🧩 断片化とは
メモリの割り当てと解放を繰り返すうちに、使えないスキマが生まれてしまうこと。
大きく分けて2種類あります👇
🔹 内部断片化(Internal Fragmentation)
固定サイズでメモリを割り当てたとき、使い切れずに余った部分が無駄になる。
例:
メモリを「100KB単位」でしか割り当てられない
プログラムが欲しいのは「85KB」
→ 余った15KBが「内部断片化」
👉 コンテナの中に入れたけど空きスペースが余る感じ
🔹 外部断片化(External Fragmentation)
可変サイズで割り当てと解放を繰り返すうちに、メモリ全体に小さな空き領域がバラバラに散らばってしまい、大きなプログラムを置けなくなる。
例:
100KBの空き領域が全体であるけど、
10KBずつ散らばっていて、連続した100KBがない
→ プログラムを置けない
👉 倉庫の棚のあちこちに隙間ができて、大きな荷物が入らない感じ
「固定長割当で生じる無駄は?」→ 内部断片化
「可変長割当で生じる無駄は?」→ 外部断片化
「外部断片化の解消方法は?」→ コンパクション(空きをまとめる)