アプリはなぜ動くのか?|アプリが動く仕組みをわかりやすく解説

IT関連

みなさん、毎日スマホやパソコンを使っていると思います。
スマホなら、メッセージアプリ、買い物をするアプリ、SNSのアプリ、
パソコンなら、タスク管理アプリ、メールアプリ、、、
よく使いますよね。これら全てアプリケーションです。

これって一体どうやって動いているんだろう?
そのように思ったことはありませんか?

アプリはどんな仕組みなの?
どうやって動いているの?

そんな疑問に答えるために、この動画では、アプリケーションについてできるだけ簡単に、わかりやすく説明をしていきますね。

アプリケーションって何?

アプリは、簡単にいってしまうと、スマートフォンやパソコン上で動く「プログラムの集まり」です。
プログラムというのは、人間から「あれをして、これをして」とアプリに動いてもらうための指示の集まりです。

例えば、YouTubeのアプリの検索窓で、キノコードと検索をすると、
「キノコードという名前をつく動画を検索して」とアプリに対して指示を出しています。
そして、プログラムが動き、YouTubeの中にあるたくさんの動画の中からキノコードと名前のつく動画を探します。

他にも、動画をタップをすると「この動画を再生をして」とアプリに対して指示を出します。
動画を再生させるプログラムが動き、動画の再生が始まります。

動画を停止するボタンをタップすると、動画を停止するプログラムが動きます。

アプリには、検索するプログラム、動画再生するプログラム、動画停止するプログラムなどがあります。
これが、最初にお話をした、アプリは「プログラムの集まり」という理由なのです。

プログラムは誰が作るの?

では、プログラムは誰が作っているのでしょうか?
プログラムを作るのは「プログラマー」と呼ばれる人たちです。
プログラマーは、コンピュータが理解できる「プログラミング言語」を使って、プログラムの集まりを作り、アプリケーションを作り上げていきます。

プログラマーと似た言葉に、エンジニアという言葉があります。
先ほど説明をしたように、プログラマーは、アプリを作るためにプログラムを書く人です。
事前に決められた設計に従って、プログラミング言語を使って、プログラムを作ります。

一方、エンジニアもプログラムを書きます。
その点では、プログラマーと重なる部分があります。
しかし、エンジニアは、システムの設計、プログラムの開発、エラーのテスト、バグの修正といった保守も行います。
つまり、エンジニアの方がプログラマーより担当範囲が広いです。

ちなみに、エンジニアには、ユーザが直接触れる部分のフロントエンドを担当するフロントエンドエンジニア、ユーザーの操作からのリクエストを受け取り、必要なデータの処理を返すバックエンドを担当するバックエンドエンジニアなどがいます。
他にも、クラウド領域を担当するクラウドエンジニア、セキュリティ領域を担当するセキュリティエンジニア、ネットワーク領域を担当するネットワークエンジニアなどがいます。

ここまで説明で、アプリケーションの意味はぼんやりイメージできましたでしょうか?
ここまでの話の理解が、ぼんやりであっても問題ないです。
ここから色々な用語を説明していきますね。
用語をわかりやすく説明した上で、アプリが動く仕組みについて説明をしていきます。
アプリケーションとは何なのか?より具体的にイメージできるはずです。

アプリケーションの種類

アプリケーションには、パソコンにインストールをして使用するデスクトップアプリケーション、スマホにインストールをして使用するモバイルアプリケーション、Webブラウザを通じて使用するWebアプリケーションなどがあります。
Webブラウザには、GoogleChrome、Safari、MicrosoftEdgeなどがあります。
これらのブラウザから普段何気なくインターネットに接続して使用しているWebサイトの中には、Webアプリケーションであるものがほとんどです。
Webアプリケーションの代表例として、YouTube、Netflix、Zoom、Amazonなどがあります。
デスクトップアプリケーションの具体例としては、WordやExcel、AdobeのPhotoshopなどがあります。
モバイルアプリケーションの例としては、皆さんのスマホを手に取って見てみるとわかるように、LINEなどのコミュにケーションアプリや、X、InstagramなどのSNSアプリなどがあります。

