【ふぃーちゃーふらぐ】

フィーチャーフラグ とは?

💡 機能の「スイッチ」をリモートで切り替える
📌 このページのポイント
フィーチャーフラグの仕組み デプロイ済み コード 新機能コード含む フラグ判定 ON OFF ON OFF 新機能表示 ユーザーに公開 従来の動作 変更なし ユーザー 段階的ロールアウト 10% に公開 50% に公開 100% に公開 問題があればフラグを OFF にして即座にロールバック可能
フィーチャーフラグの仕組み
ひよこ ひよこ

なぜフィーチャーフラグが必要なの?

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

新機能のコードをmainブランチマージしても、フラグをOFFにしておけばユーザーには見えない。準備ができたらフラグをONにしてリリース、問題があればフラグをOFFにして即座にロールバックデプロイ(コードの配置)とリリース(ユーザーへの公開)を分離できるのが最大のメリットだよ

ひよこ ひよこ

おもしろい!どんな使い方があるの?

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

①段階的ロールアウト(まず1%のユーザーに公開→10%→100%)、②A/Bテスト(半数にはUIのAパターン、半数にはBパターン)、③特定ユーザーにβ機能を開放(社内テスター、VIPユーザー)、④キルスイッチ(障害時に問題のある機能だけ緊急停止)。デプロイのリスクを劇的に下げるよ

ひよこ ひよこ

注意点は?

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

最大の注意点は「フラグの掃除」。リリース完了したフラグを放置すると、コード内にif分岐が残り続けて複雑化する。フラグには有効期限を設定して、定期的にクリーンアップする運用が必須。LaunchDarklyなどのツールはフラグの「陳腐化検出」機能を持っているよ

ひよこ ひよこ

自前実装とSaaSのどちらがいい?

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

小規模なら環境変数やDB設定テーブルで自前実装できる。でも段階的ロールアウトやA/Bテスト、ユーザーセグメント別の出し分けが必要ならLaunchDarklyやUnleash(OSS)を使った方がいい。自前実装はフラグ管理のUI、監査ログ、SDKの保守が大変で、結局はSaaSの方がコスパが良いことが多いよ

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「フィーチャーフラグ」って出てきたら「機能のON/OFFをデプロイなしに切り替える仕組み」と思えればだいたいOK!
📖 おまけ:英語の意味
「Feature Flag (Feature Toggle)」 = 機能フラグ
💬 Feature(機能)のFlag(旗)を立てる/降ろすことで有効/無効を切り替えるよ
← 用語集にもどる