강의

멘토링

로드맵

BEST
Programming

/

Database

Lớp học thành thạo Kotlin thông qua thực hành dự án máy chủ ngân hàng

Đây là khóa học giúp bạn thành thạo Kotlin thông qua máy chủ thanh toán ảo.

(4.8) 23 đánh giá

269 học viên

  • Hong
실습 중심
Kotlin
mysql
데이터베이스
자격증
시험
MySQL
MongoDB
Kafka
Redis

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

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

  • Kotlin

  • MySQL

  • MongoDB

  • OAuth2

  • Kafka

  • Redis

  • Concurrency Controll

Học Kotlin thông qua Thực hành Dự án Bank Server

Bạn đã sẵn sàng để đi xa hơn việc chỉ học cú pháp Kotlin và tích lũy kinh nghiệm thực tế bằng cách viết một dự án mẫu cho máy chủ ngân hàng chưa?


Trong khóa học này, bạn sẽ học cách viết mã hiệu quả với cú pháp súc tích và biểu cảm của Kotlin, khám phá giải pháp riêng của Kotlin khắc phục được các hạn chế AOP của Spring và tìm hiểu các phương pháp xử lý nhật ký có thể mở rộng . Bạn cũng sẽ tự triển khai máy chủ có thể mở rộng bằng Redis, Kafka, MySQL và MongoDB và áp dụng các phương pháp để giải quyết các vấn đề đồng thời trong thực tế.


Các vấn đề xảy ra trong lĩnh vực tài chính rất đa dạng và phức tạp. Chúng tôi không thể đề cập đến mọi thứ trong một bài giảng, nhưng chúng tôi cung cấp cơ hội giải quyết các vấn đề thực tế cho những người muốn tham gia vào lĩnh vực tài chính hoặc tìm hiểu sâu hơn về Kotlin.

Đừng chỉ dừng lại ở lý thuyết, mà hãy biến công nghệ có thể áp dụng trực tiếp vào các dịch vụ thực tế thành của riêng bạn. Đây sẽ là thời gian để cùng nhau suy nghĩ và phát triển.

Tại sao tôi nên học Kotlin?

Người ta nói rằng nó tương thích 100% với Spring, và Kotlin, một ngôn ngữ do Jetbrain tạo ra, được tối ưu hóa cho lập trình đồng thời, điều mà Spring không phù hợp.

📚 Ngữ pháp súc tích và trực quan


Kotlin cung cấp cú pháp ngắn gọn và trực quan, cho phép các nhà phát triển làm được nhiều việc hơn với ít mã hơn. Điều này có tác dụng cải thiện khả năng đọc và giúp bảo trì dễ dàng hơn.

📚 Năng suất và an toàn cao


Kotlin hỗ trợ null safety theo mặc định, có thể giảm các ngoại lệ con trỏ null (NullPointerException). Nó cũng hỗ trợ lập trình chức năng, cho phép bạn viết mã theo cách chức năng và khai báo hơn. Các tính năng này làm tăng năng suất phát triển và giảm khả năng xảy ra lỗi.

📚 Khả năng tương thích cao


Kotlin tương thích 100% với Java, giúp dễ dàng tích hợp vào các dự án Java hiện có. Điều này có nghĩa là các nhà phát triển Java không gặp rào cản đáng kể nào khi học Kotlin và có thể sử dụng các tính năng Kotlin mới trong khi vẫn duy trì mã hiện có.

Sau khi học bài giảng, bạn có thể tạo ra kết quả như thế này.

Thành phần API sử dụng cú pháp Kotlin

Bạn viết ngữ pháp trong Kotlin như thế nào, sử dụng lập trình hàm? Nó cũng hỗ trợ nhiều biểu thức lambda khác nhau và bạn có thể cấu hình máy chủ cùng nhau.

Cách sử dụng Kotlin để khắc phục Spring AOP

Kotlin hỗ trợ hoàn toàn Spring, nhưng AOP trong Spring có những hạn chế rõ ràng.

Trong Kotlin, chúng ta sẽ cùng nhau tìm hiểu cách khắc phục những hạn chế này.

Quản lý khóa cho xử lý đồng thời

Trong môi trường có nhiều phiên bản đang chạy, cần phải thực hiện công việc để đạt được tính đồng thời trên nhiều cụm.

Cấu hình máy chủ sử dụng Redis, MySQL và MongoDB

Cấu hình máy chủ không chỉ đơn thuần là một DB. Dự án được cấu hình bằng cách sử dụng trực tiếp bộ nhớ đệm và hàng đợi tin nhắn.

Bảo mật API thông qua xử lý xác thực OAuth2

Bảo mật là yếu tố quan trọng nhất trong cấu hình máy chủ.

Bài giảng này sẽ đề cập đến việc xử lý xác thực có thể mở rộng thông qua xử lý callBack.

