「エンジニアって何を作ってる?」目に見える/見えない開発の世界

「エンジニアって何を作ってる?」目に見える/見えない開発の世界
#1〜#4の記事で、IT業界の全体像や職種、ビジネスモデルを見てきたなかで、IT業界のイメージは具体的になってきたものの、「エンジニアが開発するって、結局どういうこと?」という部分は、まだぼんやりしている方も多いのではないでしょうか。

「アプリを作る」と一言でいっても、その中身は意外と知られていません。同じアプリでも、目に見える部分と、見えない裏側とでは、作る人も、使う技術もまったく違います。

この記事では、アプリ開発の中身を「見える側」と「見えない側」に分けて、図とともに解説します。読み終わるころには、「開発する」という言葉の具体的なイメージがつかめているはずです。
無料
まずは登録してみる

\ITエンジニア特化の就活支援サービス/

レバテックルーキーに登録する

\ITエンジニア特化の就活支援サービス/

レバテックルーキーに登録する

1. アプリは「氷山」のような構造をしている

アプリは、「ユーザーが見ている画面」と「見えない裏側」という、2つの層でできています。これは、氷山に少し似ています。
 

氷山は、海の上に出ている部分はほんの一角で、海の下に大きな塊が隠れています。アプリも同じで、私たちが目にする画面は全体のごく一部です。その下に、目に見えない大量の仕組みがあります。

アプリの仕組み

たとえばフリマアプリでいうと、商品の一覧画面や出品画面が「見える側」です。一方、商品のデータを保管したり、検索したり、お金のやりとりを処理したりする部分は「見えない側」にあたります。


システムやアプリの開発では、見える側を「フロントエンド」、見えない側を「バックエンド」と「インフラ・データベース」と呼びます。それぞれの世界で、使う技術も、考えることも、必要な力も大きく違うため、一つずつ確認していきましょう。

\ITエンジニア特化の就活支援サービス/

レバテックルーキーに登録する

\ITエンジニア特化の就活支援サービス/

レバテックルーキーに登録する

2. 見える側|フロントエンドの世界

フロントエンドの役割

■ 役割

フロントエンドは、ユーザーが直接目にする画面を、まるごと作る世界です。「フロントエンド」は、ユーザーから見て「手前側(画面など直接ふれる部分)」を指します。利用者に近い「表側」を担当します。


たとえば、画面のレイアウトや、ボタンを押した瞬間の動き、画面の切り替わり、文字や画像の見せ方などです。たとえばフリマアプリでいえば、商品を検索したときの商品一覧の並べ方、写真の大きさ、下までスクロールすると次々に商品が出てくる仕組みなどが当てはまります。

■ 使う技術の例

フロントエンドでは、たとえば次のような技術やプログラミング言語を使います。
 

・HTML・CSS:画面の骨組みを作る言語(HTML)と、色や配置など見た目を整える言語(CSS)

・JavaScript・TypeScript:画面に動きをつけたり、データをやりとりしたりするためのプログラミング言語

・React・Vue・Next.js:画面づくりを効率よく進めるための道具のセット(ライブラリやフレームワークと呼ばれる)

■ 日々考えていること

フロントエンドのエンジニアは、使う人の気持ちになって、日々いろいろなことを考えています。迷わず操作できる画面になっているか、スマホでもパソコンでも見やすいか、画面の表示が速いか、エラーのときに分かりやすく伝えられているか、などです。

■ 向いている人

・自分が作ったものを「使ってもらえた」「喜んでもらえた」と感じられると嬉しい人

・友達や家族に「これ見て」と、作ったものを見せたくなる人

・メニューの順番や文字の大きさ、色の組み合わせなど、細かい違いに気づくのが得意な人

・「分かりやすく伝える」ことにこだわりがある人

\ITエンジニア特化の就活支援サービス/

レバテックルーキーに登録する

\ITエンジニア特化の就活支援サービス/

レバテックルーキーに登録する

3. 見えない側①|バックエンドの世界

バックエンドの役割

■ 役割

