入門

docs

🏗️ Spring Framework 講座【第34回】障害に強い設計!〜リトライとサーキットブレーカー〜

前回、WebClientを使って外部APIと非同期で連携する方法を学びました。これはアプリケーションの応答性を高めます。しかし、外部サービスは常に利用可能とは限りません。ネットワークの一時的な瞬断、相手サーバーの過負荷、認証エラーなど、外部...
docs

📡 Spring Framework 講座【第33回】外部サービスと通信!〜WebClientの基本と非同期通信〜

前回、アプリケーションの自動化を実現するスケジューリング機能について学びました。Webアプリケーションは、単独で完結することは少なく、決済サービス、気象情報、認証プロバイダなど、**外部のWeb API(Webサービス)**と連携するのが一...
docs

⏰ Spring Framework 講座【第32回】定期処理を自動実行!〜スケジューリング(@Scheduled)の活用〜

前回、非同期処理を利用して、アプリケーションの応答性を向上させる方法を学びました。しかし、アプリケーションの処理の中には、ユーザーのリクエストとは関係なく、「毎日深夜3時に実行する」「5分おきに実行する」といった定期的な自動処理が必要なもの...
docs

🚀 Spring Framework 講座【第31回】待ち時間をなくす!〜非同期処理(@Async)の活用〜

前回までに、Webアプリケーション開発の四大要素(Spring Core, MVC, JPA, Security)の知識が固まりました。今回からは、アプリケーションの実用性と性能を向上させるためのテクニックに進みます。Webアプリケーション...
docs

🔑 Spring Framework 講座【第29回】ユーザー認証の心臓部!〜UserDetailsServiceとPasswordEncoder〜

前回、Spring Securityの基本導入と、アクセスルールの設定方法(認可)を学びました。しかし、設定ファイルを書いただけでは、実際にユーザーをログインさせる「認証」の仕組みは動きません。今回は、Spring Securityがユーザ...
docs

🛡️ Spring Framework 講座【第28回】システムを犯罪から守る!〜セキュリティの基本とSpring Securityの導入〜

前回までで、トランザクション管理により、業務処理の信頼性を確保しました。しかし、どれだけデータが正確でも、不正アクセスや情報漏洩を防げなければ、システムは成立しません。今回からは、Webアプリケーション開発で最も重要かつ必須のテーマであるセ...
docs

🚦 Spring Framework 講座【第27回】データの衝突を防ぐ!〜トランザクションの隔離レベルと並行処理〜

前回、トランザクション(Transaction)を使うことで、複数のデータベース操作を一つのまとまり(ACID特性)として扱い、処理の信頼性を保証することを学びました。しかし、実際の業務システムでは、複数のユーザーやプロセスが同時に(並行し...
docs

🔒 Spring Framework 講座【第26回】処理の信頼性を守る!〜トランザクション管理の基本〜

前回、JPAのプロジェクションを使って効率的にデータの一部を取得するテクニックを学びました。これで、データの入出力に関する知識はほぼ完璧です。今回は、業務システムの信頼性、特にデータベース操作の信頼性を保証するための非常に重要な概念である「...
docs

🎯 Spring Framework 講座【第25回】必要なデータだけを取得!〜プロジェクションによる部分データ取得〜

前回、N+1問題を解決するために、JOIN FETCHを使って関連データを一度に取得する方法を学びました。これはパフォーマンスチューニングの強力なテクニックです。しかし、データを大量に取得する際に、もう一つ考慮すべき点があります。それは「本...
docs

⚡️ Spring Framework 講座【第24回】遅延ロードの落とし穴!〜パフォーマンスチューニングとN+1問題〜

前回、JPAのリレーションシップにおいて、パフォーマンス維持のため、関連データの取得を遅らせる LAZY(遅延ロード) フェッチ戦略が推奨されることを学びました。LAZYは非常に便利な機能ですが、使い方を誤ると、アプリケーションの性能を深刻...