Triển khai hàng đợi tin nhắn bằng Kafka

Đối với kiến ​​trúc MSA và các dịch vụ miền lớn, Kafka không phải là một lựa chọn mà là điều bắt buộc.

Chúng tôi cũng cung cấp hướng dẫn thực tế về cách sử dụng Kafka.

Công nghệ được đề cập trong bài giảng

MySQL

MySQL, một cơ sở dữ liệu quan hệ, được sử dụng để xử lý dữ liệu có mối quan hệ.

Bạn sẽ có một cấu trúc linh hoạt để phát triển dịch vụ thông qua phương pháp mã hóa để cấu hình JPA, viết các thực thể và chỉ định mối quan hệ giữa dữ liệu.

MongoDB

Nó được sử dụng như một cơ sở dữ liệu để quản lý dữ liệu lịch sử dựa trên loại lưu lượng truy cập đến bằng cách áp dụng chiến lược duy trì đa ngôn ngữ.

Chúng tôi sẽ giải thích những khái niệm này là gì và những điều bạn nên cân nhắc.

Redis, Redisson

Bằng cách giới thiệu một công cụ lưu trữ đệm, nó được sử dụng để tối ưu hóa CPU và xử lý lưu trữ đệm cho cơ sở dữ liệu, ngoài ra, một khóa để kiểm soát đồng thời được giới thiệu và áp dụng.

Kafka

Bạn sẽ triển khai kiến trúc dựa trên thông điệp. Bạn có thể cấu hình Producer và Consumer cùng nhau xây dựng dự án, và cũng sẽ đề cập đến việc triển khai mã để mở rộng Consumer.

Spring Security

Sử dụng Spring Security để tiến hành xác thực Token và thông qua đó áp dụng việc lọc các yêu cầu một cách chủ động. Thông qua cấu trúc này, chúng ta sẽ cấu hình server theo cách thức đảm bảo hiệu quả tài nguyên.

JWT

Sau khi xác thực OAuth2, chúng ta sẽ tìm hiểu về cách quản lý JWT token dựa trên dữ liệu đó. Tiếp theo, chúng ta sẽ tìm hiểu về cách tích hợp quá trình xác minh JWT với Spring Security để chỉ xử lý các yêu cầu từ người dùng được ủy quyền.

4 giá trị cốt lõi mà chúng tôi trân trọng

1. Bài giảng phải có tính nhân văn.

Dù có thể bị coi là thiếu chuyên nghiệp, tôi nghĩ rằng những bài giảng dễ trình bày không phải là bài giảng thực sự. Thời gian tiến hành debug cũng là một phần của bài giảng.

2. Phải chuyên biệt hóa cho thực tế công việc

Lập trình không phải là nói suông. Bạn có thể cùng thực hiện việc triển khai thực tế và trải nghiệm quá trình hoạt động.

  • Các anh chị làm kế hoạch... xin hãy cứu tôi..

3. Phải có ích cho các học viên.

Tôi muốn truyền đạt những khái niệm mà tôi đã áp dụng trong thực tế và thấy hiệu quả. Thông qua khóa học này, bạn có thể trải nghiệm gián tiếp công việc thực tế hoặc nếu đã là người làm thực tế thì có thể thể hiện hiệu suất xuất sắc hơn trong môi trường làm việc.

4. Bài giảng không phải là kết thúc.

Khi tiến hành bài giảng, tôi mong các bạn để lại nhiều câu hỏi và thảo luận. Bài giảng này không được tạo ra chỉ từ kiến thức của riêng tôi. Nó cũng tổng hợp ý kiến từ nhiều lập trình viên của các công ty lớn.

  • Tiểu sử ngắn gọn về những người đã giúp đỡ hoàn thành khóa học như sau.


private val supported_one = "Nhà phát triển backend nền tảng KakaoPay"

private val supported_two = "Nhà phát triển API server Toss Securities"

private val supported_three = "Nhà phát triển server startup unicorn bí mật"

Sơ đồ cấu trúc bài giảng

Phần 2

Tôi đang trình bày một cách ngắn gọn về quản lý model mà tôi đã xử lý trong quá trình làm việc thực tế.

Dựa trên design pattern của Google, nội dung này chứa quan điểm cá nhân về cách tiếp cận tốt nhất để xử lý type từ góc độ nào.

Phần 3

Chúng ta sẽ tiến hành công việc lập trình để triển khai mã có khả năng mở rộng cho OAuth2.

OAuth2 là một tính năng có thể được bổ sung liên tục tùy theo đặc điểm của từng nền tảng. Chúng tôi sẽ hướng dẫn bạn cách triển khai code có tính mở rộng thông qua xử lý interface cho tính năng này.

Phần 4

Trong phần này, bạn sẽ học về cách sử dụng Kotlin để khắc phục những nhược điểm của AOP trong Spring.

