【こんふぃぐ】

コンフィグ とは?

💡 ソフトウェアの「動作の設定書」、どう動かすかを定義するファイルやデータ
📌 このページのポイント
コンフィグ:設定ファイルでアプリの動作を制御 config.yaml port: 3000 debug: true db_host: localhost cache: enabled log_level: info max_users: 100 theme: dark 読み込み アプリケーション ポート:3000 デバッグ:ON キャッシュ:ON テーマ:dark 設定に応じた動作 コードを変えずに設定ファイルで動作を変更できる
コンフィグのイメージ
ひよこ ひよこ

コンフィグって何?

ペンギン先生 ペンギン先生

アプリやシステムの「動作設定をまとめたファイル」だよ。どのポートで動くか・DBにどう接続するか・ログをどこに書くかなどをコードの外に設定として書くことで、コードを変えずに動作を変えられる。

ひよこ ひよこ

どんなファイル形式があるの?

ペンギン先生 ペンギン先生

よく使われるのはYAML(.yaml)・JSON(.json)・TOML(.toml)・INI(.ini)・env形式(.env)など。AstroAstro.config.mjsというJSファイル、Dockerはdocker-compose.ymlというYAMLファイルがコンフィグ。

ひよこ ひよこ

パスワードはコンフィグに書いちゃダメなの?

ペンギン先生 ペンギン先生

ダメ!コンフィグファイルをGitで管理することが多いから、DBパスワードAPIキーを書いてしまうと公開リポジトリで漏洩する。機密情報は環境変数(.envファイル)で管理して、.gitignoreでGit管理から除外するのが基本。

ひよこ ひよこ

設定ファイルの形式っていろいろあるけど、どれがいいの?

ペンギン先生 ペンギン先生

JSONYAML・TOML・INI・envファイルなどがあるよ。JSONは厳密だけどコメントが書けない(JSONCなら可)。YAMLはコメントが書けて読みやすいけどインデントミスでハマりやすい。TOMLはRustCargoPythonのpyproject.tomlで採用されていて、直感的で型も明確。実は「設定ファイルが複雑になりすぎたら、それは設計の問題」という格言があるんだ。12 Factor Appでは環境変数で設定を管理することを推奨していて、クラウドネイティブな設計ではこの考え方が主流だよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
コンフィグって出てきたら「ソフトウェアの動作設定を定義したファイルや設定の総称」と思えばOK!
📖 おまけ:英語の意味
「Configuration」 = 構成・設定
💬 「configure(設定する)」の名詞形。コンピュータ用語では「システムの動作設定」を指す
← 用語集にもどる