メインコンテンツへ
開発技術開発実践

Feature Flag(フィーチャーフラグ)の主な目的として、最も適切なものはどれか。

ア.Feature Flagはリポジトリのブランチ管理戦略で、feature/〇〇という命名規則のブランチを使ってコードを分離する手法を指す。
イ.Feature Flagはプログラムのバグを自動的に検出し修正するデバッグツールで、CI/CDパイプラインに必須の機能である。
ウ.Feature Flagはコードに条件分岐を埋め込み、デプロイとは独立して機能のON/OFFを動的に切り替える仕組みで、段階的リリース・A/Bテスト・緊急kill switchとして活用される。正解
エ.Feature Flagは本番環境にデプロイされたコードを以前のバージョンに自動ロールバックする仕組みで、障害発生時にのみ有効化される。

解説

Feature Flagは「コードの電気スイッチ」。完成した機能をコードに組み込みながら、本番では「電球(機能)は設置済みだけどスイッチはOFF」の状態に。準備ができたらスイッチを入れるだけ。デプロイと機能公開を分離できるのが最大の強み。

なぜ ウ が正解か

ウが正解。LaunchDarkly・Unleash等が専用ツールとして存在。ユースケースは多様で:①段階的ロールアウト(最初は1%のユーザーにのみON)→②A/Bテスト(フラグでバリアントを制御)→③Trunk-Based Developmentでの長期開発(フラグで隠しながらマージ)→④緊急kill switch(問題発生時に即OFFで影響を最小化)。

なぜ イ は間違いか

バグ自動検出・修正は静的解析ツール(Linter)やAIコードレビューの機能。Feature Flagとは無関係。

なぜ ア は間違いか

feature/〇〇ブランチはGitのブランチ命名規則(GitFlow等)の話。Feature Flagはコードレベルの動的切り替えであり、ブランチ戦略ではない。

なぜ エ は間違いか

自動ロールバックはデプロイツール(ArgoCD・Spinnaker等)のロールバック機能の説明。Feature Flagのkill switchも緊急時に使えるが、自動ロールバックとは異なる概念。

出典: AI生成問題(学習用)