バックエンドエンジニアとは?仕事内容や必要なスキルをわかりやすく解説

バックエンドエンジニアとは?仕事内容や必要なスキルをわかりやすく解説

WebアプリやWebサービスで、ユーザーからは見えない「裏側」を支える縁の下の力持ち「バックエンドエンジニア」。Web開発におけるバックエンドエンジニアの役割とは、どんなものでしょうか。また、バックエンドエンジニアになるには、どんなスキルが必要なのでしょうか。ビジネスチャットサービスのバックエンドエンジニアとして働く安達勇太さんがわかりやすく解説します。


安達 勇太さんのプロフィール

https://www.timeticket.jp/hosts/adachang/?utm_source=ttl&utm_medium=211&utm_campaign=experiences_6

Chatworkという会社でバックエンド(PHP/Scala/AWS)のエンジニアとして働いています。ウェブサービスの開発やキャリアに関する疑問や相談のことならお気軽にご相談ください。学校の課題から初心者の方、これからプログラミングを勉強してみようと思っている方の相談まで幅広く対応しています。

バックエンドエンジニアとは

——Webアプリ開発でのバックエンドエンジニアの役割はどういったものでしょうか。 Webアプリ開発はフロントエンドとバックエンド、インフラの3つに大きくわけることができます。 その中で、バックエンドエンジニアはサーバー側で動くアプリケーションを開発します。

フロントエンドエンジニアやインフラエンジニアとの違い

——フロントエンドエンジニアとバックエンジニアとの違いはどんなところにありますか? 大きく違うのは、どこで動くアプリケーションを実装するかという点です。 フロントエンドエンジニアはブラウザ上やスマホアプリなど、ユーザーの手元側で動作するアプリを担当しますが、バックエンドエンジニアはフロントエンドからの要求に応じてサーバー側で動作するアプリケーションを担当します。 たとえば、ECサイトで説明してみましょう。 ブラウザやアプリ上で商品を表示したり、ショッピングカードに商品を追加するといった動作はフロントエンドエンジニアが担います。ユーザーが商品をカートに追加する動作をしたら、フロントエンドからサーバーに「商品をカートに追加してください」という指示が送られます。 フロントサイドからの指示に基づいて、サーバー側では在庫の確認をして「カートに追加」を確定させます。それをフロントエンドに返すところまでがバックエンドエンジニアが担う部分です。 フロントエンドでは、バックエンドから返された情報をブラウザまたはアプリ画面に表示します。商品の在庫があればカートに「1」と表示、在庫がなければ「この商品は売り切れました」と表示します。 ——バックエンドエンジニアとインフラエンジニアの違いについてはいかがでしょうか。 会社によっては、バックエンドエンジニアの業務内容にインフラ業務が含まれていることもありますが、多くはバックエンドエンジニアとインフラエンジニアの業務は異なるものです。 先ほどのECサイトの例を再び見てみましょう。 ECサイトでは在庫情報や商品画像といったデータを管理しておくデータベースが必要です。そういったデータをためておくデータストレージを構築したり、運用していくのがインフラエンジニアの仕事です。また、アプリケーションを動かすための実行基盤を作るのもインフラエンジニアの役割です。

バックエンドエンジニアの仕事内容

——バックエンドエンジニアの主な仕事と、その内容を教えてください。 バックエンドエンジニアの仕事の内容は会社によって異なりますが、共通していえるのは次の4つです。 1.要件定義 

要件定義は、「なぜ作るか(Why)」「どういうものを作るか(What)」「どれくらいの性能が必要か」といった視点から、アプリに実装すべき機能や性能などを明確にしていく作業をいいます。パフォーマンスやセキュリティといった非機能要件も定義します。 2.システム設計 要件定義にしたがって、アプリをどうやって作るか(How)を決めるフェーズをシステム設計といいます。プログラミング言語やフレームワーク、ライブラリの選定などをしていきます。 3.開発 開発のフェーズでは実際に手を動かして、実装とテストを行っていきます。採用されたプログラミング言語やそのほかの技術を使って、コードを書いたりテストをしたりします。


4. 運用

開発したアプリケーションを実行環境に配置して、サービスを落とさないように運用していくのもバックエンドエンジニアの仕事の1つです。