アプリの中身はどこにあるのか?

では、ここからアプリがどのように動いているのか?ということを説明します。
ここでは、ショッピングサイトを例にWebアプリがどのように動くのか説明をしたいと思います。

あなたがブラウザを使ってショッピングサイトにアクセスしたとします。
さて、いきなり質問です。

ショッピングサイトの中身はどこにあると思いますか?
ショッピングサイトには、いくつもの商品がありますよね。
商品の画像は?商品の紹介の文章は?
それは、ブラウザの中あるのでしょうか?
あるいは、あなたのパソコンの中にあるのでしょうか?
答えは、インターネット上にあるサーバーの中にあります。
つまり、クラウド上のサーバーです

インターネット上にあるサーバーとは?

インターネット上にあるサーバーというと、少し難しく聞こえるかもしれません。

クラウド上のサーバーといってもピンとこないかもしれません。
そこで、クラウドという言葉の意味を、説明をします。
クラウドとは、そのまま直訳すると、雲です。
インターネットの接続先が、ユーザーからは見えないところ、まるで空にある雲のようなのでクラウドといいます。
そして、インターネット上にあるサーバーなので、クラウドサーバーといいます。
クラウドサーバーは、クラウドサービスの一部です。
クラウドサービスには、他にも、クラウドストレージのサービス、セキュリティ対策をするサービス、ログを監視するサービスなどがあります。
クラウドサービスには、GoogleのGoogleCloudPlatform、MicrosoftのAzure、AmazonのAWSなどがあります。

クライアントが最初にアクセスする場所がウェブサーバー

さて、このクラウドサーバーの中に、ショッピングサイトの中身があります。
商品の画像も、商品紹介の文章もここにあるのです。
スマホやパソコンからショッピングサイトにアクセスしているブラウザやアプリのことをクライアントといいます。
まずアプリをクリックをすると、クライアントからサーバーの中にあるWebサーバというところにアクセスをします。
Webサーバーの中には、ユーザーに見えるページを表示させるファイルが置いてあります。
いわゆるフロントエンド部分と言われる、HTML、CSSといったファイルです。
HTMLは、ウェブページの枠組みを作るための言語です。
CSSは、ウェブページのデザインを指定する言語です。
これらを使って、人間に見えるWebページを表示させます。
このように、ウェブサーバーは、クライアントからのリクエストを受け取り、クライアントにユーザーが見えるWebページを返します。

複雑な処理を担当するサーバーがアプリケーションサーバー

では、パソコンのブラウザからアクセスしたショッピングサイトで、検索をしてみましょう。
「シャツ」と検索をしたとします。
どうなるでしょうか?
まず、ウェブサーバーに「シャツ」という文字列とともに、検索をするというリクエストを送ります。
検索する文字列と検索というリクエストを、Webサーバーが受け取ります。ただし、Webサーバーでは検索などの複雑な処理ができません。
その場合、ウェブサーバはそのリクエストをアプリケーションサーバというサーバーに転送します。
アプリケーションサーバは、ユーザーの操作に応じて計算やデータ処理を行うサーバです。
JavaScriptやPythonなどのプログラミング言語で書かれたファイルをが置いてあります。
例えば、ユーザーがログインする際の認証処理や、検索などの処理を担当します。
そして、アプリケーションサーバーは、必要に応じてデータベースサーバーというサーバーと通信します。

データベースサーバーとの通信

データベースには、いろいろなデータが格納されています。
画像のデータであったり、商品紹介のテキストなどです。
他にも、ユーザーのログインのためのIDやパスワードなどもこここに保存されています。
データベースサーバーは、アプリケーションサーバーからのリクエストに応じて、必要なデータを返します。
例えば、データベースサーバーは、アプリケーションサーバーからのリクエストに応じて商品データを検索します。
そして、アプリケーションサーバーは、受け取ったデータを基に検索結果を生成します。
Webサーバは最終的な検索結果ページを生成し、クライアントにレスポンスとして送信します。
ユーザーが見ているアプリに検索結果が表示され、ユーザーは商品一覧を見ることができます。

