강의

멘토링

커뮤니티

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.3) 28 reviews

482 learners

Level Basic

Course period Unlimited

  • 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

Reviews from Early Learners

What you will gain after the course

  • 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

990

Learners

60

Reviews

38

Answers

4.4

Rating

3

Courses

안녕하세요.

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

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

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

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

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

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

Curriculum

All

21 lectures ∙ (7hr 8min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

28 reviews

4.3

28 reviews

  • kms920106님의 프로필 이미지
    kms920106

    Reviews 24

    Average Rating 4.6

    5

    62% enrolled

    I'm embarrassed to say this, but I'm a career employee. I was in charge of a delivery app brokerage service at my previous company, and I had domain knowledge of order and payment services, so I thought I would be able to take this course easily. But no.. It's very difficult.. It's not beginner level.. The order system at my previous company was ridiculous.. It definitely feels like I'm learning a higher version of a payment service in terms of technology.. As in the review below (Ahyo), knowledge of Kotlin, reactive, hexagonal architecture, and Kafka is required as a basic base, and if you know Java, SpringBoot MVC, you might be very busy following the code. However, I think that this course is something that you should keep watching until you properly understand it in order to build your capabilities in payment services. I think it's very important.. (I'm a noob so it's very difficult for meㅠㅠ) After completing this lecture, if I have time, I should study it properly again while refactoring it to the Java and Spring MVC patterns that I originally knew, and definitely acquire the knowledge.. I feel mentally exhausted after meeting that challenger in LoL I feel motivated to study harder

    • yjm9505168574
      Instructor

      Thank you for the great review! It's a familiar nickname. I think I should have briefly explained the nuclear accident architecture, Kotlin, and reactive to make it easier to follow the lecture. I thought a lot about whether to include this explanation, but I didn't include it because I thought it would be too much of a hassle. However, I didn't use difficult Kotlin grammar or anything, so I think it won't be too difficult! I'll try harder to explain it more kindly and easily in the next lecture. Thank you for the good feedback~~

  • xpdpfal5210님의 프로필 이미지
    xpdpfal5210

    Reviews 1

    Average Rating 4.0

    4

    19% enrolled

    This lecture is perfect in terms of topic, content, and code... It's such a shame that it's hexagonal architecture. If it weren't for this, I'd give it 5 stars... I'm not even sure if hexagonal is a necessary architecture. ㅠㅠ Rather, the payment logic was harder to understand... I couldn't concentrate well because it was a lecture about payment. If it weren't for this, it would be perfect. The lecture materials are organized really neatly, so they're easy to understand, and I like that they put a lot of thought into editing. Hexagonal... If only this were excluded, it would be 100,000 points... I'm looking forward to the next lecture!

    • syh8088님의 프로필 이미지
      syh8088

      Reviews 7

      Average Rating 5.0

      5

      90% enrolled

      It was great to be able to gain good knowledge through a solid payment service! Personally, data consistency is a very important part of payment service, so it was great to be able to acquire various technologies so that it is not missed. It would have been better if it had been done in Java, and the focus was on a 'solid payment service', but there were some difficult parts about introducing spring webflux. I think it would have been difficult for students who do not know spring webflux to approach it.

      • nhy12224380님의 프로필 이미지
        nhy12224380

        Reviews 3

        Average Rating 5.0

        5

        62% enrolled

        • ju0님의 프로필 이미지
          ju0

          Reviews 12

          Average Rating 4.9

          4

          62% enrolled

          Limited time deal ends in 5 days

          $80.30

          29%

          $114.40

          yjm9505168574's other courses

          Check out other courses by the instructor!

          Similar courses

          Explore other courses in the same field!