【Day17】JavaScriptだけで保存ではなく、DBの必要性
【Day17】JavaScriptだけで保存ではなく、DBの必要性
こんにちは、Keisukeです。
最近、自分で開発・更新を続けている「生活改善Webシステム」に、小さなアップデートを入れました。
ちょっとした投稿や、履歴の記録など、ごくごく簡単なものです。
でも、実際に運用していく中で、「やっぱりDBは必要だ」と痛感した出来事がありました。
💾 JavaScriptだけでも一応動く
まず前提として、JavaScriptだけでデータを保存する手段は色々あります。
-
localStorage
:ブラウザに永続保存できる(簡単) -
sessionStorage
:一時的な保存用 -
IndexedDB
:構造化データも扱える
今回も、試作段階ではlocalStorage
で済ませていました。
自分のブラウザの中で記録が残り、動作も軽い。コードもシンプル。
とても手軽で、最初の一歩にはぴったりでした。
🤝 でも「共有」するとなると話は別
しばらくして、作ったツールを見せる機会がありました。
あ、今保存してるデータ、自分のPCでしか見れないじゃん。
そうなんです。localStorage
はその端末・そのブラウザだけにしか保存されないんですよね。
たとえばPCで入力した履歴は、スマホでは見られない。
別の人の環境では、まったくの空っぽ。
たとえ機能が簡単でも、「誰かと共有する」ことを前提にするなら、保存先は“個人の端末”じゃダメなんだということを、あらためて実感しました。
☁️ Firebaseでクラウド保存へ
その後すぐに、Firebase Firestoreと接続し、データをクラウド上に保存するように切り替えました。
結果として:
- 自分のスマホとPCでデータを共有できるようになった
- 友達にもURLをシェアすれば、同じ履歴が見られる
- 検索機能なども実装しやすくなった
機能そのものは変わっていないのに、保存場所が変わるだけで使い勝手がまるで違う。
📌 結論:「動的なものを誰かと共有したい」ならDBは必要
「この程度のアプリにDBはいらない」
でも実際には、“誰かと使う”ことを想定した瞬間に、保存の考え方が変わる。
JavaScriptだけで完結できる場合ももちろんあります。
「更新がない」「静的な状態」であれば、ある程度“共有っぽく”見せることは可能。
または自分だけが使う場合は動的でも大丈夫かと思います。
でも、端末を超える・人とシェアする・複数人で管理するといった場面では、
クラウドDBの存在は、必須。
これからも、自分の“ちょっとした疑問”や“軽い失敗”を、開発の中で紹介していきたいです。
Discussion
アプローチとしては https://sharplab.io や https://livecodes.io/ の様な 共有するURL にデータを保存するタイプのアプローチも手っちゃ手ですね。なんならファイルをダウンロードして ファイルから save / load できるでもいいかもしれません。
urlにソースを保存して実行するサービスについてはこういうリストを昔に書きました
コメントありがとうございます!
おっしゃる通りで、JavaやSwiftを使うとどうしても無料で気軽に公開・運用するのは難しいですよね。
特にSwiftはAppleの開発環境やデベロッパープログラムのコストがかかりますし、Javaもサーバーのホスティング費用や設定がハードルになります。
だからこそ、「シンプル×無料志向」
JavaScriptとFirebaseの組み合わせで、できるだけ手軽に公開・共有できる環境を選んでいます。
この構成は個人開発には本当にコスパ最強だと実感しています。
また、まさにそういうURL埋め込み型のアプローチも魅力的ですよね。
実は昔の試作段階でlocalStorageを使っていた時に似たような方法も考えていて、
「共有の壁」にぶつかった経験が今回の記事のベースになっています。
正直、技術的なことを書くより
不満に思ったことや体験談を書いたほうが、意外とみなさんの役に立つかもしれないと思い始めてきました。
忙しくてコメントに全部返信できないこともあるかもしれませんが、
そういう方向性で今後書いてみても面白いかもと思っています。