シリコンバレーのAI開発者によるLLMサービスのためのRAG
Hong
LLMの限界? シリコンバレーの現場で経験したRAGの試行錯誤と運用ノウハウをもとに、実践的な問題解決法をお伝えします。
入門
JavaScript, Python, AI
この講義はKotlinとSpring Bootを活用し、マルチモジュールプロジェクトをゼロから構築する方法を扱います。 モジュール化の基本概念からGradle設定、モジュール間の依存性管理、実際のアプリケーション開発まで実習を中心に進めます。 初心者から中級開発者まで、マルチモジュールの基礎と実務への適用を学びたい時に、本講義を参考にしてください。
受講生 270名
難易度 初級
受講期間 無制限
学習した受講者のレビュー
5.0
Hoos
簡単な資金移動について発生可能な問題点を認識できる講義のようで、この解決策は他のサービスでも包括的に使用可能な部分のようです。良いテーマの講義だと思います。そして、もう少し銀行機能に集中するよりは、プロジェクト管理についてもう少し集中すると見ていただければ、この講義を受講するのに多くの助けになると思います。個人的にはプロジェクト管理に集中して聞いたので、より満足感のある講義として感じられました。良い講義をありがとうございます!
5.0
개발 잘하고 싶다...
初めて触れる内容でもあり、何か私の視野が少し広がることができた講義だったと思います。プロジェクト管理やアーキテクチャの観点で多くの助けになりました。ありがとうございます。
5.0
devHand
実際の機能実装とサーバー管理についての有益な講義だと思いましたし、デバッグの様子もリスクが多かったと思いますが、現実的に見せてくださったのがとても参考になりました。 内容自体も良いのですが、様々な点で学べることが多くあるようです。 講義、大変勉強になりました。
コマンド(Command)とクエリ(Query)を分離するCQRSアーキテクチャ
Springを活用したイベント駆動非同期処理
Write/Read Model 間のデータ同期処理
Prometheus + Grafana を活用したシステムメトリックモニタリング
大規模プロジェクトのためのMulti Moduleプロジェクト設計
マルチモジュールを活用した責任分離および依存性管理戦略
複雑なビジネス要件を明快に解決し、障害状況でも自ら回復するインテリジェントなバックエンドシステムを直接設計・構築することになります。
🏛単純にCRUD APIを作ることを超えて、時間が経っても保守しやすく、ビジネスの成長に応じて拡張可能なアーキテクチャの核心原理を体得します。まず、ドメイン駆動設計(DDD)を通じて複雑な金融ドメインをコードで明確にモデリングし📝、CQRS(コマンドクエリ責任分離)パターンを適用してデータの変更と照会を分離します。これにより、書き込み作業の安定性と照会性能の最適化という二兎を追う方法を学びます。
システム全体が一つの障害で崩れない強力な弾力性を備えるようになります。📨イベント駆動アーキテクチャ(EDA)を導入して各モジュール間の結合度を下げ、非同期方式で通信する方法を学び、🔑分散ロック(Distributed Lock)を活用して複数のサーバー環境でもデータの整合性を完璧に保証します。
ここに🛡サーキットブレーカーパターンを加えて、特定のサービスの障害がシステム全体に伝播することを防ぐファイアウォールを構築するノウハウを身につけることになります。
最後に、「勘」ではなくデータに基づいてシステムを運営する「観測可能性(Observability)」を確保します。PrometheusとGrafanaを連携してアプリケーションの核心メトリクスをリアルタイムで収集し📊、これを可視化して潜在的な問題を事前に検知し、性能ボトルネック地点を正確に見つけ出す技術を学習します🩺。
理論だけで終わらず、実際のサービスにすぐ適用可能な技術を皆さんのものにしてみてください。一緒に悩み、成長する時間になるでしょう。
Spring Bootと100%互換性があると言われており、JetBrainが開発したKotlinという言語は、Springには適していない並行プログラミングに最適化されています。
Kotlinは簡潔で直感的な文法を提供する形態であるため、開発者がより少ないコードでより多くの作業を実行することができます。これは可読性向上の効果があり、保守をより容易にします。Kotlinは基本的にnull安全性をサポートしており、NullPointerExceptionを減らすことができます。また、関数型プログラミングをサポートしているため、より機能的で宣言的な方法でコードを書くことができます。これらの機能は開発生産性を向上させ、バグ発生の可能性を減らしてくれます。Kotlinは100%Javaと互換性があるため、既存のJavaプロジェクトに簡単に統合できます。これは、Java開発者がKotlinを学ぶ際に大きな障壁がなく、既存のコードを維持しながらも新しいKotlin機能を使用できることを意味します。MSA(マイクロサービスアーキテクチャ)の基盤となるモジュール設計方法とドメイン駆動設計について学習します。複雑なビジネス要件を明確で保守しやすいコードで構成する方法を学びます。各モジュール(api、core、domain、event)がどのように役割を分担し、ドメインモデルを中心としてアプリケーションを設計するかを学習します。
データの変更(Command)と照会(Query)ロジックを分離してシステムの性能と拡張性を高めるCQRSパターンを学習します。書き込み専用モデルと読み込み専用モデルをそれぞれ最適化する方法を理解し、実際のコードで実装しながら、同時性の問題を減らし、各モデルに適したデータベースを選択する方法も一緒に学習します。
システムの各部分を独立したサービスとして構築し、イベント(Event)を通じて相互に通信させる方法を学びます。モジュール間の結合度を下げ、非同期処理により全体システムの応答性と弾力性を向上させる原理を学習します。
外部システムの障害が全体システムに伝播することを防ぐサーキットブレーカーパターンを学びます。一時的なエラーからシステムを保護し、障害発生時にも安定的にサービスを運営する方法を学習します。これを通じてシステムの回復弾力性を高める方法を理解するようになります。
複数のサーバーが同時に同じデータにアクセスする際に発生する問題を解決する分散ロックの原理を学びます。Redisのような外部ストレージを活用してデータの整合性を保証する方法を学習し実装します。これにより、並行環境で安全にデータを処理する能力を身につけます。
アプリケーションの状態をリアルタイムで把握し、問題を迅速に診断する方法を学びます。Prometheusを使用してメトリクスを収集し、Grafanaを通じて可視化する全体的なモニタリングパイプラインを構築し学習します。システムの透明性を高めて運用効率を最大化する方法を学ぶことができます。



