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

/

Back-end

Xây dựng hệ thống thanh toán vững chắc

Khóa học Xây dựng hệ thống thanh toán thực tế, học thông qua mã và cung cấp kiến ​​thức cần thiết để triển khai một hệ thống thực tế.

(4.5) 20 đánh giá

466 học viên

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

Đánh giá từ những học viên đầu tiên

Dịch cái này sang tiếng Việt

  • Thiết kế hệ thống thanh toán có tính tin cậy

  • Thanh toán hệ thống nguyên tắc cơ bản và thành phần

  • Xử lý giao dịch và kiểm soát đồng thời

  • Hiểu về quy trình thanh toán

💲 "Nói thì dễ. Cho bạn xem mã."

Khóa học này có cách tiếp cận thực tế và được xây dựng để giúp bạn hiểu các khái niệm cốt lõi một cách dễ dàng, bao gồm:

  • Thiết kế hệ thống thanh toán

  • Triển khai chức năng ủy quyền thanh toán và xử lý lỗi

  • Triển khai hệ thống tin nhắn thanh toán bằng Apache Kafka

  • Kiểm soát đồng thời sử dụng khóa lạc quan

  • Cách quản lý lỗi bằng Dead Letter Queue

  • Đảm bảo xử lý và phân phối tin nhắn thông qua các giao dịch Kafka

  • Phát hành tin nhắn chấp thuận thanh toán bằng cách sử dụng Transactional Outbox Pattern

  • Cách sử dụng Kafka một cách đáng tin cậy

  • Dịch vụ thu hồi thanh toán sử dụng Bulk Head Pattern và xử lý song song

  • Xây dựng dịch vụ sổ cái sử dụng kỹ thuật sổ cái kép


Khóa học này được thiết kế dành cho các nhà phát triển phần mềm có kiến ​​thức lập trình cơ bản và cung cấp các kỹ năng thực tế để hiểu và xây dựng chức năng cốt lõi của hệ thống thanh toán từ đầu đến cuối . Mục tiêu của khóa học không phải là truyền đạt kiến ​​thức lý thuyết mà là nâng cao khả năng giải quyết các vấn đề thực tế và áp dụng chúng vào các dự án. Do đó, sau khi hoàn thành khóa học, bạn sẽ có thể thiết kế và triển khai hệ thống thanh toán của riêng mình, cũng như cải thiện độ tin cậy và hiệu suất của các hệ thống hiện có.

💡 Hệ thống thanh toán đáng tin cậy: Từ cơ bản đến thực hành: Hướng dẫn đầy đủ

  • Tìm hiểu mọi thứ từ những kiến ​​thức cơ bản về thiết kế và triển khai hệ thống thanh toán cho đến các kỹ thuật xử lý tin nhắn đáng tin cậy.

  • Tìm hiểu cách áp dụng các chiến lược thiết yếu cho giải pháp thanh toán vào thực tế, bao gồm Kafka, Dịch vụ ví và kiểm soát đồng thời.

📚 Tìm hiểu về những điều này

1. Thiết kế hệ thống thanh toán

Làm rõ định nghĩa và các yêu cầu cốt lõi của hệ thống thanh toán và xem xét toàn bộ hệ thống từ góc độ tổng thể. Trong quá trình thiết kế kiến ​​trúc của hệ thống thanh toán sẽ được phát triển, chúng tôi sẽ đề cập sâu đến việc lựa chọn cơ sở dữ liệu, phong cách giao tiếp và phương pháp để đảm bảo độ tin cậy và khả năng xử lý việc gửi tin nhắn. Điều này sẽ giúp người học hiểu được cách thức hoạt động bên trong của hệ thống thanh toán và hiểu sâu hơn về các quyết định kỹ thuật khác nhau cần được xem xét khi triển khai hệ thống vào thực tế.

2. Triển khai chức năng phê duyệt thanh toán và xử lý lỗi

Chúng tôi sẽ thực hành triển khai chức năng phê duyệt thanh toán thông qua tích hợp Toss Payments. Trong bài giảng này, bạn sẽ học cách triển khai Retry, một cơ chế thử lại để khắc phục những lỗi có thể xảy ra trong quá trình thanh toán. Ngoài ra, chúng tôi xác định các loại lỗi khác nhau có thể xảy ra trong quá trình thanh toán và thảo luận về các chiến lược xử lý lỗi để giải quyết chúng.

3. Dịch vụ thu hồi thanh toán

Hướng dẫn về Dịch vụ khôi phục thanh toán tập trung vào các cơ chế khôi phục các sự kiện thanh toán không thành công do các trường hợp ngoại lệ chưa được xử lý hoặc không xác định. Trong bài giảng này, bạn sẽ học cách áp dụng mô hình Bulk Head để cải thiện độ tin cậy của hệ thống. Chúng tôi cũng thảo luận về các chiến lược nhằm cải thiện hiệu suất của các chức năng phục hồi hệ thống thanh toán bằng cách tận dụng các kỹ thuật xử lý song song.