Spring AOP là một khái niệm được áp dụng và sử dụng rất nhiều mà các bạn có thể không biết. Nó được sử dụng để đảm bảo tính bền vững dữ liệu cho cơ sở dữ liệu quan hệ, và cũng được ứng dụng trong xử lý logging thông qua việc sử dụng PointCut.

Tuy nhiên, đây là một người bạn đáng tiếc vì cũng tồn tại một số nhược điểm. Phần này đề cập đến cách sử dụng AOP của Spring trong Kotlin một cách linh hoạt hơn.

Phần 5

Bạn sẽ làm việc với API đã hoàn thành việc triển khai chức năng OAuth2 và áp dụng cả AOP.

Thông qua khóa học này, các bạn sẽ cùng tôi lần đầu tiên triển khai và viết code, kiểm tra xem code có hoạt động đúng không, và thông qua quá trình này cũng sẽ có thời gian debug cùng nhau.

Phần 6

Công việc lập trình cho các tính năng phù hợp hơn với B2C và B2B sẽ được tiến hành.

Tùy theo lưu lượng truy cập đến, bạn sẽ cùng nhau triển khai cách thức hoạt động của tính năng thông qua việc thực thi Service Logic cụ thể.

Bạn sẽ sử dụng @Service, @RestController và các annotation khác để viết logic nghiệp vụ cùng nhau.

Phần 7

Redis là một yếu tố rất quan trọng trong thực tế. Nó có thể được sử dụng để kiểm soát tính đồng thời và cũng được sử dụng để tối ưu hóa CPU cho DB thông qua việc xử lý cache dữ liệu.

Trong phần này, chúng ta sẽ làm việc với các phương thức đa dạng có thể sử dụng RedisRedisson.

Phần 8

Bây giờ chúng ta sẽ chính thức viết logic kiểm soát đồng thời bằng cách sử dụng các phương thức liên quan đến Redis mà chúng ta đã viết trước đó.

Chúng ta sẽ cùng nhau viết Distributed Lock để xử lý tuần tự các traffic đồng thời đa phương hướng và cùng nhau tạo ra logic để đảm bảo tính bền vững của dữ liệu.

Phần 9, 10

Trong thời gian này, bạn sẽ trực tiếp triển khai code về Kafka. Bạn sẽ sử dụng Kafka Producer để xử lý các thay đổi sự kiện xảy ra trên API, và sử dụng nó như một code áp dụng chiến lược loose coupling giữa các service và polyglot persistence.


Bạn sẽ triển khai code cho MongoDB và thực hiện logic dịch vụ tương ứng. Ngoài ra, bạn sẽ triển khai và tìm hiểu về logic giảm thiểu việc sử dụng DB thông qua việc tận dụng bộ nhớ.

Phần 11

Spring Security sẽ đảm nhận logic xử lý trước các yêu cầu đến API.

Quá trình này có nhược điểm là tăng thêm các điểm cần quản lý, nhưng chúng ta sẽ cùng triển khai những ưu điểm có thể tối ưu hóa thêm tài nguyên theo đó.

Phần 12, 13

Tạo một module mới để xử lý Producer của Kafka và triển khai logic giao tiếp với MongoDB, Redis, từ đó xử lý quá trình tạo dữ liệu phù hợp với loại traffic. Thông qua thời gian này, các bạn sẽ học về khái niệm loose coupling là gì và phương thức xử lý message là gì.

Lưu ý trước khi học

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

  • Chụp bằng MacOS M3.

  • Theo mặc định, nó sử dụng Docker.

  • java --version : 17.0.12 2024-07-16 LTS

  • Tôi sử dụng IDE từ nhóm JetBrains.

  • Xây dựng bằng Gradle.

  • Không bao gồm cơ sở hạ tầng.

Một bài giảng tuyệt vời để cùng nhau xem!

Lớp học nâng cao về Kotlin thông qua Thực hành dự án Time Capsule

  • Đây là bài giảng về lớp học nâng cao Kotlin xây dựng các dịch vụ web bằng Ktor, mã nguồn mở lớn nhất của JetBrains. Thông qua bài giảng này, bạn sẽ tìm hiểu về ngữ pháp cơ bản và các phương pháp mã hóa thực tế của Kotlin.

Một lớp học nâng cao về coroutines gần với những điều cơ bản và trung thành với những điều cơ bản

  • Dựa trên tài liệu chính thức về coroutine, đây là lớp học chính về coroutine dành cho các nhà phát triển trong các công ty lớn!! Hãy xem các bài giảng bao gồm ý kiến ​​của các nhà phát triển thực tế dựa trên nhiều ví dụ khác nhau!

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

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

  • Người mới bắt đầu Kotlin

  • Những ai muốn học về lập trình

  • Ai tò mò về kiểm soát đồng thời

  • Những ai muốn tìm hiểu về API server

  • Những ai tò mò về các công cụ dùng trong thực tế