バックエンドは、ユーザーには見えない場所で、データの処理や複雑な計算を担当する世界です。バックは「裏」という意味で、アプリの「頭脳」のような役割だと考えると分かりやすいでしょう。


たとえば、データを保存したり取り出したりする処理や、「商品が売れたら相手に通知する」といったルールの実行などです。ほかにも、フロントエンドとデータをやりとりする窓口づくりや、決済・メール配信といった外部サービスとのつなぎ込みも担当します。


たとえばフリマアプリで「出品する」ボタンを押すと、商品の情報を受け取り、保存し、商品一覧に表示できる形に整える、といった処理が裏側で動きます。これがバックエンドの仕事です。

■ 使う技術の例

バックエンドでは、たとえば次のような技術やプログラミング言語を使います。
 

・Python・Ruby・Go・Java:処理を作るためのプログラミング言語

・Ruby on Rails・Django・Spring Boot:開発を効率よく進めるための道具のセット(フレームワーク)

・API(エーピーアイ):プログラム同士がやりとりするための「窓口」と「約束事」。

■ 日々考えていること

バックエンドのエンジニアは、データをどう整理して持つか、大量の人が同時に使っても止まらないか、不正な利用を防げているか、複雑なルールを正しく作れているか、などを日々考えて開発を行っています。

■ 向いている人

・「なんでこうなるんだろう?」と、仕組みの中身を知りたくなる人

・パズルや謎解きが好きで、頭の中で組み立てるのが楽しい人

・表に出ない仕事でも、「自分が支えている」という実感を大事にできる人

・散らかった情報を整理して、ルールを見つけるのが得意な人

\ITエンジニア特化の就活支援サービス/

レバテックルーキーに登録する

\ITエンジニア特化の就活支援サービス/

レバテックルーキーに登録する

4. 見えない側②|インフラ・データベースの世界

インフラ・データベースの役割

■ 役割

インフラとデータベースは、アプリが動き続けるための「土台」を担当する世界です。建物でいう地面や基礎のような役割です。インフラは「基盤」、データベースは「データの保管庫」と捉えてください。
 

たとえば、アプリを動かすサーバー(プログラムを動かすコンピューター)の用意や運用が挙げられます。さらに、すべてのデータをためておくデータベースの管理や、通信のためのネットワークの整備も行います。トラブルが起きたときの対応や、不正アクセスを防ぐ対策も、大切な仕事です。

何百万人もの人が同時にアクセスしても、アプリは止まらずに動き続けます。それを裏で支えているのが、インフラのエンジニアです。

■ 使う技術の例

インフラ・データベースでは、たとえば次のような技術を使います。
 

・AWS・Google Cloud・Azure:インターネット越しにサーバーなどを借りられるサービス(クラウドと呼ばれる)

・PostgreSQL・MySQL・MongoDB:データをためて、取り出すためのデータベース

・Docker・Kubernetes・Linux:サーバーを効率よく動かし、管理するための道具

■ 日々考えていること

インフラに関わるエンジニアは、アプリやシステムが止まらずに動き続ける仕組みになっているか、システム運用に無駄な費用がかかっていないか、大量のデータを速く処理できるか、不正アクセスを防げているか、などを日々考えながら仕事をしています。

■ 未経験・プログラミングに自信がない人にもおすすめ

インフラの世界は、未経験でプログラミングに自信がない人にも、入口としておすすめです。なぜなら、フロントエンドやバックエンドと比べて、コードを書く比重が比較的軽めだからです。また、ネットワークやサーバーの基本的な考え方は、何十年も大きく変わっていません。一度しっかり覚えれば、長く使える知識になります。SIerやSESでは、未経験者がインフラの案件に配属されることも多く、最初の一歩としてのハードルも低めです。

■ 向いている人

・大きな仕組みが、止まらず動き続けることに価値を感じる人

・縁の下の力持ちのポジションが、性に合っている人

・コツコツと環境や仕組みを整えるのが好きな人

・問題が起きたときに、慌てず冷静に対処できる人

