BFF(バックエンド・フォー・フロントエンド)
Backend for Frontend/びーえふえふ
ひとことで言うと
画面(フロントエンド)の都合に合わせて、必要なデータをまとめて返す専用の中継サーバーのことです。
📖 もうちょい詳しく
何が新しいの?
むかしはアプリの裏側のサーバーが1つで、すべての画面がそこに直接つなぎにいくのが普通でした。ところが今は、裏側の機能が「ユーザー」「注文」「在庫」のように小さく分かれていることが多くなりました(これをマイクロサービスと呼びます)。すると画面側が何ヶ所にも問い合わせる必要が出て、作りが複雑になります。そこを画面ごとに整理する考え方が BFF です。
どうやって動いてるの?
BFF は、画面(フロントエンド)と裏側の機能(バックエンド)の間に立つ中継役のサーバーです。画面から「この画面に必要なデータをください」と1回頼むと、BFF が裏側のあちこちに代わりに問い合わせ、結果を1つにまとめて返します。スマホ用・Web用というように、画面の種類ごとに専用の BFF を置くのが基本の形です。
何ができるの?
画面側は、表示に必要なものだけを「ちょうどいい形」で受け取れます。たくさんのサーバーへ自分で何度も通信しなくて済むので、画面の処理がすっきりします。スマホは通信が細いので軽く、Web は項目を多めに、と画面の事情に合わせて返し方を変えることもできます。
🌱 身近なたとえ
受付の担当者で例えると分かりやすいです。あなたが書類を1枚もらいたいとき、自分で総務部・経理部・人事部を回るのは大変です。受付の人に「この件をお願いします」と頼めば、必要な部署に代わりに聞いてまわり、1つにまとめて渡してくれます。BFF はこの受付の人で、しかも「窓口担当」が用件ごとに分かれているイメージです。
✅ まず覚えるポイント
- BFF は画面と裏側の間に立つ「専用の中継サーバー」です
- 画面の種類ごと(スマホ用・Web用など)に分けて置くのが基本です
- 裏側のあちこちへ代わりに問い合わせ、結果を1つにまとめて返します
- 画面側は必要なデータだけ受け取れて、作りがすっきりします
- マイクロサービスが増えて、画面の問い合わせが複雑になった事情から広まりました
🧭 よくある勘違い
BFF は普通のサーバーと何が違うの?
役割の置き方が違います。ふつうの裏側サーバーは「機能そのもの」を担いますが、BFF は機能を持たず、画面の都合に合わせてデータを取りまとめて渡すことに専念します。つまり「画面のための、画面専用の窓口」という立ち位置です。
API ゲートウェイと同じものなの?
似ていますが目的が違います。ゲートウェイは入り口を1つにして通信を交通整理する役で、基本はすべての画面で共通です。BFF は画面の種類ごとに分けて、その画面に合った形にデータを整えるのが目的です。両方を組み合わせて使うこともあります。
画面が1種類でも必ず必要なの?
いいえ、必須ではありません。画面が少なく、裏側もシンプルなら、BFF を置かないほうが構成は軽くなります。画面の種類が増えたり、問い合わせ先が多くて画面側が複雑になってきたときに効いてくる考え方です。
🧩 関連して覚えると楽な言葉
- マイクロサービス: 裏側の機能を小さく分けて作る考え方。BFF が登場した背景になっています
- ゲートウェイ: 通信の入り口を1つにまとめて交通整理する役。BFF と組み合わせることもあります
- API: ソフト同士がやり取りするための窓口。BFF も画面に API を提供します
- GraphQL: 必要なデータだけをまとめて取れる問い合わせ方式。BFF と似た悩みを解く選択肢です
🏁 ひとことでまとめ
BFF は、画面の事情に合わせて裏側のデータを取りまとめてくれる「画面ごとの専用窓口」のことです。
TERM SEARCH
ほかの用語を調べる
検索ボックスを準備中…