강의

멘토링

커뮤니티

Programming

/

Back-end

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

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

  • yjm9505168574
실습 중심
결제기능
결제기능구현
backend
Spring
DBMS/RDBMS
payments
Spring Boot

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

受講後に得られること

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

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

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

  • 支払いプロセスの理解

💲 "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

こんにちは
です。

989

受講生

60

受講レビュー

38

回答

4.4

講座評価

3

講座

안녕하세요.

저는 개발자면서 교육자로 신뢰할 수 있는 강의를 만들려고 노력하고 있습니다.

강의를 만들 땐 필요한 지식과 기술을 군더더기 없이 전달하는 정보 밀도 높은 콘텐츠를 제공하려고 합니다.

제가 관심있는 분야, 정말 의미 있다고 믿는 영역에만 강의를 만들며, 누구나 만들 수 있는 강의는 만들지 않습니다.

추가로 커리어리에서도 유용한 글들을 쓰고 있습니다. 

- (前) 카카오엔터프라이즈 소프트웨어 엔지니어

- (前) 카카오 Ground X 소프트웨어 엔지니어

カリキュラム

全体

21件 ∙ (7時間 8分)

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

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

受講レビュー

全体

28件

4.3

28件の受講レビュー

  • kms920106님의 프로필 이미지
    kms920106

    受講レビュー 24

    平均評価 4.6

    5

    62% 受講後に作成

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

    • yjm9505168574
      知識共有者

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

  • xpdpfal5210님의 프로필 이미지
    xpdpfal5210

    受講レビュー 1

    平均評価 4.0

    4

    19% 受講後に作成

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

    • blutics님의 프로필 이미지
      blutics

      受講レビュー 16

      平均評価 4.2

      3

      71% 受講後に作成

      単純再使用再配列しなかったと言いましたが、double-entry ledgerについても基本的なledger/walletの概念もきちんと説明しておかないことを見ると、ちょっと惜しいという感じが多いですね。 いくつかのモロペイメントシステムでは少し外れたテーマのようですね。

      • yjm9505168574
        知識共有者

        なぜLedger Systemが出たのかなどについて、より詳細な歴史を紹介しなければなりませんでしたか? Double Ledger と Wallet システムについて十分に重要な部分は説明したと思います。後部のLedgerとWalletの部分は聞いたようには思えないような単純な並べ替え/再利用について言及されたのは納得できませんね。実際の理論を実装することについても、いくつかの悩みがあるのではないかと聞きたいです。

      • どのように実装されているかが重要であるということを言ったのではありません。 私が言いたいのは、単にフィールドだけを見ても、借方(debit)や糞(credit)そしてテーブル名でも ledger と帳簿という概念が使われ、ダブルスブギという名称の double entry という概念が使われたなら、この部分の説明が必要だという申し上げました。 複式簿記をどの程度理解し、この複式簿記を実装してどのように安定して決済を追跡して管理するかについての説明が必要なのではないでしょうか?これはドメインを理解し、そのドメインの定義と要件を特定するのではありませんか? これは、この決済というドメインを正しく説明してくれるのではないでしょうか? この講義では、おおよその決済プロセスを安定的に運営するコードを提示し、これをカフカでどのようにイベントとして管理し、この過程でトレンジェクションを管理する過程を示しています。 これは私が見るには決済ドメインが州ではなく、カフカとトレンジェクション管理がメインであり、これらを単に決済過程で見せているように見えます。 講師が準備が足りなかったり、講義の内容が誠実でなかったわけではありません。 ただ、決済ドメインに対する疑問を解くことができるかと期待して10万ウォンを決済したが得たことがあまりないようで鋭く受講評を残しましたね。稲妻に2点を残したが、3点に変更しておきます。

    • syh8088님의 프로필 이미지
      syh8088

      受講レビュー 7

      平均評価 5.0

      5

      90% 受講後に作成

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

      • nhy12224380님의 프로필 이미지
        nhy12224380

        受講レビュー 3

        平均評価 5.0

        5

        62% 受講後に作成

        ¥18,339

        yjm9505168574の他の講座

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

        似ている講座

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