それぞれの役割をまとめます

今までウェブサーバー、アプリケーションサーバー、データベースサーバーの説明をしました。
これら3つを含むシステム全体を「Webアプリケーション」といいます。
改めてそれぞれ3つの役割をまとめます。
ウェブサーバーは、クライアントからのリクエストを受け取り、ウェブサーバーで処理できないものをアプリケーションサーバーに転送します。
また、アプリケーションサーバーからのレスポンスをクライアントに返します。
アプリケーションサーバーは、ウェブサーバーから受け取ったクライアントからのリスクエストに応じて、計算やデータ処理を行います。
データベースサーバーは、アプリケーションサーバーからのデータ処理リクエストに応じてデータの読み書きを行い、必要に応じてデータを保存します。
これら3つのサーバーが連携して動作することで、ユーザーがWebブラウザを通じて利用することができるWebアプリケーションが成り立っています。

ローカルのアプリ、AI機能だって同じ原理

ローカルのアプリケーションも同じ原理です。
つまり、あなたのパソコンの中に、ウェブサーバー、アプリケーションサーバー、データベースサーバーを構築します。

今、主流のAIの機能だって同じ原理です。
例えば、あなたにおすすめの商品というページがあったとします。
おすすめ商品は、AIによって作られています。
AIの中身は、機械学習というものです。
Aさんにおすすめ商品を作るのであれば、このようになります。
コンピューターが、Aさんの購入履歴、商品の閲覧履歴、お気に入り商品を確認します。
Aさんの行動履歴が、Bさんととっても似ているとします。
そうすると、Bさんが買っているものは、Aさんも買う可能性が高いです。
これらを計算によって算出します。
この計算するロジック、つまりアルゴリズムをプログラムとして書き、それをアプリケーションサーバーに配置しておくのです。
そして、ウェブサーバーから、おすすめのページを開くと同時に、このプログラムを実行します。
おすすめ商品の一覧のページを生成をして、ユーザーのパソコンやスマホに表示させます。

どうでしょう。
ワクワクしませんか?
自分で何か作ってみるのも面白いと思います。

まとめ

この動画では、アプリケーションが動く仕組みについて説明をしました。
ウェブサーバー、アプリケーションサーバー、データベースサーバーという単語も理解されたはずです。
他にも、クラウドサービスのことや、AIの機能がどうやってサービスに組み込まれているのかも理解できましたよね。

この動画を見る前と見た後では、成長があったのではないでしょうか。
これらの技術を深く理解するためには、自分で実際にアプリケーションを作ってみることです。
今の時代の教養として、プログラミングは、今や必須の科目です。
100時間もあれば、アプリ開発はできるようになります。1日1時間で約3ヶ月です。
ぜひ挑戦してみませんか。

DX人材を育成できるキノクエストforBizには、Webアプリ開発講座、スマホアプリ開発講座があります。
キノクエストforBizには、カリキュラムがあるため、迷うことなく学習を進められます。
AIによるメンタリング機能や質問掲示板もあるので、悩みも解消できます。

お問い合わせはこちら

キノコードの動画を研修で使いたい法人のお客様は、フォームからご連絡ください。
DXについての無料相談も下記フォームからお申込みください。まずはご相談を!!
https://kino-code.com/contact-form/

未経験からはじめるPython学習「キノクエスト」 キノクエスト
  • スキルアップしたいけど何からはじめればよいかわからない…
  • プログラミングスクールに入りたいけど料金が高い…
  • プログラミングを学んでも業務やキャリアに活かせるか不安…

キノクエストは、このような悩みを持つ方にぴったりのプログラミング学習サービスです。
国内最大級のプログラミング学習系YouTubeチャンネル「キノコード」が提供しているから、未経験者にもわかりやすく質の高い学習体験を実感していただけます。

キノクエスト