강의

멘토링

커뮤니티

NEW
Programming

/

Back-end

最も簡単な並行性問題 - Race Condition

代表的な並行性問題である競合状態(Race Condition)をテーマに学習します。 並行性問題を発生させる単一サーバー環境と分散環境を比較しながら実習します。 トランザクション境界と分離レベルを理解できます。 楽観的ロック、悲観的ロック、分散ロックの違いを学ぶことができます。

14名 が受講中です。

  • joyopi
실습 중심
낙관적락
비관적락
분산락
동시성문제
Docker
Spring Boot
DBMS/RDBMS
Redis
k6

受講後に得られること

  • 並行性問題の根本的な原因と解決方法

  • 単一サーバー環境と分散サーバー環境で同時性問題を解決する方法

  • 楽観的ロック、悲観的ロック、分散ロックを正しく理解して使用する

  • トランザクション境界と分離レベルの理解

  • IntelliJ IDEA、Docker、k6の活用方法

並行性の問題、まだ混乱していますか?

この講義で楽観的ロック、悲観的ロック、分散ロックなど同時性問題の概念と解決方法を正確に理解しましょう。

  • 並行性問題を発生させる環境を作って、実際に並行性問題を体験します。

  • 単一サーバー環境と分散サーバー環境での同時性問題の違いを確認してください。

  • 正確に知らずに使用していた@Transactionalアノテーションの使用方法を理解することができます。

  • 並行性の問題は一つなのに、なぜ解決方法は複数あるのでしょうか?理由を確認してみてください。

こんな方におすすめです

この講義を受講すべき方 (1)

並行性の問題、実はまだよく分からないんです。😅

この講義を受講すべき方 (2)

楽観的ロック、悲観的ロック、分散ロックの違いを正確に理解できていません。🌧️

この講義を受講すべき方(3)

並行性の問題はどのようにテストすべきでしょうか?📜

受講後には

  • 実務で最も多く発生する同時性問題である競合状態(Race Condition)について理解することができます。

  • よく分からずに使っていた@Transcationalアノテーションを正しく使用できるようになります。

  • 単一サーバー環境と分散サーバー環境における同時性問題を理解し、正確に解決することができます。

  • トランザクション分離レベルと境界について理解し、実務に適用することができます。

この講義の特徴

便利な実習のためのIntelliJ IDEAの活用とNotion、Githubを活用した講義資料提供

この講義の核心的な強み (1)

IntelliJにこんな機能があったんですね。😲

実行されたAPIアプリケーションにテストリクエストを送信し、DBに接続してデータを管理し、Redisに保存されたデータを確認する作業をIntelliJですべて一度に進行します。

この講義の核心的な強み (2)

リアルタイムで更新が反映されるNotionの講義資料を提供します。

実習をしっかりと進められるよう、プロジェクトコードをGitHubリンクで提供いたします。

こんな内容を学びます

並行性問題の根本的な理由と解決方法

並行性問題の根本的な理由をご存知ですか?

根本的な原因から理解して解決方法を学べば、より正確に問題を理解し解決することができます。

講義では並行性問題の概念から把握して始めます。

分散環境で実習する様々な解決方法

同時性の問題は、単一サーバー環境と分散サーバー環境で異なって発生します。同じ解決方法を適用しても、環境によって問題が解決されない場合があります。

どのような環境でどのように使用すべきかを知っていてこそ、実務にすぐに適用することができます。

2つのアプリケーションを同時に実行して分散環境を構成します。

この講義を作った人

  • (現)AhnLab バックエンド開発者


ご質問はありますか?

Q. 並行性の問題というテーマがとても難しく感じられます。🫥

並行性の問題が難しく感じられる理由は、概念が複雑だからではなく、実務で直接経験するまで感覚が掴めないからです。
講義では核心概念だけを厳選し、実習中心で説明します。
コードですぐに確認できるため、素早く理解していただけます。

Q. Spring BootやJPAについてまだよく分からない状態です。🤦‍♀️

Spring BootとJPAを深く知る必要はありません。
並行性の概念はフレームワークとは別に理解できます。
講義では必要な部分だけを最小限に説明し、すぐに実習に適用します。
実習で使用したプロジェクトコードもGitHubで提供しているので、すぐについてこられます。

Q. 並行性の問題は実務でよく発生するのでしょうか❓

はい、実際のサービスでは頻繁に発生します。
トラフィックが多かったり共有リソースへのアクセスがある構造では、ほぼ必然的に現れます。
特に在庫減少、決済、予約のような状態変更ロジックで頻繁です。
そのため初期設計段階から同時性制御戦略を考慮することが実務では推奨されます。

受講前の参考事項

講師の実習環境

  • オペレーティングシステムおよびバージョン:Windows 11

  • 使用ツール:IntelliJ IDEA Ultimate Edition、Docker、k6、Spring Boot、DBMS/RDBMS、Redis


前提知識および注意事項

  • Spring Boot、JPA、RDBMS

  • この講義は同時性問題を実習するために瞬間的に多くのリクエストを作る環境で実習していますが、大量のリクエストを問題なく処理する方法についての講義ではありません。

  • 大量のリクエストを処理する方法と同時性問題を処理する方法は、互いに異なるトピックであることをお知らせします。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • 同時性の問題と解決方法に悩み続ける開発者

  • 同時性問題に関連するトランザクションを理解したい開発者

  • 楽観的ロック、悲観的ロック、分散ロックの違いを理解し適用したい開発者

前提知識、
必要でしょうか?

  • 簡単なAPIバックエンドサーバー開発経験(Spring Boot)

  • データベース(RDBMS、NoSQL)に関する基礎知識

こんにちは
です。

(현) 안랩 백엔드 개발자

カリキュラム

全体

25件 ∙ (3時間 54分)

講座掲載日: 
最終更新日: 

受講レビュー

まだ十分な評価を受けていない講座です。
みんなの役に立つ受講レビューを書いてください!

期間限定セール

¥4,411

28%

¥6,176

似ている講座

同じ分野の他の講座を見てみましょう!