【エンジニア採用講座】第二回:システムはどのようにして動くの?仕組みを解説!
※この記事は3分で読めます。
エンジニア採用担当の方に必要な知識をお届けする本講座。第二回では、システムがどのように構成され、動いているかを解説します。
1つのシステムは色々な要素が絡み合って構成されており、エンジニアにはそれぞれ専門領域があります。そして、エンジニアの職務経歴書では、自分がどの分野を専門領域にしているかが示されています。「クライアントサイド」や「OS」、さらには「Unix」等の固有名詞が登場するともうお手上げ、という採用担当者の方も多いのではないでしょうか。
本記事は、システムが動く仕組みをイメージしていただいたた上で、このような用語を理解していただくことを目的としています。
目次
システムが動く仕組み
システムがどういった仕組みで動いているかを簡単に理解していただきます。
検索サイトで五反田のランチを調べる場合をイメージしてください。
「五反田 ランチ」でGoogle検索するだけで、「五反田 ランチ」に関連する様々なページが一覧として表示されるでしょう。
日常で何気なく行っていることですが、この際システムがどのような仕組みで動いているのか、解説します。
まずGoogle(ウェブページ)にアクセスするためには、PCというデバイスを立ち上げ、Google Chromeというブラウザアプリを開く必要があります。
次にGoogleに、「五反田 ランチ」と入力して検索をクリックすると、インターネットを通して、Google社のwebアプリケーションサーバーに「五反田 ランチ」に該当するページを探してくださいという指令が送られています。
Webアプリケーションサーバーは、データベースサーバーという引き出しのような場所に保存されている大量のデータの中から、「五反田 ランチ」に関連するデータだけを取り出します。この取り出したデータをまたインターネットを通してGoogle検索結果のページに表示させています。
ウェブサイトでキーワード検索するだけでも、これだけのプロセスを介しているのです。
システムを構成する用語集
クライアントサイド(フロントエンド)とサーバーサイド
このプロセスの中で、インターネットを境にして、ユーザーの目に見える側をクライアントサイド(フロントエンド)、インターネットを境にした向こう(ユーザーの目に見えない)側をサーバーサイドと呼びます。
クライアントサイドは、PCやスマートフォンなどのデバイス、Microsoft edgeやGoogle Chromeなどのブラウザ、ウェブページ、AndroidやiOSなどのOSによって構成されています。
サーバーサイドは、webアプリケーションサーバー、データベースサーバー、OS、インフラで構成されています。
ここからは、クライアントサイド(表側)とサーバーサイド(裏側)に分けて、それぞれ詳しく解説します。
用語解説:クライアントサイド(フロントエンド)
デバイスとは
実際に手に取り操作する端末のことです。具体的には、パソコンやスマートフォン、iPadなどのタブレットPCを指します。
ブラウザ(アプリ)とは
インターネット上のウェブページの情報を画面上に表示し、閲覧するためのソフト(アプリ)です。もとになる英単語は「閲覧する」という動詞のbrowse。その名詞形であるbrowserが閲覧ソフトという意味になり、ブラウザと呼ばれています。
システム上の情報は、電気信号のようなもので、人間が読み取ることはできません。ブラウザがそれらの電気信号変換することで、画面上に表示させているのです。
インターネットで検索閲覧する場合に使うのはブラウザですが、ブラウザもアプリの1つです。スマホのアプリ等は、検索閲覧のためだけではなく様々な用途のものがありますが、それらのアプリも電気信号を何かしら目に見えるものに変換してくれているのです。
OSとは
PCやスマホはハードウェアといって有形のものですが、ウェブページなどは無形のものです。有形のものが無形のものを動かすには、オペレーションシステム(OS)が必要になります。
具体的には、iPhoneであればiOS、AndroidであればそのままAndroid、iMacであればMacOS、WindowsのPCであればWindowsが使われています。
一方で、上記の例で出てきたGoogle社側(サーバーサイド)にも、webアプリケーションサーバーやデータベースサーバーという無形のソフトを動かすためのOSが存在していますが、ここでの説明は割愛します。
用語解説:サーバーサイド
webアプリケーションサーバーとは
サーバーと聞くと冷房の効いたサーバールームに置いてある、大きなコンピュータ群を想像する人もいるでしょう。それももちろんサーバーの1つですが、Webアプリケーションサーバーはソフトウェアの1つです。
色々な役割がありますが、基本的にはクライアントサイドからインターネットを通じて送られてきた情報(リクエスト)を元に、後述するデータベースサーバーから情報を引き出し、その情報をクライアントサイドに返す(レスポンス)するものです。サーバーサイドにある「関所」というようなものと理解してください。
このwebアプリケーションサーバーで有名なものが2つあります。1つ目は「Apache(アパッチ)」、2つ目は読み方が難しい「Nginx(エンジンエックス)」です。それぞれの違いまでは理解しなくても良いでしょう。どちらを使えるエンジニアなのか、判断できればOKです。
データベースサーバーとは
シンプルに情報を保存しておくタンスのようなイメージで理解してください。webアプリサーバーからの要望に応じて、どこの引き出しを開くのか、指示されます。
このデータベースサーバーの中でも、有名なものが、「RDBMS(アールディービーエス)」と「NoSQL」の2つです。これも、それぞれの違いまでは理解しなくても良いでしょう。
このRDBMSを構築する際に使う言語が、SQLだということも加えて覚えておくと良いでしょう。
OSとは
クライアントサイドにもOSがありましたが、サーバーサイドにもOSが存在しています。
サーバーサイドも勿論、ハードウェア(インフラ)と無形のソフトで動いているので、その間にはOSが必要です。サーバーサイドのOSは、「Unix」「Linux」「Ubuntu」「CentOS」「WindowsOS」が有名です。これも、それぞれの違いまでは理解しなくても良いですが、これらのOSに対して命令を出すのがShellだということは覚えておきましょう。
インフラとは
サーバーサイド全体の基盤となるのがインフラ(サーバー)です。クライアントサイドで言うと、PC含むデバイスのような存在です。クライアントサイドのデバイスはあくまでも情報を拾ってくるだけのため小型ですが、インフラ(サーバー)はクライアントサイドからの無数のアクセスに耐えうる必要があるので、大型のPCのような装置になります。
昔のシステム開発会社は、サーバーを自社で抱えなければならず、システム開発費は高額でした。しかし現在は、AmazonやGoogle社が、巨大なインフラ施設(データセンター)を持ち、その一部をレンタルするような形になったため、システム開発の費用をかなり削減することができました。
自社で独自で抱えるサーバーをオンプレサーバーと呼ぶのに対して、AmazonやGoogle社から一部レンタルして使うものをクラウド(サーバー)と呼びます。Amazonが提供するものを「AWS(Amazon Web Service)」、Googleは「GCP(Google Cloud Platform)」、Microsoftは「Azure」を提供しています。
最後に
エンジニア採用担当者がつまづきやすい「システムの仕組み」と関連する用語について解説してきました。本記事にある内容が理解できていれば、だいたいの職務経歴書については理解できるようになるのではないでしょうか。
システムの全容について理解いただいたところで、次回の講座では「業務系システム」「web系システム」の違いについて解説していきます。
投稿者プロフィール
- 「ダイレクトリクルーティングの教科書」著者。日経トレンディや東洋経済への寄稿も果たす。新卒でパーソルキャリア株式会社にてクライアントに対して採用コンサルティングに従事。その後、外資系コンサル企業の採用支援をする中でダイレクトリクルーティングの魅力に気づき株式会社VOLLECTを創業。スカウト採用支援実績は500社超。