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

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

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年半にわたりコミュニティマネージャーを務めた大底春菜さんに、タイムチケットを始めるコツを聞きました。


最新の投稿


「あなたの好きな漫画やアニメの話を聞かせてください!」現役女子大生とおしゃべりを楽しもう

「あなたの好きな漫画やアニメの話を聞かせてください!」現役女子大生とおしゃべりを楽しもう

国立大学に通う理系女子大生の望月葵さん。タイムチケットで漫画やアニメについて語り合うサービスや、大学受験をはじめとする自身の経験を活かしたサービスを提供しています。おしゃべりが大好きだという望月さんは、普段ゲストの方とどんな風にサービスを提供しているのでしょうか。どんなゲストの方とも打ち解ける、その秘訣について伺いました。


“素の魅力を引き出す“撮影技術で「人のありのままの魅力をフィルムに収める」プロフォトグラファー

“素の魅力を引き出す“撮影技術で「人のありのままの魅力をフィルムに収める」プロフォトグラファー

フリーの映像作家・写真家として活動する藤原弘武さんは、タイムチケットで“人の今の素を撮る”をテーマにした「#素フォト」のサービスを提供しています。プロのモデルはもちろん、撮影に不慣れな素人まで、年間100名近くの依頼に応じている藤原さん。初対面のゲストの“素”を引き出すという、#素フォトへの思いを伺いました。


本格恋愛カウンセラーの”森高千里なりきりアイドル”「心のオアシスになります」

本格恋愛カウンセラーの”森高千里なりきりアイドル”「心のオアシスになります」

森高千里さんのなりきりアイドル「盛りたかった千里」として活動する大東明子さんは、タイムチケットで恋愛相談とフリートークのサービスを提供しています。人と人の縁と信頼関係を大切にしている大東さん。盛りたかった千里誕生の秘話や、タイムチケットでのサービス内容について伺いました。


マッチングアプリを効率的に使う方法とは?「マッチングアプリ専門」のカメラマン兼アドバイザーがノウハウを伝授

マッチングアプリを効率的に使う方法とは?「マッチングアプリ専門」のカメラマン兼アドバイザーがノウハウを伝授

タイムチケットでマッチングアプリ用の写真撮影サービスを提供する大之助さん。サービス提供を始めて4年間でチケット販売枚数850枚を超える人気のカメラマン兼アドバイザーです。なぜこれほどまでに大之助さんの撮影サービスが選ばれてきたのでしょうか。その理由は、身をもって培ったアプリ攻略経験とゲストそれぞれに対する丁寧なサービス実施にありました。


ゴルフのドラコンプロがサポートする飛距離に特化した身体づくりとは?

ゴルフのドラコンプロがサポートする飛距離に特化した身体づくりとは?

「何歳になってもゴルフを楽しめるような土台の身体づくりを支援します」。そう話すのは、飛距離専門ゴルフトレーナーの「距離出しひろみ」こと石堂裕美さん。石堂さん自身はゴルフの飛距離を競う”ドラコンプロ”として競技に参加するゴルファーであり、パーソナルトレーナーとしてゴルファーの身体づくりをサポートしています。昨今でも老若男女に人気のゴルフ。技術向上のために大切な土台作りについて教えていただきました。