会社によっては運用は別のチームが担当することもありますが、障害が起きたり不具合が見つかればバックエンドエンジニアの協力は不可欠です。開発時から運用を意識したアプリケーションを設計したり実装することが求められます。

これら4つがバックエンドエンジニアに求められる仕事の内容です。

バックエンドエンジニアになるために必要なスキルは?

——バックエンドエンジニアになるためには、どんなスキルを身につけておけばよいのでしょう。 バックエンドエンジニアになるために身につけておくべきスキルをフェーズ別に挙げてみましょう。 ・Webの仕組み

まず、次の3つのWebの仕組みは理解しておいたほうがよいと思います。

・HTTP/DNSといった基本的なプロトコルに関する知識

・Web上の認証・認可に関する仕組みの理解

セキュリティについての理解 ・要件定義

また、これは会社によりけりですが、USDMやRDRAといった要件定義の手法やテクニックについては勉強しておいたほうがいいでしょう。

・開発プロセス

開発プロセスでは、アジャイルやウォーターフォールといった開発手法について理解しておきたいのが1つ。 もう1つ、ソースコードのバージョン管理についても抑えておきましょう。具体的には、GitやGitHubの操作を覚えることです。最近ではGitHub上でソースコードを管理することが当たり前になってきているので、GitHubの使い方に慣れておく必要があります。 ・開発

開発の実装周りの知識も必要です。 特に、ソフトウェアの設計については、オブジェクト指向、ドメイン駆動設計、データベース設計といった設計手法、プログラミング言語はもちろん、データベースを操作するSQLといった言語は必須です。 最近ではプログラムのコードは書けてもデータベースの扱いには不慣れという人が多いので、データベースに関する基本的な知識はきちんと身につけておきましょう。

バックエンドエンジニアになるには

——バックエンドエンジニアにはどんな人が向いていると思いますか? 面倒くさがりな人は作業を自動化しようとするし、短気な人はトラブルが二度と起こらないように自動化する。こうした傾向から、エンジニアの三大美徳は「怠惰」「傲慢」「面倒くさがり」と言われています(笑)。 それはさておき、私がバックエンドエンジニアに向いていると思うのは、思い込みが激しくない人なんとなくわかったで済ませない人です。開発にはスピード感や頭の回転の速さがあるにこしたことはありません。しかし、わからないことをじっくり考え抜く力がとても大切だと思っています。 サーバーサイドは目で見えない分、トラブルの原因がわかりづらく、数値でしか測れないところがあります。思い込みだけで仕事をすると見当違いなことをしかねません。そういった意味で、じっくり考えることができる人が向いているのではないかと思います。

王道は学校で情報系を専攻してバックエンドエンジニアを目指すパターン

——バックエンドエンジニアになるためにはどんな方法がありますか? 多くのパターンが、高専や専門学校、大学で情報系のコースを専攻して、そこで習った知識やスキルをベースに企業に就職するという方法です。 プログラミングスクールを卒業してすぐバックエンドエンジニアになれる人は少数ですが、ある程度体力がある会社であれば、ジュニアクラスエンジニアとして雇用し、成長させてくれる場合もあります。 最近増えてきているのが、プログラミングスクールに通いながら現役のエンジニアにメンターになってもらい、開発の現場の話を聞いたり、スキルアップのための課題を出してもらったりしてから企業にジョインするというパターンですね。

勉強には鮮度が高い動画コンテンツがおすすめ

——これから勉強してバックエンドエンジニアになりたいという人におすすめの勉強法はありますか? Webの仕組みを勉強するためには、書籍を読み込むのが一番ではないかと思います。 また、プログラミング言語やコーディングについて勉強するならプログラミングスクールもよいですが、動画コンテンツもおすすめです。書籍だと改訂版が出版されるまでに1、2年かかってしまいますが、技術が進歩するスピードはあっという間です。その点、動画コンテンツは情報の更新が早く、教材としての鮮度が高いといえます。 これからバックエンドエンジニアを目指そうという人の中には、Webや書籍でさまざまな情報に触れ、何を勉強したらよいのか迷っている人もいるでしょう。 そんな人は、自分の就職したい企業の採用サイトや技術ブログ、カンファレンスに参加するなどして、どんな技術が採用されているかを把握するとよいと思います。