4. Gửi tin nhắn phê duyệt thanh toán

Chúng tôi sẽ tập trung vào cách xuất bản tin nhắn sự kiện bằng Apache Kafka sau khi xác thực thanh toán thành công. Trong bài giảng này, bạn sẽ học cách áp dụng Mẫu hộp thư đi giao dịch để đảm bảo rằng các thông điệp sự kiện được xuất bản vô điều kiện. Thông qua khóa học này, bạn sẽ học được các kỹ thuật và chiến lược thực tế để triển khai truyền dữ liệu nhất quán và đáng tin cậy giữa các hệ thống thanh toán và các hệ thống khác.

Những điều cần lưu ý trước khi tham gia lớp học

Môi trường thực hành

  • Hệ điều hành và Phiên bản (OS): Hỗ trợ tất cả các hệ điều hành, bao gồm Windows, macOS và Linux.

  • Các công cụ được sử dụng: Intellij, Datagrip, Kotlin, Docker, Toss App, Git, Confluent Kafka Cloud

  • Thông số kỹ thuật của PC: PC có thông số kỹ thuật cơ bản có thể truy cập Internet


Tài liệu học tập

  • Định dạng tài liệu học tập được cung cấp: Notion

  • Khối lượng và dung lượng: Tài liệu học tập được cung cấp cho từng phần

Kiến thức và ghi chú của người chơi

  • Khóa học này xây dựng chương trình giảng dạy độc đáo bằng cách áp dụng lý thuyết thiết kế Hệ thống thanh toán từ cuốn Phỏng vấn thiết kế hệ thống: Hướng dẫn của người trong cuộc: Tập 2 của Alex Xu và áp dụng vào các trường hợp thực tế.

  • Chúng tôi tận dụng các công nghệ như Kotlin, Spring Webflux, Spring Data R2DBC, Spring Data JPA, MySQL và Apache Kafka. Bạn sẽ có thể hiểu được bài giảng mà không cần có bất kỳ kiến ​​thức nào trước về các công nghệ này.


Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Nhà phát triển backend tò mò về hệ thống thanh toán

  • Học sinh muốn làm dự án thực tế

Cần biết trước khi bắt đầu?

  • Kotlin

  • Webflux mùa xuân

  • Dữ liệu mùa xuân Jpa

  • Dữ liệu mùa xuân R2DBC

  • MySQL

  • Apache Kafka

Xin chào
Đây là

966

Học viên

50

Đánh giá

38

Trả lời

4.5

Xếp hạng

3

Các khóa học

안녕하세요.

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

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

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

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

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

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

Chương trình giảng dạy

Tất cả

