カカオの面接官が教えるMSAの観点からの分散トランザクションパターン

分散環境でデータの一貫性を維持するためのSAGAトランザクション管理手法を、実習中心に学習します。Spring BootとDockerを活用して3つのマイクロサービスを構成し、OrchestrationとChoreographyの2つのパターンをKafkaとMySQLで実装します。この講義を通じて、分散トランザクションの動作原理、補償トランザクションの設計、障害復旧処理など、実務で即座に活用可能な核心概念を習得できます。

難易度 初級

受講期間 無制限

Java
Java
Spring
Spring
MySQL
MySQL
Spring Boot
Spring Boot
MSA
MSA
Java
Java
Spring
Spring
MySQL
MySQL
Spring Boot
Spring Boot
MSA
MSA

学習した受講者のレビュー

学習した受講者のレビュー

4.9

5.0

파이리이2

100% 受講後に作成

分散トランザクションについて勉強できる良い時間になりました!

5.0

keny

92% 受講後に作成

個人的にInflearnで最も有益な講義の一つではないかと思いますね。それほど内容も充実して学習することができました。ありがとうございます。

5.0

개발에 미친자

92% 受講後に作成

講義をとても良く拝見させていただきました。 初期に本当に数多くのダイアグラムを見せていただきながら、全般的なアーキテクチャとそれに伴う説明がとても気に入りましたし、不足しがちな知識と整理すべき概念は別途講義要約ファイルを通じて確認も可能でした。必要に応じてInflearnスクリプトも役に立ちました。 また復習する過程も一つ一つ再び説明してくださり、現実的な話と実務的な観点からの話もとても有益だったと思います。 とても良く拝見させていただきました。ありがとうございます。

受講後に得られること

  • 障害にも負けない分散トランザクション設計の秘訣を公開

  • Orchestration・Choreographyパターン、実務でいつどのように使うべきか?

  • Kafkaで実装するリアルタイムイベント駆動型SAGAトランザクション

  • Spring Bootで完成させる安定的な補償トランザクションアーキテクチャ

  • Dockerで直接構築するマイクロサービス・トランザクション実習

MSA環境でのACIDをどのように管理すればよいでしょうか?🤔

  • 以下の内容は実際の会話内容です。

😁 Kakao 面接官(開発者) : XX(Hong)、分散トランザクションについて勉強してみるといいよ。知ってる?

😄 Hong : そのローカルトランザクションや補償トランザクションといった概念のことだよね??

😁 Kakao面接官(開発者) : うん、SAGAパターンのことだよ。僕が面接官として活動しながらいつもこういう質問をするんだけど、知らない人が多いから君のことを思い出して聞いてみたんだ

😄 Hong : 聞いたことはありますが、コアレベルまで実装したことはありません。いわゆる Database per Service の観点までは踏み込んでいないので、概念だけ知っています

😁 Kakao 面接官(開発者) : じゃあ、このテーマについて僕が内容をまとめて教えるね。関連する講義も扱いながら一緒に進めてみよう。

😄 Hong : ㅋㅋㅋㅋㅋ いいね、じゃあ僕も後でカカオに応募する時に役立つね(笑)一度やってみよう。

もしかして、MSA環境でACIDの観点をどのように実現されていますか?? 🤔

数多くのサービスアプリケーションの関係において Database per Service の観点を実行する場合、この状況での作業に対する状態管理、およびそれに伴う Transaction をどのように保証されていますか?

その答えはSAGAパターンにあります。一つの作業を実行し処理するためには、数多くのサービスと通信する必要があり、その過程で数多くのトランザクションが発生することになります。それぞれのサービスがデータベースを持っている観点では、各作業がローカルトランザクションを実行し、障害発生時には補償トランザクションを実行するというパターンを通じて、一つの作業が完了することになります。このような分散トランザクションの機能をどのように実装できるのか、この講義をご覧になりながら、それに対する見識を深めていただけることを願っています。🚀

この講義の特徴

📌 実際のカカオ面接官(開発者)のノウハウと面接の質問を基準に構成された講義

  • 実際のカカオ面接官(開発者)が面接で質問した内容を基準に構成しました。単に面接の回答を固定的に教えるのではなく、SAGAパターンに関するあらゆる質問に対応できるように構成しています。

📌 数多くのダイアグラム、講義要約、ソースコードによる講義構成

  • 単に言葉だけで説明する講義ではなく、実際のソースコード、ダイアグラム、シーケンス図、さらに講義内容に関する簡単な要約ファイルも提供することで、学習効率を高めます。


📌 ジュニアからシニアへの近道..! MSAの観点からの分散トランザクション管理

  • MSA環境にどのような問題があるのか、それに対してどのように問題を解決できるのかをこの講義を通じて確認しながら、どのような長所と短所があるのかを明確に学ぶことができます。


こんな方におすすめです 👨‍🏫

🎯 非専攻のエンジニアだが、大容量トラフィック設計に挑戦したい方

🎯 MSA、SAGAについて聞いたことはあるが、具体的な設計方法がわからなかった方

🎯 スタートアップ/大企業のトラフィック拡張性と障害復旧力に悩むバックエンド開発者

🎯 単なるマイクロサービスを超えて、複雑な分散トランザクションを設計したい開発者

あわせて見ると良い資料 🚀

一緒に講義を作る人々🤭

⚠️ 実力派の開発者や面接官の方々の見解を垣間見ることができるチャンスをお見逃しなく!

注意事項

