Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
BEST
Programming

/

Back-end

Build a robust payment system

Practical Payment System Development Course, learn by code, and cover the knowledge needed to implement a real system.

(4.5) 20 reviews

466 learners

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

Reviews from Early Learners

What you will learn!

  • Payment system design considering reliability

  • Basic Principles and Components of Payment Systems

  • Transaction Processing and Concurrency Control

  • Understanding the Payment Process

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

This course takes a practical approach and is structured to make core concepts easy to understand, including:

  • Payment System Design

  • Implementing payment authorization functionality and error handling

  • Implementation of a payment message system using Apache Kafka

  • Concurrency Control Using Optimistic Locking

  • How to manage errors using Dead Letter Queue

  • Ensuring message processing and delivery through Kafka transactions

  • Issuing payment approval message using Transactional Outbox Pattern

  • How to use Kafka reliably

  • Payment recovery service using Bulk Head Pattern and parallel processing

  • Building a Ledger Service using the Double-Entry Ledger technique


This course is intended for backend developers with basic programming knowledge and provides practical skills to understand and build the key functions of a payment system from start to finish . The goal of the course is not to impart theoretical knowledge, but to apply it to real-world applications. The goal is to improve your problem-solving and project application skills. Therefore, after completing the course, you will be able to design and implement your own payment system, as well as improve the reliability and performance of existing systems. no see.

💡 Reliable Payment Systems: From Basics to Practice: The Complete Guide

  • Learn everything from the fundamentals of payment system design and implementation to reliable message handling techniques.

  • Learn how to apply essential strategies for payment solutions in practice, including Kafka, Wallet Service, and concurrency control.

📚 Learn about these things

1. Payment system design

Clarify the definition and core requirements of the payment system and look at the entire system from a high-level perspective. In the process of designing the structure of the payment system to be developed, deeply consider the database selection, communication style, reliability of message delivery, and methods of ensuring processing. This will help learners understand the inner workings of a payment system and gain insight into the various technical decisions that need to be considered during a practical implementation.

2. Implementing payment approval function and error handling

We will practice the implementation process of payment approval function through Toss Payments integration. In this lecture, you will learn how to implement Retry, a retry mechanism to overcome errors that may occur during the payment process. In addition, you will learn how to implement Retry, a retry mechanism to overcome errors that may occur during the payment process. We will cover identifying different types of errors and error handling strategies to deal with them.

3. Payment Recovery Service

The Payment Recovery Service lecture focuses on the mechanism for recovering payment events that fail due to unhandled or unknown exceptions. In this lecture, you will learn how to apply the Bulk Head pattern to improve the reliability of the system. In addition, We also discuss strategies for improving the performance of payment system recovery functions by leveraging parallel processing techniques.

4. Issue payment approval message

We will focus on how to publish event messages using Apache Kafka after successful payment approval. In this lecture, you will learn how to apply the Transactional Outbox Pattern to ensure that event messages are published unconditionally. Through this process, , you will learn practical techniques and strategies for implementing consistent and reliable data communication between payment systems and other systems.

Things to note before taking the class

Practice environment

  • Operating System and Version (OS): All OS are supported, including Windows, macOS, and Linux.

  • Tools used: Intellij, Datagrip, Kotlin, Docker, Toss App, Git, Confluent Kafka Cloud

  • PC specifications: PC with basic specifications that can access the Internet


Learning Materials

  • Learning material format provided: Notion

  • Volume and Capacity: Learning materials provided for each section

Player Knowledge and Notes

  • This course develops an original curriculum by applying the theory of Payment System design from Alex Xu's Systems Design Interview: An Insider's Guide: Volume 2 and applying it to real-life cases.

  • We utilize technologies such as Kotlin, Spring Webflux, Spring Data R2DBC, Spring Data JPA, MySQL, and Apache Kafka. You can understand the lecture without prior knowledge of these technologies.


Recommended for
these people

Who is this course right for?

  • Backend developers who are curious about payment systems

  • Students who want to do a real project

Need to know before starting?

  • Kotlin

  • Spring Webflux

  • Spring Data Jpa

  • Spring Data R2DBC

  • MySQL

  • Apache Kafka

