フロントエンド 【front end】
概要
フロントエンド(front end)とは、前部(の)、前端(の)、前置(の)、前工程(の)、初期段階(の)、などを意味する英語表現。ソフトウェアやシステムの構成要素のうち、利用者に対する表示や操作の受け付け、他のシステムとの連携など、外部と直接やり取りを行う要素のことをこのように呼ぶ。ソフトウェアの構造や役割についてフロントエンドという場合は、画面表示や入力・操作の受け付けなど、主に利用者が直接触れる部分を指すことが多い。対照的に、フロントエンドから受け取ったデータを処理・保存したり、フロントエンドの要求に応じてデータや機能を提供する構成要素は「バックエンド」(back end)という。
文字による表示・操作機能(CUI/CLI)しか用意されていないコマンドラインツールや、利用者が直接操作することがないライブラリなどのプログラムに、グラフィック表示やマウス操作・タッチ操作で使用できるようにする操作画面(GUI)を提供するソフトウェアをフロントエンドと呼ぶことが多い。
また、機能が何段階かの階層構造に分かれているようなシステムで、上位側や入力を受け取る側のことをフロントエンドということがある。例えば、コンパイラフロントエンドはソースコードを解釈して中間形式に変換する役割を果たし、中間コードからネイティブコードを生成するのはバックエンドの役割となる。
Webフロントエンド
クライアントサーバ型のシステムでは、クライアント側のソフトウェアやシステムを指す。特に、WebアプリケーションにおいてWebブラウザに表示されるWebページやその構成要素、クライアント側のスクリプトなどを指すことが多い。
HTML(Hypertext Markup Language)やCSS(Cascading Style Sheet)、画像ファイルなどのコンテンツ、JavaScriptで記述されたスクリプトなどを組み合わせ、利用者への表示や操作の受け付けなどの機能を実装した部分である。Webサーバ側で機能の提供やデータの保管などを行うバックエンドと組み合わせて一つのシステムを構成する。
フロントエンドエンジニア
Webアプリケーションのフロントエンド側を開発・運用する技術者のことを「フロントエンドエンジニア」(front-end engineer)という。Webデザイナーなどと連携してユーザーインターフェースとしてのWebページを制作し、サーバとの通信を行うプログラムを開発する。
JavaScriptやTypeScriptなどのプログラミング技能に加え、開発に用いるJavaScriptフレームワークやライブラリなどの知識、Webページを構成するHTMLやCSSの基本的な知識が必要となる。開発手法によってはサーバ側でWebページを動的に生成するため、PHPなどによるサーバ側プログラムの開発や、CMSなどによるサーバ構築・運用の技能が要求されることもある。