教えろ「フロントエンド・エンジニア」と「バックエンド・エンジニア」って何?いまさら教えろ「フロントエンド・エンジニア」と「バックエンド・エンジニア」って何?「フロントエンド」と「バックエンド」Web業界にいると、当然のように使われているのが「フロントエンド・エンジニア」「バックエンド・エンジニア」というエンジニアの属性分け。IT業界未経験だったり初心者だったりすると、いきなりのこの豪勢な(?)言葉に整理がつかないかもしれません。今回は、この2つの役割をまとめておきたいと思います。「フロントエンド・エンジニア」とは?フロント(前方)という名のとおり、いまみなさんがご覧になっているウェブサイトの「見えている部分」を担当します。銀行で例えるならば、「銀行のホームページ」「ATMの操作画面」「オンラインバンキングの画面」「銀行アプリ」などになります。どんな使い心地・機能を持たせるか?どんな見た目・デザインにするか?と、いった役割がフロントエンドの仕事です。メディアを組み合わせて、WordPressなどでウェブサイトをつくっていく役割です。アプリ(主にスマホ)開発で言うと「Objective-C」「java」でネイティブアプリ(スマホにダウンロードして使うもの)を作る役割です。静的なコンテンツはもちろんのこと、バックエンド・エンジニアが構成したシステムやデータベースの環境に、動的なコンテンツを作成したりもします。IT業界では、こうしてウェブサイトをご覧いただいているみなさんのことを「エンド・ユーザー」とか「クライアント」などと呼ぶことがあります。そのため、フロントエンドのことを「クライアント側」などと呼ぶことがあります。一口に「エンジニア」で、同じような開発業務に携わっていたとしても、より「目に見えやすい側」という意味で、クライアントにより近い領域を扱うのが、フロントエンド・エンジニアなのです。「バックエンド・エンジニア」とは?バック(後方)という名のとおり、いまみなさんがご覧になっているサイトの「外から見えていない部分」を担当します。銀行で例えるならば、「業務システム(基幹システム)」「銀行員が使う管理システム」「オンラインバンキングの裏側(仕組みの部分)」「銀行アプリの裏側(仕組みの部分)」になります。先述した「クライアント側」に対して、クライアントに様々な仕組みを提供(serve・サーブ)する側、ということで「サーバー側」などとも呼ばれます。バックエンド・エンジニアは、このサーバー側の「仕様や要件の定義・設計と開発」を行います。最適なハードウェアやOSを選定したりサーバーソフトウェアを構成したりその上で動作するシステムを開発するといった仕事になります。どれくらいのユーザー(クライアント)が使うのかを想定し、サーバーのスペック(性能)を考えていきます。仕組みとして提供しやすい、最適なOS(基本ソフト、多くの場合はサーバーOSを利用)を選定します。これらのサーバーをどのようにつなぐか、ネットワークの設計をし、サーバー側で保管するデータやコンテンツの容量を見積もってストレージ装置(ハードディスクがたくさん詰まっている装置、とお考えください)の選定と構成をしていきます。以上の領域は、バックエンドの中でも、インフラ(インフラストラクチャ、Infrastructure=基盤)領域とされ、これらの領域を専門で扱う「インフラ・エンジニア」という職種もあります。俗に言う「バックエンド・エンジニア」は、インフラ・エンジニアが構成したサーバー環境の上に、実際にユーザー(クライアント)が使うのに必要な仕組みの部分を設計・開発していく職種のことを指します。システム開発やアプリケーション開発(この場合のアプリとは、業務アプリケーションのことを指します)を行ないます。開発と言っても、「プログラマーとエンジニアの違い」でご説明したとおり、「設計と開発」を行なうわけなので、プログラミングだけをするのではありません。エンジニアリングとして設計を行ない、設計図に従ってモノを作るプログラミングを行なっていきます。「フロントエンド」「バックエンド」まとめIT業界が進展する以前は、バックエンドと言えば「飾り気のない」領域でした。「ホスト」などと呼ばれた、「業務専用コンピューター」は、動作速度を早めるために見た目の良さをすべて度外視し、例えばキーボードだけで操作できるように設計されたものが多かったのです。その結果、スマホは一人一台(場合によっては複数台!)の時代となり、動作速度はもちろんですが、「ユーザーの操作性」も重視されるようになりました。なってくると、エンジニアとしても、フロントエンド・バックエンドの領域は融合し、バックエンド・エンジニアがユーザーの操作性(UI/UX)を意識したり、フロントエンド・エンジニアがデータベースやインフラ(基盤)部分にまで気を配る必要が出てくるようになりました。一方で、ビジネスモデルは未だにフロントエンド・バックエンドで異なります。フロントエンドは多くの場合「Web制作」と呼ばれ、参入障壁が低いためか価格の叩き合いの様相を呈している状況です。バックエンド側の知識が必要とされるようになったにも関わらず、相変わらずコスト低減の要求ばかりが強まっているのです。バックエンドは多くの場合「SIer(えすあいやー、システム・インテグレーターの日本的な略称表現)」と呼ばれ、大手・中小の差が歴然としています。予算規模は大きいものの、多くの現場で技術革新よりも保守的な手法が採用されがちで、なかなか旧来型の開発手法から抜けることができていません。領域ごとに、人材の育成方法や育成の観点も異なっており、両方を見渡した人材は未だ稀有な存在です。フロントエンド・バックエンド、どちらの領域を専門とするにしろ、ベーシックな部分は同じですが、より「見た目が変化するから、わかりやすい」という意味では、フロントエンドから勉強していくほうが、入りやすいとアクトハウスでは考えています。そんなアクトハウスのこだわりはこちらの記事『IT留学のアクトハウスが「フロントエンド」をカリキュラムにする理由。