実習環境

  • MySQL

    • Dockerを活用して構成します。

  • Spring, Spring Boot

    • 3.x バージョンを使用します (3.2)

  • Java

    • Java(TM) SE Runtime Environment (build 17.0.12+8-LTS-286)

  • docker, docker-compose

    • Docker version 28.0.0, build f9ced58158

    • Docker Compose version 2.33.1

  • IDE

    • IntelliJ IDEA

  • OS

    • Apple M3 Air

皆さんのキャリアを準備していくためのオープンチャットルームを運営しています。たくさんの関心をお願いします!

こんな方に
おすすめです

学習対象は
誰でしょう?

  • マイクロサービス間のデータ整合性の問題で悩むサーバー開発者

  • 分散トランザクション設計を実務コードで学びたいバックエンドエンジニア

  • Kafkaベースのアーキテクチャを一段階アップグレードしたい開発者

  • Spring Bootで実践的なSAGAパターンを習得したい学習者

  • 安定した大規模システムを設計したい技術リーダーおよびアーキテクト

こんにちは
Hongです。

7,492

受講生

461

受講レビュー

142

回答

4.7

講座評価

25

講座

自己紹介

家でだらだら過ごしていたところ、開発に興味を持ち始めて勉強をスタートし、現在は板橋(パンギョ)でプラットフォームサーバーの開発を担当しています。私自身が勉強してきた方法や、実務で直面しうる様々な問題点とその解決策を皆さんに提供したいと考え、知識共有者としての活動を続けています。

 

講義は私一人の知識だけで作られるものではありません。すべての講義には、共に作り上げてくださる方々がいます。

 

知識共有者の経歴

[前] サンドボックスIP関連のブロックチェーン開発者

[前] メタバースバックエンド開発者

[] 板橋(パンギョ)でベテランになりつつあるサーバー開発者

 

インタビュー履歴

その他のお問い合わせ

  • unduck2022@gmail.com

もっと見る

カリキュラム

全体

24件 ∙ (5時間 2分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

23件

4.9

23件の受講レビュー

  • sgh1939님의 프로필 이미지
    sgh1939

    受講レビュー 8

    平均評価 5.0

    修正済み

    5

    75% 受講後に作成

    理論中心ですね。理論が80%、実習が20%程度だと思います。理論を知って実際の使用ソース例を知りたい方には適していないようです。ただし、パターンについて全く知らない方には適しています。

    • jhong
      知識共有者

      こんにちは、シム・ギュファン様、レビューを残していただきありがとうございます。単純なコーディングの時間が皆様にとって有益ではないと思い、実際の使用ソースは簡単に扱いましたが、次回はもう少し実践に近い形で準備するようにいたします。 良いレビューありがとうございます!!

  • cchoii님의 프로필 이미지
    cchoii

    受講レビュー 12

    平均評価 5.0

    5

    38% 受講後に作成

    講義作成を手伝ってくれたカカオでサーバー開発をしています。実は面接官という職責は少し隠したかったのですが...😭😭 本当に扱えばとても良いトピックだと思い、このように講義に一緒に参加することになりました。 お話ししたように、私が実際にカカオで面接を進行する際、プログラミング観点では特に気になりません。ほとんど大部分の質問がアーキテクチャ設計ができるかできないかに関する内容を多く聞き、`この人はどのような構想ができるか`をとても重要に考えています。 この観点での様々な問題が発生可能ですが、そのような要因の一つがこの分散トランザクションです。だからこの講義がそれだけ有益だと思います。 皆さんがこの講義を聞いて、このような質問に対して回答できれば、本当に意味深く学習されたと思います。 1. SAGAの二つのパターンについて教えてください(コレオグラフィー VS オーケストレーション) 2. この二つのパターンの違いと長短所について教えてください。代表的に処理量部分やそれに伴う問題点が気になります。 3. ローカルトランザクションという概念をご存知ですか??(知らなければ教えます)それではこのようなトランザクションとの関係で分散トランザクションはどのように管理できるでしょうか?? 4. 分散トランザクション観点について全般的に知っていることを教えてください。気になります。 5. Database per Serviceという観点がどのような観点かご存知ですか?? 実際に私が面接に入ると投げかける質問例です。このような部分について知っていて回答できれば大きな助けになると思います。 講義への多くの関心をお願いします。ありがとうございます!

    • jhong
      知識共有者

      これからも一緒により良い講義を作っていきましょう 😆😆 ありがとうございます!

  • sdl1355126님의 프로필 이미지
    sdl1355126

    受講レビュー 14

    平均評価 5.0

    5

    92% 受講後に作成

    個人的にInflearnで最も有益な講義の一つではないかと思いますね。それほど内容も充実して学習することができました。ありがとうございます。

    • jhong
      知識共有者

      kenyさん、良いレビューを残していただき、本当にありがとうございます!!今後もより有益な講義を提供できるよう頑張ります!

  • yoonkr232897님의 프로필 이미지
    yoonkr232897

    受講レビュー 3

    平均評価 5.0

    5

    100% 受講後に作成

    本当に有益な講義をありがとうございます。

    • feel0006171581님의 프로필 이미지
      feel0006171581

      受講レビュー 2

      平均評価 5.0

      5

      100% 受講後に作成

      分散トランザクションについて勉強できる良い時間になりました!

      • jhong
        知識共有者

        こんにちは、파이리이2さん。レビューを残していただきありがとうございます。今後もより良い講義を提供できるよう努めます。良い一日をお過ごしください!!

    Hongの他の講座

    知識共有者の他の講座を見てみましょう!

    似ている講座

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

    ¥9,759