강의

멘토링

커뮤니티

Programming

/

Back-end

堅牢な決済システムの構築

実用的な決済システム構築講座では、コードを学びながら、実際のシステムの実装に必要な知識を扱います。

難易度 初級

受講期間 無制限

  • yjm9505168574
backend
backend
Spring
Spring
DBMS/RDBMS
DBMS/RDBMS
payments
payments
Spring Boot
Spring Boot
backend
backend
Spring
Spring
DBMS/RDBMS
DBMS/RDBMS
payments
payments
Spring Boot
Spring Boot

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

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

4.2

5.0

강프로그래머

62% 受講後に作成

恥ずかしいがキャリア職だ 以前の会社で配信アプリ仲介サービスを担当し、注文、決済サービスに関するドメイン知識があったため、この講義を簡単に聞くことができた。 しかし、そうではありません..非常に難しい..初級レベルではありません.. 以前に在職していた会社注文システムが面白いほどだ。 確かに技術的に上位バージョンの決済サービスを学ぶ気分だ。 以下のレビューのように(アヒョン)コトリン、リアクティブ、ヘキサゴナルアーキテクチャ、カフカの知識が基本ベースで必要であり、Java、SpringBoot MVC程度することができるレベルなら、明らかにコードに従って打つことに精神なく忙しいかもしれない だが、この講義は明らかに決済サービスについて力量を育てるには、きちんと理解するまで見続けなければならないと思う。とても重要だと思います。 この講義は、完講後に時間的に余裕があれば、もともと知っていたjava、Spring MVCパターンでリファクタリングしながら、再びきちんと勉強して必ず知識を習得しなければならない。 ロールでそのチャレンジャーに会ってメンタルを打たれた感じだ 勉強をもっと頑張らなければならないという動機付けができる

5.0

리나

90% 受講後に作成

頑丈な決済サービスを通じて良い知識を得ることができてとても良かったです! 個人的には、決済サービスはデータの一貫性が非常に重要な部分ですが、欠けていないようにいくつかの技術を習得することができてとても良かったです。 残念ながら、java言語にして欲しいと思います。重点なのに spring webflux は導入したことについて大変な部分がありました。 spring webflux を知らない学生は、アクセスが難しくなかったかと思います。

5.0

이재혁

100% 受講後に作成

少し早くてついていくのが難しいですが、良い講義だと思います。

受講後に得られること

  • 信頼性を考慮した決済システム設計

  • 決済システムの基本原理と構成要素

  • トランザクション処理と同時性制御

  • 支払いプロセスの理解

💲 "Talk is cheap. Show you the code."

この講義は実用的なアプローチをとり、次のように重要な概念を簡単に理解できるように構成されています。

  • 決済システムの設計

  • お支払い承認機能の実装とエラー処理

  • Apache Kafkaを活用した決済メッセージシステムの実装

  • Optimistic Lockingによる同時実行制御

  • Dead Letter Queueによるエラー管理方法

  • Kafkaトランザクションによるメッセージ処理と配信の保証

  • Transactional Outbox Patternを使用した支払い承認メッセージの発行

  • 確実にカフカを使用する方法

  • Bulk Head Patternと並列処理を活用した決済復旧サービス

  • Double-Entry Ledger技術を使用したLedger Serviceの構築


このレッスンは、基本的なプログラミング知識を持つバックエンド開発者を対象としており、決済システムの重要な機能を最初から最後まで理解して構築するための実用的な能力を提供します。講義の目標は、理論的知識の伝達ではなく、実際の世界の問題解決とプロジェクト適用能力の向上にあります。したがって、講義を修了した後は、独自の決済システムを設計し、実装するだけでなく、既存システムの信頼性と性能を改善できる実力を備えることになります。

💡信頼性の高い決済システムの基礎から本番まで:完璧なガイド

  • お支払いシステムの設計と実装の基礎から信頼できるメッセージ処理技術まで学びます。

  • Kafka、ウォレットサービス、並行性制御など、決済ソリューションに不可欠な戦略を実践に適用する方法を学びます。

📚こんな内容を学ぶ

1.決済システムの設計

決済システムの定義と重要な要件を明確にし、高水準の観点からシステム全体を眺めます。開発する決済システムの構造を設計する過程で、データベース選択、通信スタイル、メッセージ配信の信頼性と処理保証方法などを深く取り上げます。これにより、学習者は決済システムの内部動作原理を理解し、実際の実装で考慮すべきさまざまな技術的決定についての洞察を得ることができます。

2. お支払い承認機能の実装とエラー処理

Toss Payments連携による決済承認機能の実装プロセスを実践します。このレッスンでは、決済プロセスで発生する可能性のある障害を克服するために、再試行メカニズムであるRetryを実装する方法を学びます。また、支払いプロセス中に発生する可能性のあるさまざまなエラータイプを識別し、それを処理するエラー処理戦略についても説明します。

3. お支払い復旧サービス

支払い回復サービスのレッスンでは、未処理または未知の例外で失敗した支払いイベントを回復するメカニズムに焦点を当てます。このレッスンでは、システムの信頼性を向上させるためにBulk Headパターンを適用する方法を学びます。また、並列処理技術を活用して決済システムの復旧機能性能を向上させる戦略についても取り上げる。

4. 決済承認メッセージの発行

お支払いの承認に成功したら、Apache Kafkaを活用してイベントメッセージを発行する方法を重点的に取り上げます。このレッスンでは、イベントメッセージが無条件に発行されることを保証するTransactional Outbox Patternの適用方法を学びます。これにより、決済システムと他のシステム間の一貫性と信頼性の高いデータ通信を実現するための実用的な技術と戦略を習得できます。