Hello
This is

966

Learners

50

Reviews

38

Answers

4.5

Rating

3

Courses

안녕하세요.

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

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

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

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

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

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

Curriculum

All

21 lectures ∙ (7hr 8min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

20 reviews

4.5

20 reviews

  • xpdpfal5210님의 프로필 이미지
    xpdpfal5210

    Reviews 1

    Average Rating 4.0

    4

    19% enrolled

    Đây thực sự là một bài giảng hoàn hảo về chủ đề, nội dung và mã... nhưng thực sự rất đáng thất vọng khi nó là một kiến ​​trúc hình lục giác. Nếu không có điều này thì sẽ là 5 sao... Tôi thực sự không chắc liệu hình lục giác có phải là kiến ​​trúc cần thiết hay không. ㅠㅠ Thực sự thì việc hiểu logic thanh toán còn khó hơn... Đó là một bài giảng về thanh toán nên tôi không thể tập trung tốt được. Ngoài điều này ra thì nó hoàn toàn hoàn hảo. Tài liệu bài giảng được sắp xếp rất gọn gàng nên rất dễ hiểu và tôi thích rằng dường như họ đã bỏ rất nhiều công sức vào việc biên tập. Lục giác.. Nếu loại trừ cái này thì là 100000 điểm... Tôi rất mong chờ bài giảng tiếp theo!

    • kms920106님의 프로필 이미지
      kms920106

      Reviews 24

      Average Rating 4.6

      5

      62% enrolled

      Thật đáng tiếc, nhưng đó là một công việc có kinh nghiệm. Tôi từng phụ trách dịch vụ môi giới ứng dụng giao hàng tại công ty trước đây của mình và có kiến ​​thức về lĩnh vực đặt hàng và dịch vụ thanh toán nên tôi nghĩ mình sẽ dễ dàng tiếp thu bài giảng này. Nhưng không.. nó rất khó..không phải ở cấp độ mới bắt đầu.. Hệ thống đặt hàng ở công ty tôi từng làm việc thật buồn cười. Chắc chắn bạn sẽ có cảm giác giống như đang học một phiên bản kỹ thuật cao hơn của dịch vụ thanh toán. Như trong bài đánh giá bên dưới (Ahyo), kiến ​​thức về Kotlin, Reactive, Hexagonal Architecture và Kafka được yêu cầu làm nền tảng cơ bản và nếu bạn biết Java hoặc SpringBoot MVC, bạn có thể đang bận theo dõi mã. Tuy nhiên, tôi nghĩ rằng bạn nên tiếp tục xem bài giảng này cho đến khi hiểu hết nếu muốn phát triển năng lực về dịch vụ thanh toán. Tôi nghĩ nó rất quan trọng.. (Nó rất khó khăn đối với tôi, một người cứng đầu.) Nếu có thời gian sau khi hoàn thành khóa học này, tôi sẽ refactor nó thành các mẫu Java và Spring MVC mà tôi đã biết ban đầu và nghiên cứu kỹ càng để tiếp thu kiến ​​thức. Tôi cảm thấy như mình đã mất trí sau khi gặp kẻ thách đấu đó trong LoL. Tôi cảm thấy có động lực để học tập chăm chỉ hơn

      • yjm9505168574
        Instructor

        Cảm ơn bạn đã đánh giá tuyệt vời! Đó là một biệt danh quen thuộc haha Để bài giảng dễ theo dõi hơn, tôi nghĩ mình nên giải thích ngắn gọn về kiến ​​trúc, Kotlin và Reactive. Tôi đã suy nghĩ rất nhiều về việc đưa lời giải thích này vào, nhưng tôi nghĩ nó sẽ khiến rốn tôi to hơn bụng. đặt nó vào. Tuy nhiên, tôi không nghĩ nó sẽ quá khó vì tôi không sử dụng cú pháp Kotlin khó! Trong bài giảng tiếp theo, tôi sẽ cố gắng hết sức để giải thích nó một cách tử tế và dễ dàng hơn. Cảm ơn bạn đã phản hồi tốt ~~

    • syh8088님의 프로필 이미지
      syh8088

      Reviews 7

      Average Rating 5.0

      5

      90% enrolled

      Thật tuyệt vời khi có thể có được kiến ​​thức tốt thông qua dịch vụ thanh toán vững chắc! Theo cá nhân tôi, tính nhất quán của dữ liệu là một phần rất quan trọng của dịch vụ thanh toán và thật tuyệt khi có thể tiếp thu nhiều công nghệ khác nhau để đảm bảo không bỏ sót điều gì. Thật đáng tiếc nhưng sẽ tốt hơn nếu nó được thực hiện bằng ngôn ngữ java và 'dịch vụ thanh toán mạnh mẽ' Mặc dù đây là trọng tâm chính nhưng vẫn có một số khó khăn trong việc giới thiệu webflux mùa xuân. Tôi nghĩ sẽ khó có thể truy cập được đối với những sinh viên không biết về spring webflux.

      • blutics님의 프로필 이미지
        blutics

        Reviews 16

        Average Rating 4.2

        3

        71% enrolled

        Mặc dù họ nói rằng họ không chỉ đơn giản là sử dụng lại hoặc sắp xếp lại, nhưng họ cảm thấy hơi thất vọng khi thấy họ không giải thích chính xác về sổ cái kép hoặc các khái niệm sổ cái/ví cơ bản. Theo nhiều cách, nó có vẻ giống như một chủ đề hơi nằm ngoài hệ thống thanh toán.

        • yjm9505168574
          Instructor

          Chúng ta có nên giới thiệu một lịch sử chi tiết hơn, chẳng hạn như tại sao Hệ thống sổ cái ra đời? Tôi nghĩ rằng tôi đã giải thích đầy đủ những điểm chính về hệ thống Sổ cái và Ví đôi. Tôi không nghĩ bạn đã nghe thấy phần Sổ cái và Ví, nhưng tôi không hiểu tại sao bạn lại đề cập đến việc sắp xếp lại/tái sử dụng đơn giản. Tôi muốn hỏi liệu có nhiều mối lo ngại về việc áp dụng lý thuyết vào thực tế hay không.

        • Tôi không nói rằng việc thực hiện nó như thế nào là quan trọng. Điều tôi muốn nói là nếu bạn chỉ nhìn vào các trường, khái niệm sổ cái, chẳng hạn như ghi nợ hoặc tín dụng, và tên bảng được sử dụng, và khái niệm ghi sổ kép, là tên của ghi sổ kế toán kép, là được sử dụng, phần này cần giải thích. Có cần thiết phải hiểu cách ghi sổ kế toán kép ở một mức độ nào đó và giải thích cách thực hiện ghi sổ kế toán kép để theo dõi và quản lý các khoản thanh toán một cách đáng tin cậy không? Đây không phải là hiểu về miền cũng như hiểu định nghĩa và yêu cầu của nó sao? Đây có phải là cách để giải thích chính xác miền thanh toán này không? Trong bài giảng này, chúng tôi trình bày một mã vận hành ổn định quy trình thanh toán gần đúng và chỉ ra cách quản lý nó như một sự kiện với Kafka cũng như quản lý các giao dịch trong quy trình này. Đối với tôi, có vẻ như trọng tâm chính không phải là miền thanh toán mà là Kafka và quản lý giao dịch, những thứ này chỉ được hiển thị trong quá trình thanh toán. Điều này không có nghĩa là người hướng dẫn không chuẩn bị trước hoặc nội dung bài giảng không chân thành. Tuy nhiên, tôi đã trả 100.000 won với hy vọng nó sẽ giải đáp thắc mắc của tôi về miền thanh toán nhưng tôi cảm thấy mình không nhận được nhiều nên đã để lại đánh giá sắc bén. Tôi tức giận để lại điểm 2 nhưng lại đổi thành điểm 3.

      • chjy08235991님의 프로필 이미지
        chjy08235991

        Reviews 3

        Average Rating 5.0

        5

        33% enrolled

        $114.40

        yjm9505168574's other courses

        Check out other courses by the instructor!

        Similar courses

        Explore other courses in the same field!