3秒でわかる
画面からサーバー、データベースまで一人で通して作れる状態を指す言葉。機能を端から端まで動く形にするために求められる守備範囲を表します。
もう少し詳しく
どういうものか
フルスタックは、ブラウザで動く画面側と、サーバー側の処理と、データを置くデータベースまでを、ひととおり自分で作れる状態を指す言葉です。厳密な資格や定義があるわけではなく、求人票では会社ごとに求める範囲が違います。多くの場合は、ログイン機能をひとつ足すときに、画面の追加、サーバー側の受け口、テーブルの設計、公開までを止まらずに進められる、という程度の意味で使われます。
なぜ必要か
小さなチームでは、画面担当とサーバー担当を分けると、待ち時間のほうが作業時間より長くなります。ボタンひとつ足すのに、画面の人がサーバーの人に依頼し、仕様を擦り合わせ、できるまで待つ、という往復が挟まるからです。端から端まで触れる人がいれば、この往復が消えます。個人開発やスタートアップでフルスタックが重宝されるのはこの理由です。
具体例
同じ言語で画面もサーバーも書ける構成が、学習の入口としては近道です。Next.js のようにひとつの枠組みで両方を扱える環境なら、扱う概念が少なくて済みます。
ブラウザ サーバー データベース
[React の画面] --> [<a href="/glossary/api" class="text-primary font-medium underline underline-offset-2 hover:text-primary-dark">API</a> ハンドラ] --> [users テーブル]
入力を送る 検証と保存 行として残るサーバー側の受け口は、たとえば下のような形になります。
export async function POST(req) {
const { email } = await req.json();
if (!email.includes("@")) return Response.json({ ok: false }, { status: 400 });
await db.insert("users", { email });
return Response.json({ ok: true });
}つまずきやすいところ
全部を同時に浅く学ぶと、どれも実務で使えない状態になりがちです。順番としては、まず画面かサーバーのどちらかで、一人で完成まで持っていける深さを作り、その後に隣を広げるほうが伸びます。
もうひとつ、フルスタックを名乗ることと、一人で全部の品質責任を負うことは別です。認証や決済のように事故の代償が大きい領域は、書ける範囲が広い人ほど、既存の実績ある仕組みに任せる判断が求められます。
似た用語との違い
フルスタックが守備範囲の広さを指すのに対し、バックエンドやフロントエンドは担当する層の名前です。またフルスタックとインフラの担当は別物で、サーバーの構成や監視まで見る役割は SRE と呼ばれることが多く、求人で範囲を確かめる価値があります。