受講前の注意

練習環境

  • オペレーティングシステムとバージョン(OS):Windows、macOS、LinuxなどのすべてのOSが利用可能です。

  • 使用ツール: Intellij, Datagrip, Kotlin, Docker, Toss App, Git, Confluent Kafka Cloud

  • PC仕様:インターネット接続が可能な基本仕様のPC


学習資料

  • 提供する学習資料の形式: Notion

  • 分量と容量:各セクションで学習資料を提供する

選手の知識と注意事項

  • 本講義では、Alex XuのSystems Design Interview: An Insider's Guide: Volume 2のPayment System設計の理論をより応用し、実際の事例に適用して独創的なカリキュラムを開発しました。

  • Kotlin、Spring Webflux、Spring Data R2DBC、Spring Data JPA、MySQL、Apache Kafkaなどの技術を活用します。これらの技術に関する事前の知識がなくても、講義の理解に問題はありません。


こんな方に
おすすめです

学習対象は
誰でしょう?

  • 支払いシステムについて知りたいバックエンド開発者

  • 実戦プロジェクトをしたい学生

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

  • Kotlin

  • Spring Webflux

  • Spring Data Jpa

  • Spring Data R2DBC

  • MySQL

  • Apache Kafka

こんにちは
です。

998

受講生

61

受講レビュー

38

回答

4.3

講座評価

3

講座

こんにちは。

私は開発者であり教育者として、信頼できる講義を作るよう努めています。

講義を作る際は、必要な知識や技術を無駄なく伝える、情報密度の高いコンテンツを提供することを心がけています。

自分が関心のある分野、本当に意味があると信じている領域にのみ講座を作り、誰にでも作れるような講座は作りません。

加えてCareerlyでも役立つ記事を書いています。

- (元) カカオエンタープライズ ソフトウェアエンジニア

- (元) カカオ Ground X ソフトウェアエンジニア

カリキュラム

全体

21件 ∙ (7時間 8分)

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

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

受講レビュー

全体

29件

4.2

29件の受講レビュー

  • kms920106님의 프로필 이미지
    kms920106

    受講レビュー 24

    平均評価 4.6

    5

    62% 受講後に作成

    恥ずかしいがキャリア職だ 以前の会社で配信アプリ仲介サービスを担当し、注文、決済サービスに関するドメイン知識があったため、この講義を簡単に聞くことができた。 しかし、そうではありません..非常に難しい..初級レベルではありません.. 以前に在職していた会社注文システムが面白いほどだ。 確かに技術的に上位バージョンの決済サービスを学ぶ気分だ。 以下のレビューのように(アヒョン)コトリン、リアクティブ、ヘキサゴナルアーキテクチャ、カフカの知識が基本ベースで必要であり、Java、SpringBoot MVC程度することができるレベルなら、明らかにコードに従って打つことに精神なく忙しいかもしれない だが、この講義は明らかに決済サービスについて力量を育てるには、きちんと理解するまで見続けなければならないと思う。とても重要だと思います。 この講義は、完講後に時間的に余裕があれば、もともと知っていたjava、Spring MVCパターンでリファクタリングしながら、再びきちんと勉強して必ず知識を習得しなければならない。 ロールでそのチャレンジャーに会ってメンタルを打たれた感じだ 勉強をもっと頑張らなければならないという動機付けができる

    • yjm9505168574
      知識共有者

      良いレビューありがとうございます!おなじみのニックネームですねㅎ もう少し講義に従いやすく、核事故の日のアーキテクチャ、コトリン、リアクティブについても簡単に説明を入れなければならなかったかと思います。入れませんでした。それでも難しいコトリン文法を書いたりしなかったので大きく難しくはないと思います! 次のレッスンでは、より親切で簡単に説明しようとたくさん努力してみましょう。良いフィードバックありがとうございます~~

  • xpdpfal5210님의 프로필 이미지
    xpdpfal5210

    受講レビュー 1

    平均評価 4.0

    4

    19% 受講後に作成

    本当にテーマもそうで、内容もコードも完璧な講義なのに…ヘキサゴナルアーキテクチャなのがとても残念です。これだけでなければ別点5点です... ヘキサゴ刃が必要なアーキテクチャなのかも実はよく分からないですね。 ㅠㅠむしろ決済ロジックをもっと理解するのは大変でした…決済の講義なので集中できませんでした。これだけで、本当に完璧です。講義資料も本当にすっきり整理しておいて理解しやすく、編集も気になったようでいいです。ヘキサゴナル.. これだけ除けば100000点です...次の講義が楽しみです!

    • syh8088님의 프로필 이미지
      syh8088

      受講レビュー 7

      平均評価 5.0

      5

      90% 受講後に作成

      頑丈な決済サービスを通じて良い知識を得ることができてとても良かったです! 個人的には、決済サービスはデータの一貫性が非常に重要な部分ですが、欠けていないようにいくつかの技術を習得することができてとても良かったです。 残念ながら、java言語にして欲しいと思います。重点なのに spring webflux は導入したことについて大変な部分がありました。 spring webflux を知らない学生は、アクセスが難しくなかったかと思います。

      • nhy12224380님의 프로필 이미지
        nhy12224380

        受講レビュー 3

        平均評価 5.0

        5

        62% 受講後に作成

        • ju0님의 프로필 이미지
          ju0

          受講レビュー 12

          平均評価 4.9

          4

          62% 受講後に作成

          ¥18,126

          yjm9505168574の他の講座

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

          似ている講座

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