職種別就職・転職術

何が違う?フロントエンドとバックエンド!エンジニアの役割は?

2020年2月23日

近年、Web技術が企業システムに急速に浸透してきています。

クライアントにWebブラウザを利用することは、今や当たり前の選択肢になってきました。

最近では、スマフォアプリの需要に後押しされて「フロントエンドエンジニア」の需要がより高まっています。

何が違う?フロントエンドとバックエンド

IT業界のプロジェクトにおいて「フロントエンド側」作業とは、 利用者からみて「見える部分(画面のデザインや静的コンテンツ等)」の作業を指しています。

逆に「バックエンド側」作業とは、利用者からみて「見えない部分(動的コンテンツやインフラ周り等)」の作業を指しています。

フロントエンドエンジニア」と「バックエンドエンジニア」の仕事内容は大きく違い、必要とされる言語・スキルも違うことに注意する必要があります。

「フロントエンドエンジニア」と「バックエンドエンジニア」

  • フロントエンドエンジニア」:HTML、CSS、Javascript、Reactといったプログラミング言語を使用してWebサイト、Webアプリケーションの構築・開発を行うのが基本的な仕事内容です。
  • バックエンドエンジニア」:ユーザーには見えないサーバーサイド側のプログラム、もしくはデータベースやシステムインフラなどの構築・開発、要件定義・設計までを行うのが主な仕事内容です。

フロントエンドエンジニア」と「バックエンドエンジニア」の違いを理解するためには、まず「クライアントサイドプログラム」と「サーバーサイドプログラム」と呼ばれる2つの概念が存在することを理解する必要があります。

プログラムの持つ2つの概念

通常プログラマーは、利用者からみて「見える部分(画面のデザインや静的コンテンツ等)」 側のエンジニアと思われがちですが厳密には違います。

プログラムには 「クライアントサイドプログラム」と「サーバーサイドプログラム」と呼ばれる、2つの概念に分類されます。

「クライアントサイドプログラム」と「サーバーサイドプログラム」

  • クライアントサイドプログラム」:利用者からのリクエストに対し、その結果をWebサーバから自身のマシンへダウンロードして、利用者側の パソコンやスマートフォン上で実行するプログラムを指します。
  • サーバーサイドプログラム」:「クライアントサイドプログラム」 とは反対に、サーバー側で実行されるプログラムを指します。

現実には、プログラムが実行される環境によって「クライアントサイドプログラム」と「サーバーサイドプログラム」を分けて扱うことが一般的です。

クライアントサイドプログラム

「クライアントサイドプログラム」は業務ロジックをWebブラウザ側に配置した形態をとります。

代表的なものに、Javaアプレットや、HTML(HyperTextMarkupLanguage)にJavaスクリプトなどを埋め込んだWebアプリケーションが存在します。

クライアントサイドプログラムは、JavaアプレットやJavaScriptなどで作成したプログラムが、クライアント側で稼働します。

そのため、クライアント側でデータを加工したり、細かい画面制御ができることなどのメリットがあります。

この処理形態は、従来のクライアント/サーバー(C/S)・システムと同様の手法をWebアプリケーションに応用したものと言えるでしょう。

このクライアントサイドプログラムを担当するエンジニアを「Webデザイナー」「Webプログラマー」と呼びます。

また、PCゲームやスマフォゲームなど、利用者側のパソコンやスマートフォン上で動作するゲームプログラムなども、クライアントサイドプログラムに位置付けられます。
 一部サーバーサイドも存在します。

サーバーサイドプログラム

「Java」や「PHP」「Ruby」などで作成された「動的プログラムファイル」は、「静的プログラムファイル」が配置されるWebサーバとは物理的に異なるAPサーバへ配置されます。

サーバーサイドプログラムは、 主に動的プログラムとして実装されます。

動的プログラムは、データベースと連携し、より複雑な計算を実行するビジネスロジックとして実装する為、大量のリソースを必要とします。

他のサービスへ影響が及ぶことの無いように、物理的に異なるAPサーバーへ配置されることが一般的です。

利用者からみて「見えない部分」で実行される「サーバーサイドプログラム」は「バックエンド側」の作業範疇に入ります。

フロントエンドエンジニアの役割

企業によってフロントエンドエンジニアの業務内容がちがう場合もありますが、概ね下記に挙げる「クライアントサイド」側のプログラマーを指すことが一般的です。

代表的なフロントエンドエンジニア

フロントエンドエンジニアには、主に「クライアントサイドプログラム」を扱うプログラマーが担当します。

Webデザイナー

Webサイトの構築には欠かせないWebデザイナー。

Webデザイナーは専門的な知識やスキルを生かし、クライアントの要望に沿ったWebサイトを構築します。

Webデザイナーの詳細については、下記リンクページを参照ください。

Webプログラマー

Webプログラマーは、Web上のサービスをつくるプログラマーのことです。

ショッピングサイトや、SNS(ソーシャルネットワークサービス)などのウェブサービスもWebプログラマーが作成しています。

Webプログラマーの詳細については、下記リンクページを参照してください。

ゲームプログラマー

難しそうに思えるゲームのプログラムですが、実は未経験からもチャレンジ可能な職種です。

ゲームプログラマーの詳細については、下記リンクページを参照してください。

SASプログラマー

一見、ハードルの高いイメージがあるSASプログラマーですが、SAS未経験や文系からでもSASプログラマーになることは可能です。

SASプログラマーの詳細については、下記リンクページを参照してください。

バックエンドエンジニアの役割

企業によって業務内容がちがう場合もありますが、概ね下記に挙げる「サーバーサイド」側のプログラマー及び、エンジニアを指すことが一般的です。

