こんにちは。最近眼鏡からコンタクトに変えたのですが、目の違和感に慣れなくて結局家ではメガネで過ごしているひろです。
皆さんは、プログラミング学習中に、
フロントエンドやサーバーサイドって聞いたことあるけど、何なのかよくわからない……。
今学習中の言語ってフロントエンドとサーバーサイド、どっちなんだろう……。
と疑問に感じたことはありませんか?
プログラミングを学んでいくと、「フロントエンド」と「サーバーサイド」という言葉を耳にすることがあると思います。実は、この2つには大きな違いがあるのです。今回はこのフロントエンドとサーバーサイドについてわかりやすく解説します。
目次
フロントエンドはユーザーが見ている画面を扱う分野
フロントエンドは、ページに来てくれた方が見たり、聞いたりする部分を作る分野をフロントエンドといいます。HTMLやCSSで画面を作ったり、javascriptで画面に動きをつけたり、お問い合わせの画面を作ったりなど、ユーザーが操作する部分も含めてフロントエンドの分野と言われています。
サーバーサイドはユーザーからは見えない、データのやり取りや保存、管理などを行う分野
フロントエンドとは逆に、ページに来てくれた方が見ることはない部分を作る分野をサーバーサイドといいます。フロントエンドの分野で入力されたデータをデータベースに保存したり、逆に保存したデータをフロントエンドの分野に渡したりなど、データのやり取りをする分野でもあります。お問い合わせの画面で入力されたお問い合わせ内容を保存するのはサーバーサイドの分野になります。
例えば、サーバー・ネットワーク関係のエンジニアはインフラエンジニアと呼ばれ、サーバーサイドとインフラをあわせてバックエンドエンジニアと呼ぶ場合もあります。
フロントエンドの特徴
フロントエンドとサーバーサイドの概要がつかめたところで、更にそれぞれの特徴を見ていきましょう。
画面を作る
フロントエンドは画面のデザインだったり、お問い合わせの画面を作ったり、ユーザーが触る範囲すべてを作ります。
Webサービスのログイン画面の作成
などはフロントエンドエンジニアの分野です。
主な言語はHTML、CSS、javascript
画面を作り上げるので、主に使う言語はHTML、CSS、javascriptになります。HTMLはページの構造を決め、CSSはページのデザインを決めます。javascriptはページの動きを作ることができ、フロントエンドエンジニアは基本的にはこの3種類の言語を使用して開発をしていきます。
技術が新しくなりやすい
フロントエンドエンジニアはサーバーサイドエンジニアと違い、技術の発展が早く、新しい技術を取り入れる現場も多いです。特にjavascriptにおいては、ここ数年の間で技術がめざましく進歩しました。実際の現場では、少し古い知識、新しい知識どちらも要求されることが少なくないため、幅広い知識が必要になります。また、最新の技術を常にキャッチアップしていく必要があります。
ウェブデザインやSEO対策の知識も身につく
フロントエンドエンジニアはユーザーとの距離がサーバーサイドエンジニアよりも近いので、SEO対策やウェブデザインの知識も必要とされることがあります。サーバーサイドエンジニアと比較して、プログラミング以外の知識も幅広く身につけているエンジニアのほうが、ある分野に特化したエンジニアよりも多いです。また、サーバーサイドの知識があるフロントエンドエンジニアは少なく、現在重宝されています。
サーバーサイドの特徴
主にデータを扱う
サーバーサイドは、フロントエンドの分野から渡されたデータを保存や管理したり、逆に保存してあるデータをフロントエンドの分野に渡したりなど、データの扱いを主に扱う分野と言えます。たとえば、
ログイン画面に入力されたIDやパスワードでログイン処理
などはこのサーバーサイドの分野になります。
主な言語はJava、PHP、ruby、Pythonなど
サーバーサイドの言語は色々あり、Java、PHP、ruby、Python、Perlなど挙げていくとキリがありませんが、現在主に使われているのはこの5つです。最近はjavascriptもサーバーサイドで使われる事が出てきました。基本的には、プログラミング学習ではこの6つのうちのどれかをおすすめされることが多いです。
企画や設計から関わる
データを扱うという特徴から、新しいサービスやシステムを作る際に企画・設計から関わることも多いです。大企業などでは、サーバーサイドで多くの経験を積んだエンジニアが上流工程から関わることが多く、重要なポストにいることが多いです。逆に、フロントエンドの部分は社内システムの開発においてはあまり重視されていなかったり、Webサービスの開発などでも外注などが多いです。
技術は古い技術が長く使われていることが多い
サーバーサイドはユーザーに見えない点、データを扱う点から今使われている技術を今後も使用していく、という方針が多いです。技術を新しくしていくと思わぬバグで顧客のデータが消えてしまったり、システムが動かなくなったりなどして、問題が発生した際にとても大きな損失を生む可能性があるからです。長く使われているシステムは10年以上前の技術が使われていることもあります。
特定の分野に特化したエンジニアが重宝される
古い技術が長く使われているという特徴から、フロントエンドと比較すると、いろんな言語を広く浅く触れるエンジニアより、ある特定の言語に非常に長けたエンジニアが多く、また重宝されることが多いです。
まとめ
いかがでしたか?今回は、
について解説しました。エンジニアと言っても、このように大きな違いがあり、行う業務自体も違いがあります。今後のキャリアプランに是非この記事を参考にしてみてくださいね。