21 bài giảng ∙ (7giờ 8phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

20 đánh giá

4.5

20 đánh giá

  • 이채림님의 프로필 이미지
    이채림

    Đánh giá 1

    Đánh giá trung bình 4.0

    4

    19% đã tham gia

    정말 주제도 그렇고 내용도 코드도 완벽한 강의인데... 헥사고날 아키텍처인게 너무너무너무 아쉬워요. 이것만 아니었으면 별점 5점입니다... 헥사고날이 필요한 아키텍처인지도 사실 잘 모르겠구요. ㅠㅠ 오히려 결제 로직을 더 이해하기 힘들었어요... 결제에 대한 강의라 집중이 잘 안됐습니다. 이것만 아니면 정말 완벽합니다. 강의자료도 진짜 깔끔하게 정리해놓으셔서 이해하기도 편했고, 편집도 신경쓰신 것 같아서 좋아요. 헥사고날.. 이것만 빼면 100000점입니다... 다음 강의가 기대됩니다!

    • 강프로그래머님의 프로필 이미지
      강프로그래머

      Đánh giá 24

      Đánh giá trung bình 4.6

      5

      62% đã tham gia

      부끄럽지만 경력직이다 이전 회사에서 배달앱 중개 서비스를 담당하였으며 주문, 결제 서비스에 대한 도메인 지식이 있었기 때문에 이 강의를 수월하게 들을 줄 알았다.. 그런데 아니다.. 매우 어렵다.. 초급 수준이 아니다.. 이전에 재직했던 회사 주문 시스템이 우스울 정도다.. 확실히 기술적으로 상위 버전의 결제 서비스를 배우는 기분이다.. 아래 리뷰처럼(아효님) 코틀린, 리액티브, 헥사고날 아키텍처, 카프카 지식이 기본 베이스로 필요하며 Java, SpringBoot MVC 정도 할 줄 아는 수준이라면 분명 코드 따라 치기에 정신없이 바쁠지도 모른다 하지만 이 강의는 분명히 결제 서비스에 대해서 역량을 기르려면 제대로 이해하기 전까지 계속 봐야된다고 생각한다. 매우 중요하다고 생각한다.. (돌머리인 난 매우 어렵다ㅠㅠ) 이 강의는 완강후에 시간적 여유가 된다면 원래 알고 있던 java, Spring MVC 패턴으로 리팩토링 하면서 다시 제대로 공부해서 꼭 지식을 습득해야겠다.. 롤에서 그마 챌린저 만나서 멘탈 털린 느낌이다 공부를 더 열심히 해야겠다는 동기부여가 생긴다

      • 여정민
        Giảng viên

        좋은 리뷰 감사합니다! 익숙한 닉네임이네요 ㅎ 좀 더 강의를 따라가기 쉽게 핵사고날 아키텍처, 코틀린, 리액티브에 대해서도 간략하게 설명을 넣어야 했나 싶네요.. 이 설명을 넣을까도 고민을 많이 헀지만 배보다 배꼽이 더 커지는거 아닌가 싶긴 했어서 넣지 않았어요. 그래도 어려운 코틀린 문법을 쓰거나 하지는 않았어서 크게 어렵지는 않으실거라고 생각합니다! 다음 강의에서는 좀 더 친절하고 쉽게 설명하려고 많이 노력해볼게요. 좋은 피드백 감사합니다~~

    • 리나님의 프로필 이미지
      리나

      Đánh giá 7

      Đánh giá trung bình 5.0

      5

      90% đã tham gia

      견고한 결제 서비스 통해 좋은 지식을 얻을 수 있어서 너무 좋았어요! 개인적으로 결제 서비스는 데이터 일관성이 굉장히 중요한 부분인데 누락 안되도록 여러 기술들을 습득 할 수 있어서 너무 좋았습니다. 아쉽지만 java 언어로 해주었으면 좋을꺼 같고 '견고한 결제 서비스' 중점인데 spring webflux 는 도입 한 것에 대해 힘든 부분이 있었어요. spring webflux 를 모르는 학생은 접근 하기 어렵지 않았을까 생각 합니다.

      • Daegun Kim님의 프로필 이미지
        Daegun Kim

        Đánh giá 16

        Đánh giá trung bình 4.2

        3

        71% đã tham gia

        단순 재사용 재배열하지 않았다고 했지만 double-entry ledger에 대해서나 기본적인 ledger/wallet 개념도 제대로 설명해 놓지 않은걸 보면 좀 아쉽다는 느낌이 많네요. 여러 모로 payment system에서는 조금 벗어난 주제 같네요.

        • 여정민
          Giảng viên

          왜 Ledger System 이 나왔는지 등에 대해서 좀 더 자세한 역사를 소개했어야 했나요? Double Ledger 와 Wallet 시스템에 대해 충분히 핵심적인 부분은 설명했다고 생각합니다. 뒷 부분인 Ledger 와 Wallet 부분은 들으신 것 같지 않은 것 같은대 단순 재배열/재사용에 대해 언급하신 건 납득되지 않네요. 실제 이론을 구현 하는 것이 대해서도 여러 고민이 있기 마련인거 아닌지 묻고 싶습니다.

        • 어떻게 구현되는지가 중요하다는 말씀을 드린게 아닙니다. 제가 드리고 싶은 말은 단순히 필드만 보아도 차변(debit)이나 대변(credit) 그리고 테이블 이름에서도 ledger라고 장부라는 개념이 사용되었고 복식부기라는 명칭인 double entry라는 개념이 사용되었다면 이 부분에 대한 설명이 필요하다는 말씀드린 겁니다. 복식부기를 어느 정도 이해하고 이 복식부기를 구현해서 어떻게 안정적으로 결제를 추적하고 관리하는지에 대한 설명이 필요한게 아닐까요?? 이게 도메인을 이해하고 해당 도메인의 정의와 요구사항을 파악하는게 아닌가요? 이게 되어야지 이 결제라는 도메인을 제대로 설명해주시는게 아닐까요? 이 강의에서는 대략적인 결제과정을 안정적으로 운영하는 코드를 제시하고 이를 카프카로 어떻게 이벤트로 관리하고 이 과정에서 트렌젝션을 관리하는 과정을 보여주시는데 이는 제가 보기에 결제도메인이 주가 아니라 카프카와 트렌젝션 관리가 메인이고 이 것들을 단순히 결제과정에서 보여주는 걸로 보입니다. 강사님이 준비가 부족했거나 강의 내용이 성실하지 않았다는건 아닙니다. 다만 결제 도메인에 대한 궁금증을 풀 수 있을까하여 기대하고 10만원을 결제했는데 얻은게 별로 없는 것 같아 날카롭게 수강평을 남겼네요. 홧김에 2점을 남기긴 했는데 3점으로 변경해놓고 갑니다.

      • JAE YEOB JEONG님의 프로필 이미지
        JAE YEOB JEONG

        Đánh giá 3

        Đánh giá trung bình 5.0

        5

        33% đã tham gia

        3.104.284 ₫

        Khóa học khác của yjm9505168574

        Hãy khám phá các khóa học khác của giảng viên!

        Khóa học tương tự

        Khám phá các khóa học khác trong cùng lĩnh vực!