0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

コーダーだった私が開発1年目でバックエンドに体当たりした話 〜前編:何も分かっていなかった私〜

0
Last updated at Posted at 2026-05-08

🕒 読了目安:約 5 分

💬 この記事でわかること

  • フロントエンドしか経験がない状態から、バックエンド・インフラを含めた全体設計をどう考え始めたか
  • 「API・Lambda・インフラ構成」など、最初につまずくポイントとその正体
  • 1から開発するときに必要な、“コードを書く前に決めるべきこと”の全体像

💻 実行環境 / 前提条件

  • フロントエンドエンジニア1年目
  • 現在の使用技術:Vue.js
  • 以前の環境:ウォーターフォールでコーダーとしてwebサイト制作
  • 現在の環境:スクラム開発
    バックエンド・インフラ経験ほぼなし

1. はじめに

事務所の移転が近づいてきたある日。
社長から突然、タブレットを渡されてこう言われました。

「これ、受付で使うから。来客が来たらSlackに通知飛ぶように作ってほしい」

いわゆる、受付に設置したタブレットに来客者が名前や人数を入力すると、担当者に通知が飛ぶような仕組みです。
それを聞いたとき、私はこう思いました。
「面白そう!Vue.jsで入力フォーム作って、送信ボタン押したら終わりでしょ?」
今思えば、この“軽い気持ち”こそが、後に自分の無知さを突きつけられるフラグでした...

2. 疑問すら浮かばない「フロントしか知らない」頭の中

当時の私は、完全に「フロントエンドの世界」だけで完結していました。

  • 要件を聞く
  • デザインを作る
  • コーディングする
  • 納品する

「開発ってこういうものだよね」と、本気で思っていました。

しかし、いざ設計の話を先輩に相談した瞬間、空気が一変します。

  • 「APIはどうやって叩くの?バックエンドは何で作る?」
  • 「リポジトリどうする?構成は?」
  • 「Node.jsのバージョン管理とか、環境構築どうする?」

「……なにそれ?」
正直、会話の半分以上が理解できていませんでした。
API?リポジトリ構成?Node.jsのバージョン管理?
聞いたことはあるけど、ちゃんと説明できるレベルではない単語ばかり。

「フォームを作る」ことしか考えていなかった自分に対して、
先輩たちは“別世界”の話をしているような感覚でした。

完全に、会話のスタートラインにすら立てていない状態です。

🔍 なぜ何も考えられなかったのか

理由1:開発の「裏側」を完全にスキップしていた

これまでの業務では、

  • 用意されたAPIを叩く
  • 用意されたリポジトリにPushする

それだけで仕事が成立していました。
だから私は、「送信ボタンを押したあとに何が起きているのか」を一度も深く考えたことがありませんでした。

データがどこに送られて、どこで処理されて、どうやってSlackに届くのか。
そういった一連の流れはすべて、

「誰かがいい感じにやってくれているもの」
として、完全に思考停止していたんです。

今回初めて、「その“いい感じ”の中身を自分で考えないといけない」状況になり、
何も分からない自分に気づかされました。

🔍 理由2:インフラを“触ったことがあるだけ”だった

AWS自体は、これまでの現場でも触っていました。

ただし実際にやっていたことは、「CloudWatchでログを確認する」、「デプロイされたものの動作をチェックする」

これだけ。

自分の書いたコードがどうやってビルドされるのか、どこにデプロイされているのか、どんな構成で動いているのか。
このあたりはすべてブラックボックスのままでした。

「触ったことがある」と「理解している」は全く別物だったんだと、このとき痛感しました。

🔍 理由3:「開発=画面を作ること」だと思い込んでいた

そもそも一番の問題はここでした。

私はずっと、「開発=画面を作ること」
だと思っていました。

でも実際には、
👉 データをどう扱うかを決める
👉 処理の流れを設計する
👉 システム全体を組み立てる

こういった“見えない部分”の方が、はるかに重要でした。フロントエンドは、その一部でしかなかったんです。

3. 1から開発する上で「決めるべきこと」の正体

そんな状態のまま、「とりあえず作ってみます」と言いかけた私に、先輩がこう言いました。

「じゃあ、このシステムどういう構成で作るの?」

ここで初めて、「何をどう組み合わせて作るのか」を考えないといけないことに気づきます。

■ フロントはどこに置くのか

まずはフロントエンド。
Vue.jsで画面を作るのは決まっている。じゃあ、それをどこで公開するのか?

今回は、
👉 S3にファイルを配置(オリジン)
👉 CloudFrontで配信(キャッシュサーバー)

という構成になりました。
これまで「デプロイされたものを使う側」だった自分にとって、
“どこに置いて、どう届けるか”を考えるのは初めての経験でした。

■ APIはどう作るのか

次にぶつかったのが、フロントの“その先”。
「入力された情報、どこに送るの?」
ここで初めて、「APIを自分で用意する必要がある」ことを理解します。

今回の構成は、
👉 Lambda(Python)で処理を書く
👉 API GatewayでHTTP通信できるようにする
👉 エンドポイントを作成して、フロントから叩く

つまり、
「送信ボタンを押す」=「どこかのURL(エンドポイント)にリクエストを送る」
という当たり前の仕組みすら、このとき初めてちゃんと認識しました。

■ Slackとどう連携するのか

Slack APIを使う必要がある。しかも、アプリ作成にはadmin権限が必要で、権限持ちの人に依頼して環境を作ってもらう必要がある。

「コード書けば終わり」ではなく、
そもそも“使うための準備”が必要な領域があることをここで知りました。

🧩 システム全体の流れ

  1. フロント(Vue.js)で入力された情報を受け取る
     → タブレットで訪問者が名前などを入力する
  2. API Gateway経由でLambdaにリクエストを送る
     → フロントからURL(エンドポイント)に対してデータを送信する
  3. Lambdaでデータを整形する
     → 受け取った情報を取り出して、Slackに送る形式に整える
  4. Slack APIを使って通知を送る
     → 社内のチャンネルに来客通知が届く

🔐 セキュリティ(追加で考えること)

さらに今回は社内用ツールなので、 誰でもアクセスできる状態はNG

そのため、
WAFを使ってIP制限をかける
社内ネットワーク or VPNからのみアクセス可能にする

といった対応も必要でした。

たったこれだけのシンプルな仕組みのはずなのに、
当時の自分には、すべてがバラバラの要素に見えていました。

4. 今の自分なりの答え

今回の経験を経て、私はこう考えています。

「エンジニアの仕事は、コードを書くこと以上に、データの流れを設計することにある」

以前の「デザイン通りに組めれば正義」という固定観念を捨て、「このデータはどこへ行き、どこで処理され、誰に届くのか」というシステム全体の視点を持つことで、ようやくスタートラインに立てた気がします。

📣 最後に

中編では、実際にCodeCommitのセットアップや、Node.jsの環境構築周りのエピソードをお届けします!

皆さんが初めて「1からプロジェクトを立ち上げた時」の失敗談があれば、ぜひコメントで教えてください!
「自分も最初はそうだったよ!」という励ましもお待ちしております!

🏢 所属会社

日々、Web開発をしながら学んだことを発信しています。
この記事も、実際の業務経験をもとにまとめました!

会社サイトはこちら👇
https://onewedge.co.jp/

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?