最近、ソフトウェアの開発過程を「フロントエンド」と「バックエンド」という呼び方で表現することが増えてきました。 フロントエンドは一番前、バックエンドは一番うしろ、という意味ですが、具体的にはどういった業務を指すのでしょうか。
フロントエンドとバックエンドの違い
簡単にいえば、ユーザーなどと直接やり取りをする要素のことをフロントエンド、フロントエンドの入力データや指示をもとに、処理を行って結果を出力したり、記録媒体に保存したりする処理をバックエンドといいます。
例えば、インターネット上のオンラインショッピングサイトがあります。 ユーザーはインターネットに接続しブラウザを開いて、ウェブサイトを呼び出します。そこで商品を検索し、気に入ったものがあればカートに入れ、顧客情報や配送情報を入力し、購入ボタンを押します。
こうした一連の動きの中で、ユーザーは関知していなくても、ウェブの向こう側にはウェブサーバーというコンピュータがあります。ユーザーはこのウェブサーバーが持つデータを呼び出し、ブラウザで閲覧しているのです。さらに商品検索を行い、購入ボタンを押す、という行動の裏では、ホームページと連動した別のデータベースソフトが動いています。この場合、ユーザーから見て一番手前側、ブラウザがフロントエンド、一番奥にあるデータベースがバックエンドとなります。そのため、商品検索のことを「バックエンドに置かれたデータベースから商品情報を呼び出す」といったりします。
フロントエンドエンジニア、バックエンドエンジニアって?
また、エンジニアを「フロントエンドエンジニア」「バックエンドエンジニア」と呼ぶこともあります。
フロントエンドエンジニアとは、Web 系サービスにおいては、HTMLやCSS、JavaScript、画像ファイルなどを組み合わせてWebページを記述するエンジニアのことです。従来は、HTMLコーダー、マークアップエンジニア、JavaScriptプログラマなどとも呼ばれていました。広い意味で「Webデザイナー」と称することもありますが、この場合、サイトのビジュアルをデザインする職種なども含まれます。デザインとコーディングは別の作業・別のスキルであり、区別するために名称が変わっていったようです。
バックエンドエンジニアは、サーバーサイドやデータベースのシステムの要件定義/設計/開発業務などを手掛けます。資金や人員に余裕のない小さなスタートアップ(新規事業)では、両者を兼任する場合もありますが、それぞれ異なるセンスを求められるため、大規模なプロジェクトになるほど、業務は細分化されていきます。