バックエンド開発者なら必ず知っておくべき スプリングデータアクセス技術 Part.2
📣 ご確認ください! 本講義はJavaスプリング完全攻略シリーズの第7弾 です。優雅な兄弟たち(Woowa Brothers)最年少技術理事、キム・ヨンハンのスプリング完全攻略ロードマップをまずご確認ください。 • ロードマップリンク: https://www.inflearn.com/roadmaps/373 (クリックで移動)
VIDEO
キム・ヨンハンのスプリングDB データアクセス技術を完成させる
バックエンドのWebアプリケーションを正しく開発するには、HTTPをベースとしたMVCと、DBをベースとしたデータアクセス技術という2つの大きな軸を完成させなければなりません。私たちはこれまでの講義を通じてHTTPとスプリングMVCを完成させたので、これからは残りの一つの軸であるスプリングDBデータアクセス技術を完成させる必要があります。
✅ 事前知識を確認してください。
前回の講義である<スプリングDB 第1編> を通じて、スプリングDBの原理と構造を理解したか確認してください。
1. スプリングデータアクセス技術の基本原理の理解 2. 実務で活用されるコードで直接開発
スプリングDB1編の講義を通じて、DBアクセス技術の核心原理と構造を理解しました。今回のスプリングDB2編では、1編の基盤の上に、実務で必ず必要となる様々な活用技術を学習します。2編は大きく3つの部分に分かれています。
1) 様々なデータアクセス技術の理解
JdbcTemplate、MyBatis、JPA、Spring Data JPA、Querydslといった、実務で主に使用される様々なデータアクセス技術を、実践的な例題を通じて段階的に発展させながら学習します。この過程を通じて、それぞれの技術がなぜ必要なのか、そして各技術の長所と短所をコードで開発しながら自然に理解することができます。
2) データアクセス技術とテスト
データアクセス技術は、結局のところデータベースでデータを管理する目的で使用されます。したがって、データアクセス技術が実際のデータベースにデータを正しく保存し、照会できるかを確認しなければなりません。講義では、データベースを連動させる状況でテストをどのように行うのが良いか、段階的に説明します。
3) スプリングトランザクションの深い理解
スプリングDB1編では、スプリングが提供するトランザクション機能がなぜ必要なのか、そしてどのように動作するのか、その内部原理について学びました。今回は、スプリングのトランザクションをより深く学習し、実務での活用方法について探っていきます。
トランザクションAOP使用時の実務上の注意事項
スプリングトランザクションの様々なオプション
例外処理とスプリングトランザクションがコミットおよびロールバックされる内部原理
トランザクション伝播オプションと内部動作方式
講義の目標
目標: 実務のバックエンドアプリケーションを開発する際に必要な、膨大なDBデータアクセス技術を完成させることがこの講義の目標です。
基礎から実務まで: 実務開発のための内容が中心ですが、ウェブアプリケーションの開発経験がない開発者でも適応できるよう、段階的に構成しました。なお、スプリングDB第1部を先に受講してから、スプリングDB第2部を学習する必要があります。
実務例題中心: 実務でSpringを使用してバックエンドアプリケーションを開発する際に必要なデータアクセス技術を、例題を通じて自然に学習し、実務におけるBest Practiceを伝授します。
簡潔さ: 実務で使用されない古い機能は思い切って除外しました。最新の実務で主に使用される内容を中心に説明します。
講義内容
データアクセス技術 - JdbcTemplate
SQLを直接使用する場合、スプリングが提供するJdbcTemplateは良い選択肢です。この技術はJDBCを非常に便利に使用できるようサポートしてくれます。そして、JDBCを直接使用する際に発生するほとんどの反復作業を代わりに処理してくれます。 * 開発者はSQLを作成し、渡すパラメータを定義し、応答値をマッピングするだけで済みます。 * 実際に動作するウェブアプリケーションにJdbcTemplateを適用しながら、該当技術の長所と短所を理解します。
データアクセス技術 - MyBatis
MyBatisは、前述したJdbcTemplateよりも多くの機能を提供します。JdbcTemplateと比較してMyBatisの最も魅力的な点は、SQLをXMLに便利に記述できること、そして動的クエリを非常に便利に作成できる点です。講義では、実際に動作するウェブアプリケーションにMyBatisを直接コードで適用しながら、その技術の長所と短所を理解することができます。
データアクセス技術 - JPA
スプリングとJPAは、Javaエンタープライズ(企業)市場の主力技術です。スプリングがDIコンテナを含むアプリケーション全般の多様な機能を提供するのに対し、JPAはORMデータアクセス技術を提供します。JPAはスプリングと同じくらい膨大で、学習すべき内容も多いですが、一度学んでおけばデータアクセス技術において非常に大きな生産性の向上を得ることができます。ここでは、それらの技術の基本機能と、なぜその技術を使用すべきなのか、それぞれの長所・短所と全体像を確認します。
データアクセス技術 - スプリングデータJPA
スプリングデータJPAは、JPAをより便利に使えるようにサポートする技術です。簡単に言うと、基本的なCRUD機能をすべて提供しているため、開発者が作成すべき開発コードを画期的に減らすことができます。講義では、実際に動作するウェブアプリケーションにスプリングデータJPAを直接コードで適用しながら、その技術の長所と短所を理解することができます。
データアクセス技術 - Querydsl
JPAは複雑なクエリや動的クエリを処理するのが困難です。Querydslを使用すれば、このような問題を非常に便利に解決できます。実務でJPAを使用するなら、必ず使うべきおすすめの技術です。講義では、実際に動作するウェブアプリケーションにQuerydslを直接コードで適用しながら、その技術の長所と短所を理解することができます。
データアクセス技術 - テスト
データアクセス技術は、結局のところデータベースでデータを管理する目的で使用されます。したがって、データアクセス技術が実際のデータベースにデータを正しく保存し、照会できるかを確認する必要があります。講義では、データベースを連動させる状況でテストをどのように行うのが良いか、段階的に説明します。例えば、データベースに連動するテストをどのように構成するかを説明し、@Transactionalや埋め込みモードDBがどのように動作するかをコードで確認します。
スプリングトランザクションの理解
DB 1編では、スプリングが提供するトランザクション機能がなぜ必要なのか、そしてどのように動作するのかという内部原理について学びました。今回は、スプリングトランザクションAOPを使用する際の実務上の注意事項、スプリングトランザクションの多様なオプション、例外が発生した際にスプリングトランザクションがコミットおよびロールバックされる内部原理など、スプリングトランザクションが提供する様々な機能を深く詳しく学んでいきます。
スプリングトランザクションの伝播
スプリングのトランザクション伝播について非常に深く掘り下げます。トランザクション伝播がなぜ必要なのかを理解し、多様なトランザクション伝播オプション、伝播オプションに応じた例外処理、実務でトランザクション伝播オプションを使用する際の注意点を扱います。
知識共有者 キム・ヨンハン氏の一言
バックエンド開発者は、MVCとDBアクセス技術という2つの大きな軸を必ず完成させなければなりません。皆さんがこの2つの軸を完成させ、堅実なバックエンド開発者として成長できるようお手伝いします。ありがとうございます。
講義の順番
関連ロードマップ