🔧

【DAY65】Spring Boot改修計画:Firebaseでは実現できないJAVAの強み

に公開

はじめに

過去に作成したSpring BootベースのWEBシステムが手元にあり、編集や改修が可能な状態。そのため、これを活かして、今のニーズに合わせた改善を進めていこうと考えている。最近取り組んでいたシステムもあるので、その回収にまずは集中してみた。

ただ、新たなアイディアが浮かんでいない状態で、どう進めるべきか迷う部分もあるが、まずはSpring Bootの改修を進めることにした。

Firebaseの限界と、Java(Spring Boot)の選択理由

Firebaseの無料枠は個人開発や小規模なシステムには十分有用だが、以下の点で限界を感じている。

  • バックエンドの自由度が低い(主にCloud FunctionsやFirestoreに依存)
  • データベース設計の柔軟性がない(NoSQLでの設計が難しい)
  • トランザクション処理が難しく、大規模な処理に不向き
  • 複雑な業務ロジックマルチスレッド処理を扱うのが厳しい

一方で、Java(Spring Boot)は次のような強みがある。

  • 業務ロジックを自由に組み立てられ、柔軟なアーキテクチャが設計可能
  • 豊富なライブラリとミドルウェアとの連携が容易
  • スケーラブルな設計が可能で、大規模システムにも対応できる
  • トランザクション制御や複雑なセキュリティ管理に強い

改修に取り組んだシステム

今回取り組んでいるのは、過去に作成したシステムのパフォーマンス改善と機能拡張だ。現状では、データベース設計やセキュリティ管理に不満があり、これらをSpring Bootにしっかりと統合する形で改修を進めている。

具体的な内容としては:

  • DB設計の見直し:MySQLからPostgreSQLに移行、テーブル設計を見直す
  • 認証機能の強化:Spring Securityを使用して、より堅牢な認証基盤を構築
  • APIリファクタリング:現在のREST APIのパフォーマンスを改善、エラーハンドリングを強化

今後の課題と展望

今のところ、新しいアイディアが固まっていない状態だが、次のステップとしては以下の点を考慮する予定。

  1. UI/UX改善:現在のフロントはかなりシンプルなので、Reactを使ってよりインタラクティブにしてみたい
  2. APIのモジュール化:バックエンドは今後のスケーラビリティを考慮して、APIのモジュール化を進めたい
  3. CI/CD環境の整備:デプロイの手間を省くために、GitHub Actionsなどを使ったCI/CDパイプラインを構築

いずれも、Spring Bootの強みを活かして、堅牢で拡張性のあるシステムにしていくことが目標だ。

まとめ

Firebaseは短期間での開発には強力だが、特に大規模システムや複雑な業務ロジックには限界がある。今回、過去のSpring Bootを改修しつつ、新たなアイディアが出るのを待ちながらシステムを進化させていく。

次回の作業としては、改修の成果を確認しながら、UIの改善や新機能の実装に取り組んでいく予定。

GitHubで編集を提案

Discussion