\ITエンジニア特化の就活支援サービス/

レバテックルーキーに登録する

\ITエンジニア特化の就活支援サービス/

レバテックルーキーに登録する

5. フリマアプリで「商品を出品する」操作の0.5秒間で何が起きているか

ここまで3つの世界を見てきました。ここで、それらがどう連携しているのかを、具体的な場面で見てみましょう。フリマアプリで「出品する」ボタンを押してから、出品完了の画面が出るまでの、わずか0.5秒ほどの裏側です(1ミリ秒は1000分の1秒です)。この一瞬の間に、情報は次のように行き来しています。
 

フリマアプリで出品するまでの動き
時間 起きていること
0ミリ秒 あなたが「出品する」ボタンを押す
〜50ミリ秒 フロントエンドが、入力した商品名や写真などの情報を整理して、バックエンドへ送る
〜250ミリ秒 バックエンドが情報を受け取り、写真をクラウドのストレージに、商品情報をデータベースに保存する(その置き場所を用意し、安定して動かしているのがインフラ)
〜450ミリ秒 バックエンドが、保存できたことを確認し、表示用のデータを用意する
〜500ミリ秒 フロントエンドが、出品完了の画面を表示する

たった0.5秒ほどの間に、情報はいくつもの場所を行き来しています。画面を作るのはフロントエンドのエンジニア、裏側の処理を作るのはバックエンドのエンジニア、保存する場所や土台を整えるのはインフラのエンジニアです。


エンジニアとして開発するとは、この3つの世界のどこかで、毎日少しずつ、改善や新しい機能の追加、トラブルの対応を続けていく仕事です。

\ITエンジニア特化の就活支援サービス/

レバテックルーキーに登録する

\ITエンジニア特化の就活支援サービス/

レバテックルーキーに登録する

6. 自分が興味があるのはどこ? 

3つの世界のうち、自分はどこに興味があるのか。身近な3つの問いかけで、向いている方向の見当をつけてみましょう。
 

問いかけ1:文化祭の準備、どんな役割が楽しかった?


学校行事や部活、サークルなどの催しを思い出してみてください。

楽しかった役割 近い世界
飾り付けやポスター、案内表示など、見た目を整える役割 フロントエンド寄り
タイムスケジュールや動線、お金の管理など、段取りや裏方の仕組みづくり バックエンド寄り
雨の対応や人の整理など、トラブル対応や安全の管理 インフラ・データベース寄り

問いかけ2:人とどう関わるのが好き?

好きな関わり方 近い世界
目の前の相手に直接「ありがとう」と言われると嬉しい フロントエンド寄り
多くの人が困らないよう、ルールや仕組みを整えるほうが好き バックエンド寄り
何かが「当たり前に動いている」状態を、裏で支えたい インフラ・データベース寄り

問いかけ3:カフェを開くなら、どこを一番考えたい?

一番考えたいこと 近い世界
内装やメニュー表のデザイン、お客さんの第一印象 フロントエンド寄り
仕入れや在庫の管理、レジの仕組み、スタッフの動き方 バックエンド寄り
電気・水道・厨房の設備が止まらないようにする土台づくり インフラ・データベース寄り

3つの問いかけで、はっきり決める必要はありません。新卒で入ったあとに、「最初はフロントエンドから始めたけれど、3年目でインフラに興味が出てきた」というように、領域を移る人も多くいます。


ただ、説明会やサマーインターンに応募するときに、好みの方向が少しでも見えていると、参加先の選び方や、面接で聞きたいことの軸が変わってきます。

\ITエンジニア特化の就活支援サービス/

レバテックルーキーに登録する

\ITエンジニア特化の就活支援サービス/

レバテックルーキーに登録する

7. まとめ

アプリは、ユーザーが見ている画面と、見えない裏側という2つの層でできています。見える側がフロントエンド、見えない側がバックエンドとインフラ・データベースです。それぞれの世界で、使う技術も、考えることも、必要な力も違います。気になる方向が見えてきたら、ぜひインターンや企業説明会で知識を深めてみましょう。