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?

【Spring Boot】Twitter風SNSアプリを1日でフルスタック開発した記録

Posted at

chatapp.png

はじめに

Spring Boot + PostgreSQL + Thymeleafでフルスタックなソーシャルメディアアプリケーションを1日で開発しました。学習記録として技術選定から実装まで簡潔にまとめます。

完成したアプリの機能

主要機能

  • ✅ ユーザー認証(ログイン・ログアウト)
  • ✅ 投稿機能(280文字制限)
  • ✅ コメント・いいね機能
  • ✅ ダッシュボード(統計表示)
  • ✅ ユーザー管理画面
  • ✅ 管理者権限(投稿削除)
  • ✅ レスポンシブUI(Twitter風デザイン)

技術スタック

分類 技術 理由
Backend Spring Boot 3.5.4 高速開発・自動設定
Database PostgreSQL 16.8 高パフォーマンス・スケーラビリティ
Security Spring Security エンタープライズレベルのセキュリティ
Template Thymeleaf Spring Boot標準・SEO対応
Frontend Bootstrap 5 + FontAwesome 高速UI開発・レスポンシブ
ORM Hibernate (JPA) オブジェクトマッピング

アーキテクチャ

システム構成

Browser → Spring MVC → Service Layer → Repository → PostgreSQL
                    ↓
               Thymeleaf Templates

パッケージ構成

  • controller/ - HTTPリクエスト処理
  • service/ - ビジネスロジック
  • repository/ - データアクセス
  • model/ - エンティティクラス
  • config/ - Spring Security設定

開発で学んだこと

1. セキュリティ設計

  • Spring Security: フォーム認証・CSRF対策
  • BCrypt: パスワードハッシュ化
  • ロールベース認可: 管理者/一般ユーザー権限分離

2. データベース設計

  • 論理削除: is_deletedフラグで安全な削除
  • 外部キー制約: データ整合性保証
  • インデックス: クエリパフォーマンス最適化

3. UI/UX設計

  • 3:9レイアウト: サイドバー+メインコンテンツ
  • CSS3アニメーション: ユーザーエクスペリエンス向上
  • Ajax非同期通信: いいね機能のリアルタイム更新

4. 開発効率化

  • Spring Boot DevTools: ホットリロード
  • Thymeleaf: サーバーサイドレンダリング
  • Maven: 依存関係管理・ビルド自動化

技術的な課題と解決策

課題1: Thymeleafセキュリティ制約

問題: イベントハンドラでの文字列連結がセキュリティエラー
解決: data属性 + JavaScript分離でセキュア実装

課題2: CSRF対策

問題: Ajax通信でのCSRFトークン管理
解決: メタタグでトークン埋め込み + Header送信

課題3: ログアウト処理

問題: Spring Securityの複雑なログアウト設定
解決: カスタムログアウト確認ページ + セッション完全削除

パフォーマンス最適化

  • HikariCP: 高速DB接続プール
  • JPA最適化: N+1問題対策
  • CDN利用: Bootstrap・FontAwesome外部読み込み
  • 圧縮: Gzip圧縮有効化

今後の拡張予定

  • API化: REST API提供
  • リアルタイム通信: WebSocket導入
  • ファイルアップロード: 画像投稿機能
  • 検索機能: Elasticsearch連携
  • Docker化: コンテナ運用
  • CI/CD: GitHub Actions

まとめ

Spring Bootのエコシステムを活用することで、1日という短期間でもエンタープライズレベルの機能を持つSNSアプリケーションを開発できました。

開発で得られた知見

  • Spring Securityの包括的なセキュリティ機能
  • Thymeleafによるサーバーサイドレンダリングの利点
  • PostgreSQLの高いパフォーマンスと信頼性
  • Bootstrapによる迅速なUI開発

フルスタック開発の経験を通じて、現代的なWebアプリケーション開発のベストプラクティスを実践できる貴重な機会となりました。


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?