私はWeb業界に飛び込んでからずっと、Webフロントエンドを中心にクライアント側の立場からWebサービスの開発に携わってきました。
データベースと直接連携したAPIの作成経験は乏しく、私はBFF(Backend For Frontend)上でサーバーサイドの開発者が作ったAPIを叩くことが多かったです。
しかし、今後のキャリアを考えたときに、データベースならびにそこに入っているデータを触れないならキャリアは詰む一方だと考えました。なので、まずは基本情報技術者に出てくる範囲の勉強をしました。
なぜデータベースを触れる経験が乏しいままだったのか?
ひとえに「データベースを触ることが怖かった」ことが原因です。「自分が操作することでデータベース内のデータに不整合が起きたらどうしよう」「セキュリティ上の不備で漏れてはいけないデータが漏れたらどうしよう」といったことを考えてしまっていました。ただ、食わず嫌いになっていたと感じますし、責任を負うことから逃げていたとも言えます。
あとはクライアントとサーバーで分業していたことが多く、Webフロントエンドだけ触っていれば何とかなったという感じです。
今後数年でWeb系のソフトウェア開発者はフルスタック化が進む
しかし「データベースを触ることが怖い」と言っている暇は無くなりました。それは私が以下に書くようなことが、この先数年(もしかしたら1年くらいかも)の間に起こってくると考えているからです。
2025年は日本においてさまざまなAIエージェントが実用化した年でした。Vibe Codingというキーワードが英語圏で生まれ、複数企業で生成AI導入を個人単位で補助する動きが生まれ、SNSでは毎日AIエージェントを前提としたワークフローの構築をした話が流れてきます。
この流れは止まらず、2026年はよりAIエージェントが開発フローに組み込まれることでしょう。また、単純なタスクをやる場合はAIエージェントにやってもらうのが圧倒的に早いです。
こうなった場合、ソフトウェア開発者はより多くのことをこなす必要が出てくるでしょう。クライアント・サーバー・インフラと一気通貫して開発することが普通になるかもしれません。またシフトレフトが発生して、要求・要件整理から積極的に関わることが求められることも考えられます。
AIエージェントが出力したものを判断できるようにする
先ほども書いた通り、AIエージェントはコードを書く速度が人間と比較して早いです。
一方で知識を元に最適な構造を考えるのは、人間のほうが今は早いです。これを踏まえると、人間は要求や要件と設計をして、タスクを小さな粒度に分けたうえで、AIエージェントと一緒にコーディングするかもしくはAIエージェントにコーディングを委託するかという選択になるでしょう。
どちらにしてもAIエージェントがワークフローに入ります。こうなると人間はAIエージェントによって生成されたコードが基準に沿っているのか判断し、責任を持たないといけません。処理がブラックボックスのままだと何かあったときにすぐ修正できない(またはAIエージェントに修正させても明後日の方向に修正されてしまう可能性がある)ためです。
データベースとSQLの基本を学んだ
今まで書いた予想やあるべき姿を踏まえ、私が弱いと感じていたデータベースとSQLの基本を学びました。
いちばんやさしい 基本情報技術者 絶対合格の教科書+出る順問題集という本を参考に、基本情報技術者試験で出る範囲をカバーしつつ、足りないなと感じた点はPostgreSQLの現バージョンのドキュメントやAWSのドキュメントなどを見て勉強し、それらをCosenseにまとめました。
- データ構造 - kuboshoの脳内dump
- データベースの概念・特性 - kuboshoの脳内dump
- データベース操作・集計 - kuboshoの脳内dump
- データのやり取り - kuboshoの脳内dump
勉強した感想として、基本情報技術者試験に出る範囲だけでは、業務に応用できる範囲が限られるなと感じました。しかし、基本を触ったことにより食わず嫌い感は無くなって、じゃあ実際にやってみようと前向きになれました。
あと業務において、クライアント都合でサーバーサイドの開発者に負担をかけていたかもしれないなと反省した部分もありました。テーブル同士を結合した結果、データ量がどうしても膨らみ、処理に時間がかかるのをどう解消するかといったところに立ち向かっていたんだなと改めて考えました。
まずは個人開発を通じてフルスタックな経験を得る
noteに証明する|kuboshoという記事を書きましたが、そこにも書いた通りアイデアはあるので、それを来年2月末までに具現化する予定です。いくつ具現化できるかは分からないですが、具現化はします。
今まではデータベース連携がない、もしくは自分がデータ管理をしなくても良い状態でモノを作ることが多かったです。データベースとの連携もやることでより多様なアプリケーションを作れるようにはなるでしょう。
ただデータベース周りはSQLインジェクションやデータ不整合への対処、N+1問題やスロークエリ、デッドロックなど、いろいろ考えないといけないことがあるのは把握しているので、それらをどう防ぐのか、起きた場合はどう対処するのかを実際にやっていく必要があると考えています。
まとめ
基本情報技術者試験は、来年1月に受けます。その先の応用情報技術者試験も受ける予定ですし、その先の高度情報処理技術者も受けてみたいですね。
その過程で、PostgreSQLをリファレンスしたデータベース技術者認定「OSS-DB」を受けてみるのも良いかもしれません。
と、最後にPR要素をちょっと入れたところで、あの時「もっと◯◯を勉強しておけば!」と思った話 by エルピーアイジャパン - Qiita Advent Calendar 2025 7日目の記事を終わります。