Xin chào
Đây là

3,511

Học viên

263

Đánh giá

104

Trả lời

4.6

Xếp hạng

17

Các khóa học

자기 소개

집에서 빈둥대다 개발에 흥미를 느껴 개발 공부를 시작하였고 현재는 판교에서 플랫폼 서버 개발을 담당하여 진행하고 있습니다.

 

제가 공부를 했던 방법과 실무에서 접하실 수 있는 여러가지 문제점들과 해결책을 여러분들에게 제공하고 싶어 지식공유자 활동을 이어나가고 있습니다.

 

강의는 오로지 저만의 지식을 통해 만들어지지 않습니다. 모든 강의는 함께하시는 분들이 계십니다.

 

지식공유자 경력

[前] 샌드박스 블록체인 개발자

[前] 넥슨 자회사 백엔드 개발자

[] 판교에서 고여가는 서버 개발자

 

인터뷰 이력

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

Tất cả

50 bài giảng ∙ (9giờ 2phú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ả

23 đánh giá

4.8

23 đánh giá

  • 미래 1인 개발자님의 프로필 이미지
    미래 1인 개발자

    Đánh giá 7

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

    강의를 준비하는데에 있어서 도움을 주었는지는 모르겠지만... 강의하시는 분의 질문에 답변을 몇개 드리며 교류했던 토스에서 근무하고 있는 개발자 입니다. 강의를 찍는다고 찍는다고 하셨는데.. 진짜 이렇게 오픈을 하셨네요 ㅋㅋㅋ 재미있는 주제인거 같습니다. 덕분에 좋은 경험도 해보는거 같습니다. 강의 들어주시는 분들에게 모두 많은 도움이 되기를 바라겠습니다. !

    • Hong
      Giảng viên

      이렇게 또 찾아주셔서 감사합니다!! 많이 배웠고 많이 배운 부분들 다른분들에게도 나누고 싶어서 준비해보았습니다 ㅎㅎ 항상 감사드립니다!! 또 찾아가서 괴롭힐게요 ㅋㅋㅋ 많은 관심 부탁드려요!

  • 우왕 개발자다님의 프로필 이미지
    우왕 개발자다

    Đánh giá 7

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

    카카오에서 서버 개발하고 있는 초이라고 합니다. 갑자기 강의를 찍는다고 저에게 조언을 구하고 어찌저찌 하다보니 도움을 몇가지를 드리기는 했는데, 이렇게 정말 강의가 오픈되는지 참 신가하네요 ㅎㅎ 제가 알려드린 내용을 최대한 녹인 부분이 보이는거 같아 기분이 또 새롭습니다. 이 강의를 통해서 여러분들도 코틀린의 매력에 빠지셨으면 좋겠습니다.

    • Hong
      Giảng viên

      ㅋㅋㅋ 항상 쫓아다니며 귀찮게 해서 죄송합니다. 덕분에 좋은 강의를 준비하게 되었습니다 항상 감사드립니다! ❤️

  • soap님의 프로필 이미지
    soap

    Đánh giá 24

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

    Goat 그 자체. 개인적으로 인프런에 있는 코틀린 강의 중 one Top이라 생각합니다.

    • Hong
      Giảng viên

      안녕하세요 soap님 좋은 평 남겨주셔서 감사합니다!! 앞으로 더 좋은 강의로 찾아뵙도록 할게요! 감사합니다!

  • keny님의 프로필 이미지
    keny

    Đánh giá 13

    Đánh giá trung bình 5.0

    5

    30% đã tham gia

    강의를 전부 다 듣지는 않았지만 해당 진행도 기준에서도 AOP의 한계부터 사실상 프로젝트를 구성하는데에 있어서 대부분의 기능을 다루고 학습 할 수 있는 좋은 강의라고 생각합니다. 쉽게 생각하고 들어보기 시작했는데, 들으면 들을수록 더 많은 부분을 배울 수 있는 알찬 강의라는 생각이 드네요

    • Hong
      Giảng viên

      안녕하세요 Keny님 좋은 평 남겨주셔서 감사합니다! 앞으로 더 알찬강의로 추가로 찾아뵙도록 할게요! 좋은 하루 보내세요!

  • devHand님의 프로필 이미지
    devHand

    Đánh giá 10

    Đánh giá trung bình 5.0

    5

    60% đã tham gia

    덕분에 편하게 공부 할 수 있었습니다. 감사합니다.

    • Hong
      Giảng viên

      좋은 평 남겨주셔서 감사합니다. 이 강의를 통해서 코틀린의 매력에 좀 더 빠지시면 좋겠네요!!

2.298.626 ₫

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

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!