【バックエンドエンジニア】の基礎から徹底解説
今回の記事から数回に分けてバックエンドエンジニアのことについて解説して行きたいと思います。
まずは、バックエンドエンジニアになりたい人が最低限知らなければいけない知識からご紹介します。
それは3つありまして、Webサーバー・DBサーバー・APサーバーの3つです。
まずWebサーバーですが、このWebサーバーを使う上で実はプログラミングはあまり行わないのです。
Webサーバーでは、設定ファイルを書いてサーバーを振り分けます。
Webサーバーでは、世界中のアクセスを受け付けますが、不審なアクセスは遮断してくれるのです。
NginXがよく使われていますのでGoogleで調べてみて下さい。
2つ目のDBサーバーですが、DBサーバーはユーザーのログイン情報を管理する場所です。
Googleのスプレッドシートに個人情報などが大量に並んでいる様な物です。
また、以前ご紹介したHerokuというものを使えば、プラグインとしてDBサバーも使えるので設定が簡単です。
3つ目のAPサーバーですが、これはアプリケーションサーバーのことでプログラムなどが書かれたアプリケーションが実際に動く場所です。
ユーザーの作成やログイン・ログアウト・そして商品の売り買いが出来ます。
APサーバーに関してはTomcatで一度検索してみるといいです。
このサーバーはOSという所で動いています。
このOSが分からないと途中でつまずいてしまうのでOSについてもご紹介させていただきます。
まず、ターミナルについてご紹介します。
ターミナルとはプログラミングを少しでも気になって調べたり触ったりしている人ならご存知だと思いますが、プロ
プログラミングをする時に黒い画面にコードを書いて行きますよね。
映画でも、パソコンの黒い画面にプログラムを書いて行く人をみたことがあるのではないでしょうか。
ターミナルはその画面なのです。
このターミナルはすべてのパソコンに入っています。
では、そのターミナルから送られてきた言語をOSはどの様に動かしているのでしょうか。
ここで、そのOSの仕事についてご紹介します。
基本的には5つありまして、タスクの管理・メモリの管理・ファイルの管理。デバイスの管理・APIの管理です。
タスクの管理とは、例えばスマホでラインを弄りながらインスタグラムをみたりしてますよね。
このOSはラインで新しいメッセージが来ていないかなと探しながら、インスタグラムの情報も習得しています。
この様に作業を並行して情報を習得するために、どの作業をどの順番で行う方が良いのかというタスクを管理する仕事をしています。
2つ目の、メモリの管理ですが、これはラインのメッセージをコピーしたりする時にOSがコピーした情報を記憶するのです。
OSがこの管理をしてくれているおかげでコピーアンドペーストが成り立ちます。
3つ目のファイル管理ですが、例えばスマホで写真を撮影した後どこかに保存をすると思います。
この保存という行為をファイル管理が行っています。
4つ目のデバイス管理ですが、マウスやUSBなどがきちんと作動する様に制御しています。
5つ目のAPIの提供ですが、これはアプリケーションインターフェイスのことです。
みんなが作ったアプリからの命令はOSへ行きますが、OSの言葉は最終的に2進数で0か1の難しい言語になってしまいます。
それだと、アプリを開発する人も大変です。
なので、開発者に優しい入り口的なところを提供しているのがAPIです。
開発者たちはこの入り口に対して命令を送ります。
以上がOSの基本的な5つの仕事でした。
次にOSの特徴として、プロセス間通信というものをご紹介します。
プロセス間通信とはアプリとアプリの間に空間を作ります。
空間を作ることで情報を盗まれない様にします。
しかし、場合によってはアプリ同士が繋がる場合もありますのでその時には通信するかもしれません。
その時は、パイプ処理と行ったことをする場合があります。
パイプ処理とはAという作業とBという作業があったとしてAという作業の結果をBという作業に送ってからBという作業をする場合に使われたりします。
パイプ処理以外にも様々な処理があるので一度Googleで調べてみて下さい。
また、先程タスクの仕事の所で並行して作業をしている言いましたが、OSは同時に二つの作業は出来ません。
作業同士を高速で交互にすることで複数の作業を同時に行っている様に見えるのでそのことについても覚えておきましょう。