関連関係のあるデータを扱うために、リレーショナルデータベースであるMySQLが使用されます。
JPAを構成し、Entityを作成してデータ間の関連関係を明示するコード方式を通じて、サービス開発において柔軟な構造を持つことができるようになります。
実際のMySQL Databaseには接続しません。SQLクエリのみを作成し、H2を活用してテストを進めることを目標とします。
Resilience4jを使用して関数型方式で実装され、サービス別に独立したCircuitBreakerインスタンスを生成して障害状況に対する分離と復旧を効果的に管理します。これにより、サービスの信頼性を高め、障害の伝播を防止します。
Redisの分散ロック機能を使用し、複数のインスタンス状況でデータの一貫性を保証します。
コマンドとクエリの責任を分離するためにCQRSパターンが適用されます。
CommandとQueryを分離されたモジュールで構成し、それぞれに最適化されたデータモデルとストレージを使用します。これにより、読み取りと書き込み作業の独立したスケーリングと性能最適化が可能になります。
サービス間の疎結合のためにイベント駆動アーキテクチャが実装されます。イベント発行-購読パターンを活用し、トランザクション間の無意味な結合関係を疎に実装することになります。
関心事の分離とモジュール化のためにマルチモジュールアーキテクチャが適用されます。
Gradleを使用してbank-api、bank-core、bank-domainなどにモジュールを分離し、各モジュールの責任と依存性を明確に定義します。これにより、コードの再利用性と保守性を向上させます。
トランザクションの一貫性と追跡性のためにTransaction Trailingパターンが実装されます。
AOPを活用してトランザクションの開始と終了を追跡し、各トランザクションの状態と結果をロギングします。これによりトランザクションのモニタリングとデバッグが容易になります。
API文書化とテストのためにOpenAPI(Swagger)が適用されます。
SpringDoc OpenAPIを使用してAPIのエンドポイント、リクエスト/レスポンススキーマ、認証方式を自動的に文書化します。これによりAPIの可読性とテスト容易性を向上させ、クライアント開発者との協業を円滑にします。
専門性が劣って見えるかもしれませんが、見せやすい講義は講義ではないと思います。デバッグを進める時間もまた講義の一部です。
開発は口で言うものではありません。実際に実装してみて、動作する過程を一緒に体験していただけます。
企画者の皆さん...助けてください..
私が実務で適用して効果を得た概念を盛り込もうとしました。この過程を通じて実務を間接的に体験していただくか、実務者であれば実務環境でより優れたパフォーマンスを発揮していただけます。
講義を進めながら質疑応答をたくさん残していただければと思います。この講義は私一人だけの知識によって作られたものではありません。様々な大企業の開発者の方々のご意見も取り入れられています。
講義完成にご協力いただいた方々の簡単な経歴は以下の通りです。
private val supported_one = "カカオペイ プラットフォーム バックエンド開発者"
private val supported_two = "トス証券 APIサーバー開発者"
private val supported_three = "秘密にしてほしいというユニコーンスタートアップ サーバー開発者"Macos M3を使用して撮影されました。
Dockerを基本的に使用します。
java --version : 17.0.12 2024-07-16 LTS
JetBrain系のIDEを使用します。
Gradleを使用してビルドします。
インフラについては扱いません。
学習対象は
誰でしょう?
単純なCRUDから脱却し、複雑なビジネスロジック処理技法を学びたい開発者
設計力を伸ばしたい開発者
MSAアーキテクチャの入門者
イベント駆動アーキテクチャとサービス分離戦略を学びたい開発者
Spring + Kotlinを活用した実務プロジェクトを学びたい開発者
インフラン認証
キャリア認証
9,476
受講生
605
受講レビュー
166
回答
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関連ブロックチェーン開発者
[前] メタバースバックエンドエンジニア
[現] 板橋(パンギョ)でベテランになりつつあるサーバー開発者
[インタビュー履歴]
[その他のお問い合わせ]
[公式サイト]
全体
34件 ∙ (6時間 41分)
講座資料(こうぎしりょう):
全体
33件
4.5
33件の受講レビュー
受講レビュー 1
∙
平均評価 5.0
5
良い講義をありがとうございました。講義の難易度はそれほど高い方ではないと思いますが、自然に講義を構成していて楽に聞くことができました。 アーキテクチャに興味を持つようになり、自然にパッケージ分離 -> マルチモジュールの講義を受講することになりました。 講義を選択した理由は以下の通りでした。 1. CQRSとイベントパターンは知っていましたが、実際の実装が見たかったです。 2. マルチモジュールを求めていました。 このような部分でとても良く合う講義でしたし、他の人にも推薦できそうです。 残念なことが一つあるとすれば、英語の発音が結構気になるという点です。loggerをロジャーと発音されたり、Unknownをアンノクンと言うのが講義に大きな影響を与える点ではありませんが、結構気になる部分のようです。
こんにちは、パク・ギヒョンさん、良い評価をいただきありがとうございます。私は開発する過程で自分なりのスタイルに従う傾向があるため、普段口に馴染むように発音していたからだと思います。今後もより良い講義を提供できるよう努めます。ありがとうございます!
受講レビュー 4
∙
平均評価 5.0
5
楽しく良く見させていただきました。今後も応援し、他の講義も見る予定です。各カテゴリ別に軽く一度実装してみて進めるという考えで聞くと良いと思います。この一つの講義にすべての内容が込められるわけではありませんからね。
こんにちは、Hyunwoo Kim の講義を聞いてくださりありがとうございます! さまざまなアーキテクチャと使用方法および活用法をお伝えしたかったです。やはりこの内容は一般的に容易ではない開発方式であり、多くのツールを一緒に使用する必要があります。この部分までは私が扱うことはできませんでしたが、おっしゃってくださったように軽く一度実装してみて理解度を高めてお伝えしたかったです。今後より良い講義でお会いしたいと思います! ありがとうございます!
受講レビュー 6
∙
平均評価 5.0
5
とても良いプロジェクト型講義だと思います。既存に知らなかった部分も学習することができましたし、振り返ってみると初期に比べて見れば見るほどより魅力的で、たくさん学んだ時間でした。ありがとうございます。
こんにちは、8番がお気に入りいただけて嬉しいです!私自身もプロジェクト方式で講義を提供したいと思っていたのですが、それに関して良い評価をいただけて本当にありがとうございます!
知識共有者の他の講座を見てみましょう!
同じ分野の他の講座を見てみましょう!