シリコンバレーのAI開発者によるLLMサービスのためのRAG
Hong
LLMの限界? シリコンバレーの現場で経験したRAGの試行錯誤と運用ノウハウをもとに、実践的な問題解決法をお伝えします。
入門
JavaScript, Python, AI
分散環境でデータの一貫性を維持するためのSAGAトランザクション管理手法を、実習中心に学習します。Spring BootとDockerを活用して3つのマイクロサービスを構成し、OrchestrationとChoreographyの2つのパターンをKafkaとMySQLで実装します。この講義を通じて、分散トランザクションの動作原理、補償トランザクションの設計、障害復旧処理など、実務で即座に活用可能な核心概念を習得できます。


学習した受講者のレビュー
5.0
파이리이2
分散トランザクションについて勉強できる良い時間になりました!
5.0
keny
個人的にInflearnで最も有益な講義の一つではないかと思いますね。それほど内容も充実して学習することができました。ありがとうございます。
5.0
개발에 미친자
講義をとても良く拝見させていただきました。 初期に本当に数多くのダイアグラムを見せていただきながら、全般的なアーキテクチャとそれに伴う説明がとても気に入りましたし、不足しがちな知識と整理すべき概念は別途講義要約ファイルを通じて確認も可能でした。必要に応じてInflearnスクリプトも役に立ちました。 また復習する過程も一つ一つ再び説明してくださり、現実的な話と実務的な観点からの話もとても有益だったと思います。 とても良く拝見させていただきました。ありがとうございます。
障害にも負けない分散トランザクション設計の秘訣を公開
Orchestration・Choreographyパターン、実務でいつどのように使うべきか?
Kafkaで実装するリアルタイムイベント駆動型SAGAトランザクション
Spring Bootで完成させる安定的な補償トランザクションアーキテクチャ
Dockerで直接構築するマイクロサービス・トランザクション実習
開発・プログラミング・バックエンド
サービスごとにデータベースを分けた瞬間、一つのコミットでまとめられる範囲が終了します。決済は完了したのに在庫が減らなかった時、何をもって元に戻すのか。この講義はその問いにSAGAパターンで答えます。
SAGAは一つの大きなトランザクションを複数のローカルトランザクションに分割し、失敗した場合は補償トランザクションで元に戻すパターンです。
この講義が始まる場所
一つの塊の時
失敗すればデータベースが勝手に元に戻してくれます。開発者が手を加える必要はありません。
サービスを分けた後
3番目のサービスで失敗しても、前の2つはすでにそれぞれコミットされています。
分散環境ではロールバックが自動的に行われません。元に戻す作業を私たちがコードで作成しなければならず、その方法が補償トランザクションです。
この講義が始まったきっかけ
面接官として活動しているカカオの開発者が、先にこの話題を切り出しました。
カカオの面接官が先に話題を切り出しました。
SAGAがすること
一つの注文を処理するには、複数のサービスを経由します。各サービスは自身のデータベースにローカルトランザクションをコミットします。途中で失敗した場合、それまでに成功した処理を一つずつ取り消す作業を逆方向に実行します。
元に戻す方法は一つではありません。データベースが行ってくれるRollbackと、私たちが作るCompensation(補償トランザクション)は別物であり、セクション4ではその違いから詳しく解説します。
何を学ぶか
二つの実装体
SAGAを実装する方式は大きく分けて2つあります。面接で最も意見が分かれるポイントでもあります。
どちらか一方だけを学ぶのではありません。セクション3でそれぞれの成功・失敗の流れと長所・短所を比較し、最後のセクションで同じ例題を両方の方式で作ってみます。
実習環境
電子決済の例題を3つのアプリケーションに分けて作成します。環境はDocker Composeで一度に立ち上げます。
スケルトンコードと完成版の両方が資料として含まれています。最初から書くのが負担であれば、スケルトンから始めても構いません。
理論で終わりません
最後のセクションで3つのアプリケーションを直接作成し、2つの方式で実行してみます。
커리큘럼 보기カリキュラム
前半でなぜ問題になるのかとそのパターンを把握し、後半で環境を構築して直接実装します。
このような方に
今の市場
新卒採用は減り、企業は検証済みの人材(即戦力)だけを採用しようとしています。ここ数ヶ月の間に出た記事の内容です。
企業が不安を感じている分、選ばれる側はより明確な差を見せなければなりません。勉強は結局自ら行うものですが、何をどのような視点で見るかによって、同じ時間を使っても説明できる深さが変わってきます。この講義はその視点を伝えるために作りました。
受講評
インフロン(Inflearn)の受講レビューからそのまま引用しました。
"講義、とても楽しく拝見しました。序盤に本当に数多くのダイアグラムを見せながら、全般的なアーキテクチャとそれに伴う説明をしてくださったのが非常に気に入りましたし、不足しがちな知識や整理すべき概念は別途、講義要約ファイルを通じて確認することもできました。また、復習の過程も一つひとつ丁寧に説明してくださり、現実的な話や実務的な観点からの話も非常に有益だったと思います。"
開発に狂った者 · 92% 受講後に作成
"個人的にInflearnで最も有益な講義の一つではないかと思います。それほど内容も充実しており、しっかりと学習することができました。ありがとうございます。"
keny · 92% 受講後に作成
"分散トランザクションについて勉強できる良い時間になりました!"
パイリ2 · 100% 受講後に作成
講師
カカオ本社でサーバーを開発し、面接官としても活動している12年目の開発者Choiと、板橋(パンギョ)のプラットフォームサーバー開発者Hongが共同で制作しました。
カカオ本社でサーバーを開発している12年目のバックエンドエンジニアであり、面接官としても活動しています。面接ではプログラミングの文法よりも、設計ができるかどうかを主に見ています。その視点を講義にそのまま反映させました。
「面接でプログラミングの文法はほとんど聞きません。設計ができるかどうかを見ます。」
現カカオ本社サーバー開発者・面接官・コンピューター工学専攻
板橋(パンギョ)でプラットフォームサーバー開発を担当しています。自身が学んだ方法や、実務で直面する問題・解決策を共有するために、知識共有者としての活動を続けています。講義は一人ではなく、現職の複数の開発者と共に制作しています。
"サービスを分けるのは簡単ですが、分けた後に失敗をどう扱うかが難しいです。"
よくある質問
サービスを分割した後に必要なのは、より大きなトランザクションではなく、別の設計です。
결정하기 전에 커리큘럼 다시 훑어보기一緒に語り合いましょう
一人で詰まると時間がかかります。講義を聞いていて気になった部分、自身のサービスに適用しながら生じる疑問、キャリアや現場の話まで、気軽に共有できる空間が別途用意されています。
実務で実際に直面する問題、他の方々がどのような構造を選んだのか、そして開発者のキャリアについての話を共有します。講義に関する質問も歓迎です。
「行き詰まる部分は、大抵他の人も行き詰まる部分です。先に通り過ぎた人に聞くのが一番早いです。」
学習対象は
誰でしょう?
マイクロサービス間のデータ整合性の問題で悩むサーバー開発者
分散トランザクション設計を実務コードで学びたいバックエンドエンジニア
Kafkaベースのアーキテクチャを一段階アップグレードしたい開発者
Spring Bootで実践的なSAGAパターンを習得したい学習者
安定した大規模システムを設計したい技術リーダーおよびアーキテクト
インフラン認証
キャリア認証
9,281
受講生
596
受講レビュー
165
回答
4.8
講座評価
31
講座
家でだらだら過ごしていたところ、開発に興味を持ち勉強を始め、現在は板橋(パンギョ)でプラットフォームサーバーの開発を担当しています。私が勉強してきた方法や、実務で直面する可能性のある様々な問題点とその解決策を皆さんに提供したいと思い、知識共有者としての活動を続けています。
講義は私一人の知識だけで作られるものではありません。すべての講義には、共に作り上げてくださる方々がいます。
Tossの開発者からの推薦で合流されたシリコンバレーの開発者 Waddy, người đã tham gia theo lời giới thiệu của một nhà phát triển từ Toss
[知識共有者の経歴]
[前] サンドボックスIP関連ブロックチェーン開発者
[前] メタバースバックエンドエンジニア
[現] 板橋(パンギョ)でベテランになりつつあるサーバー開発者
[インタビュー履歴]
[その他のお問い合わせ]
[公式サイト]
全体
24件 ∙ (5時間 2分)
講座資料(こうぎしりょう):
全体
33件
4.8
33件の受講レビュー
受講レビュー 19
∙
平均評価 5.0
5
個人的にInflearnで最も有益な講義の一つではないかと思いますね。それほど内容も充実して学習することができました。ありがとうございます。
kenyさん、良いレビューを残していただき、本当にありがとうございます!!今後もより有益な講義を提供できるよう頑張ります!
受講レビュー 12
∙
平均評価 5.0
5
講義作成を手伝ってくれたカカオでサーバー開発をしています。実は面接官という職責は少し隠したかったのですが...😭😭 本当に扱えばとても良いトピックだと思い、このように講義に一緒に参加することになりました。 お話ししたように、私が実際にカカオで面接を進行する際、プログラミング観点では特に気になりません。ほとんど大部分の質問がアーキテクチャ設計ができるかできないかに関する内容を多く聞き、`この人はどのような構想ができるか`をとても重要に考えています。 この観点での様々な問題が発生可能ですが、そのような要因の一つがこの分散トランザクションです。だからこの講義がそれだけ有益だと思います。 皆さんがこの講義を聞いて、このような質問に対して回答できれば、本当に意味深く学習されたと思います。 1. SAGAの二つのパターンについて教えてください(コレオグラフィー VS オーケストレーション) 2. この二つのパターンの違いと長短所について教えてください。代表的に処理量部分やそれに伴う問題点が気になります。 3. ローカルトランザクションという概念をご存知ですか??(知らなければ教えます)それではこのようなトランザクションとの関係で分散トランザクションはどのように管理できるでしょうか?? 4. 分散トランザクション観点について全般的に知っていることを教えてください。気になります。 5. Database per Serviceという観点がどのような観点かご存知ですか?? 実際に私が面接に入ると投げかける質問例です。このような部分について知っていて回答できれば大きな助けになると思います。 講義への多くの関心をお願いします。ありがとうございます!
これからも一緒により良い講義を作っていきましょう 😆😆 ありがとうございます!
受講レビュー 3
∙
平均評価 5.0
受講レビュー 24
∙
平均評価 5.0
5
大きな枠組みを捉えるのに良かったです。
こんにちは、배고프면근손실(お腹が空いたら筋肉減少)様!!素敵なレビューを残してくださり、本当にありがとうございます。今日も良い一日をお過ごしください!
知識共有者の他の講座を見てみましょう!
同じ分野の他の講座を見てみましょう!