バックエンドの仕事はチャレンジングでおもしろい

——安達さんはバックエンドエンジニアの仕事のどんなところに魅力を感じていますか? バックエンドエンジニアの仕事はとてもチャレンジングで楽しいと思います。 バックエンドエンジニアは1秒に何万件も送られてくる大量のリクエストを、サーバーを落とさないように裁く必要があります。 また、データの整合性を気にしながらコードを書いたり、データベースの設計をしたりするのは、バックエンドエンジニアならではのおもしろさですね。

関連記事を見る

→ フリーランスのSEってどんな仕事? メリットとデメリットをわかりやすく解説

→ プログラミング初心者の悩みを解決!経験豊富なウェブエンジニアが疑問に答えます!

→ プログラミング言語のおすすめは?種類と選び方をプログラミング講師が解説

安達勇太さんのプロフィールを見る

安達勇太さんにプログラミングやWebサービス開発について相談する

関連する投稿


自分の得意なことを「副業」に! タイムチケットのエキスパートが明かす秘訣とは?

自分の得意なことを「副業」に! タイムチケットのエキスパートが明かす秘訣とは?

「自分のやりたいこと、好きなことを副業にしたい」。そんなふうに思ったことはありませんか? 個人の時間やスキルを売り買いできる「タイムチケット」には、自分の得意なことを「副業」にして新たなやりがいを見つけた人がたくさんあつまっています。そこで1年半にわたりコミュニティマネージャーを務めた大底春菜さんに、タイムチケットを始めるコツを聞きました。


最新の投稿


ゲーム上達のコツとは?熟練プレイヤーがアドバイスしてくれるチケットを紹介

ゲーム上達のコツとは?熟練プレイヤーがアドバイスしてくれるチケットを紹介

「ゲームを楽しみたいけれど、うまくできない」「いくら練習してもうまく立ち回れない」。ゲームをしていると、スキルが上達しないことに悩む人も少なくありません。今回は、ゲームのスキルが上達しない原因を紐解きながら、スキルアップのコツを3つにわけて解説。さらに、タイムチケットでマンツーマンでアドバイスしてくれる熟練プレイヤーのチケットを紹介します。


3D-CADとは?ソフトの選び方を初心者にもわかりやすく解説

3D-CADとは?ソフトの選び方を初心者にもわかりやすく解説

物体の立体的なイメージが表現できる3D-CAD。最近では、3Dプリンターが普及したことで、3D-CADに興味を持つ個人が増えてきました。3D-CADを使ってどんなことができるのでしょうか。また、どんなソフトを選べばよいのでしょうか。3D-CADのソフトメーカー認定トレーナーYumiko Kashiwaiさんが、初心者にもわかりやすく解説します。


「婚活」の始め方とは?悩みを相談できる専門家のチケットを紹介

「婚活」の始め方とは?悩みを相談できる専門家のチケットを紹介

ライフスタイルが多様化し、晩婚化や非婚化が進んでいる昨今。結婚したい人が相手を探すために「婚活」を始めることも少なくありません。婚活ってどうやって始めたらいいの?成功する婚活の方法を知りたい!そんな人に向けて、婚活の始め方を紐解くとともに、タイムチケットで婚活の相談に応じている専門家を紹介します。


Webエンジニアとは?キャリアパスや必要なスキルを解説

Webエンジニアとは?キャリアパスや必要なスキルを解説

スマホが普及し、いつでも、どこでもインターネットにアクセスできる時代。日々、新しいWebアプリケーションやWebサービスが登場しています。そんなWebにかかわるサービスを構築するWebエンジニアとは、どんな職業なのでしょうか。キャリアパスや仕事内容、必要なスキルについて、Webサービス企業のCTOを務める星直史さんがわかりやすく解説します。


初心者におすすめのプログラミング言語は?学習をサポートするチケットを紹介

初心者におすすめのプログラミング言語は?学習をサポートするチケットを紹介

「プログラミングやプログラミング言語に興味があるけれど、何から始めたらいいの?」そんなプログラミング初心者に向けて、初心者がプログラミング言語を学ぶときのポイントや勉強の仕方を解説。学ぶ言語の選び方や勉強法について相談できるタイムチケットのサービスを紹介します。