代表的なバックエンドエンジニア(サーバーサイドプログラム)

バックエンドエンジニア(サーバーサイドプログラム)には、主に「サーバーサイドプログラム」を扱うプログラマーが担当します。

システムエンジニア

システムエンジニア(SE)とは、 システムの設計・開発・テストを手がける職種のことです。

システムエンジニアとプログラマーの作業は同様に思われがちですが、システムエンジニアは、主に上流工程と呼ばれる作業を手掛けます。

システムエンジニアの詳細については、下記リンクページを参照してください。

Javaプログラマー

サーバーサイドプログラムの代表言語といえば「Java言語」になります。

最近はPHPやRuby等、扱いやすい言語も登場していますが、現状では何処Java一色です。

プログラマーとして、企業のシステム案件へ参画するなら、必須のスキルと言っても過言ではありません。

Javaプログラマーの詳細については、下記のリンクページを参照してください。

テストエンジニア

テストの計画と実施・その後の解決に向けた設計を主に担当する職種です。

テストが完了する基準を考えるのもテストエンジニアです。

テストエンジニアの詳細については、下記のリンクページを参照してください。

AIエンジニア

人口知能や機械学習というキーワードは、IT業界で働く人にとっては馴染みが深くなりつつあります。

これらを駆使するAIエンジニアには高いスキルが要求され、日本だけでなく世界的に見ても不足している状況です。

AIエンジニアの詳細については、下記のリンクページを参照してください。

代表的なバックエンドエンジニア(インフラ)

理由はわかりませんが、バックエンド側のインフラ系エンジニアの多くはサーバーサイドプログラム出身者で構成されことが多いです。

おそらくフロントエンド側の知識無くしてサーバーサイジングやCPUスペックなどの見積もりが行えないためだと思います。

当然年齢層も一気に跳ね上がります。40代~が多い気がしますね。

フロントエンド側出身者が多いということもあってかはわかりませんが、インフラエンジニアの場合「設計書」の作成はシステムエンジニアではなく、インフラエンジニア自身が作成することが多いです。

もう慣れてるんでしょうね。

インフラエンジニア

線引きがあいまいなところがあり、規模の小さなプロジェクトではサーバエンジニアとインフラエンジニアは同義語で扱われることがあります。

主にサーバOSの機能の設計・構築・運用を行うエンジニアです。

インフラエンジニアの詳細については、下記のリンクページを参照してください。

ネットワークエンジニア

インフラエンジニアの一種ではありますが、個々のサーバをつなぐネットワーク専門のエンジニアになります。

ネットワークエンジニアも意外と年齢層は高いです。40歳~なんて普通にいます。

ネットワークエンジニアの詳細については、下記のリンクページを参照してください。

データベースエンジニア

データベースの設計・構築・運用・管理を行うエンジニア です。

最近ではビッグデータ理論の登場で大量のデータを管理し、企業戦略にそのデータを活用できるスキルを持った人材が求められています。

その影響もあってか絶えず人材不足なイメージがあります。

データベースエンジニアが集まらず、インフラエンジニアが勉強しながらデータベースの設計・構築を行うことなんてざらにあります。

データベースエンジニアの詳細については、下記のリンクページを参照してください。

セキュリティエンジニア

企業におけるセキュリティの要的存在。

この辺になってくると、かなり責任が重くなってくるため、未経験者へはおすすめしません。

セキュリティエンジニアの詳細については、下記のリンクページを参照してください。

まとめ

まとめ

「フロントエンドエンジニア」と「バックエンドエンジニア」、「クライアントサイドプログラム」と「サーバーサイドプログラム」いろいろな単語が飛び交うIT業界!

プログラムは「フロントエンド」、インフラは「バックエンド」と勘違いしている方をよく見かけます。

Javaプログラム等は「サーバーサイドプログラム」なので「利用者からは見えない」ところで動作します。

つまり「バックエンドエンジニア」の作業範疇となります。

その他にも「プログラム」と「スクリプト」、「インタプリタ」と「コンパイラ」など、紛らわしい単語が沢山存在します。

混同しやすいので注意してください。

よく読まれている記事

1

21世紀の現在、ネット上では掲示板やアンケートフォームと言った一見簡単に見えるサービス機能から、商品カタログ、eコマースなどのスケールの大きなコンテンツまで、様々なダイナミックコンテンツが普及するよう ...

2

テクノロジーの進化により今後10年で50%以上の仕事がなくなると言われています。 それは現在の仕事がプログラムに取って代わられることを意味します。 今後「プログラミング」は「文字」と同様に「一般教養」 ...

3

2019年、出生数は過去最小の86万4千人!推計より2年早く、初めての90万人割れ日本の経済成長(2019年10~12月期の実質GDP)は、年率6.3%減! コロナウィルスとは関係なく急落しています。 ...

4

ITエンジニア転職に必要な知識として一番最初に挙げられるのは「プログラミング」の知識でしょう。 20代、30代であれば確かにそれは正しいと言えます。 しかし、40代、50代を対象にした場合、果たして「 ...

5

ここ数年、メディアなどでフリーランスという言葉を耳する機会が増え、それに比例するようにフリーランスを志す人が急増しています。 テクノロジーの進歩により、個人単位でのロケーションにとらわれないスタイルで ...

6

人口知能や機械学習というキーワードは、IT業界で働く人にとっては馴染みが深くなりつつあります。 これらを駆使するAIエンジニアには高いスキルが要求され、日本だけでなく世界的に見ても不足している状況です ...

-職種別就職・転職術

Copyright© Beエンジニア , 2020 All Rights Reserved.