강의

멘토링

로드맵

BEST
Programming

/

Database

Kotlin Master Class: Learning Through Bank Server Project Practice

Kotlin mastery via virtual payment server course.

(4.8) 18 reviews

258 learners

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

Reviews from Early Learners

What you will learn!

  • Kotlin

  • MySQL

  • MongoDB

  • OAuth2

  • Kafka

  • Redis

  • Concurrency Controll

Learning Kotlin through Bank Server Project Practice

Are you ready to go beyond simply learning Kotlin syntax and gain practical experience by writing a sample project for a banking server?


In this course, you will learn how to write efficient code with Kotlin's concise and expressive syntax, discover Kotlin's own solution that overcomes Spring's AOP limitations , and learn scalable log processing methods . You will also implement a scalable server yourself using Redis, Kafka, MySQL, and MongoDB , and apply methods for solving concurrency issues in practice.


The problems that occur in the financial domain are diverse and complex. We cannot cover everything in one lecture, but we provide an opportunity to solve real problems that people who wish to enter the financial domain or learn Kotlin in depth.

Don't just end with theory, but make technology that can be applied directly to actual services your own. It will be a time to think together and grow.

Why should I learn Kotlin..?

It is said to be 100% compatible with Spring, and Kotlin, a language created by Jetbrain, is optimized for concurrent programming, which Spring is not suitable for.

📚 Concise and intuitive grammar


Kotlin allows developers to do more with less code because it provides a concise and intuitive syntax. This has the effect of improving readability and making it easier to maintain.

📚 High productivity and safety


Kotlin supports null safety by default, which can reduce null pointer exceptions (NullPointerException). It also supports functional programming, which allows you to write code in a more functional and declarative way. These features increase development productivity and reduce the possibility of bugs.

📚 High compatibility


Kotlin is 100% compatible with Java, making it easy to integrate into existing Java projects. This means that Java developers have no significant barriers to learning Kotlin, and can use new Kotlin features while maintaining existing code.

After taking the lecture, you can create results like this.

API composition using Kotlin syntax

How do you write grammar in Kotlin, which uses functional programming? It also supports various lambda expressions and you can configure the server together.

How to use Kotlin to overcome Spring AOP

Kotlin fully supports Spring, but there are clear limitations to AOP in Spring.

In Kotlin, we will learn together how to overcome these limitations.

Lock management for concurrency processing

In an environment where multiple instances are running, work is required to achieve concurrency across clusters.

Server configuration using Redis, MySQL, and MongoDB

There is more to configuring a server than just a simple DB. The project is configured by directly utilizing cache and message queue.

API security through OAuth2 authentication processing

Security is the most important factor in server configuration.

This lecture will cover scalable Auth processing through callBack processing.

Implementing a message queue using Kafka

For MSA architecture and large domain services, Kafka is not an option, it is a must.

We also provide a practical guide to using Kafka.

Technology stack covered in the lecture

MySQL

MySQL, a relational database, is used to handle data with relationships.

You will have a flexible structure for service development through the code method of configuring JPA, writing entities, and specifying relationships between data.

MongoDB

It is used as a database to manage historical data based on the incoming traffic type by introducing a polyglot persistence strategy.

We're going to cover what these concepts are and what you should consider.

Redis, Redisson

By introducing a caching tool, it is utilized as CPU optimization and caching processing for the database, and additionally, a lock for concurrency control is introduced and applied.

Kafka

You will implement a message-based architecture. You can configure Producers and Consumers and build the project together, and you will also cover code implementation for Consumer scalability.

Spring Security

We will use Spring Security to perform token verification and proactively apply filtering to requests through this process. Through this structure, we will configure the server in a way that ensures resource efficiency.

JWT

After OAuth2 authentication, we will cover how to manage JWT tokens based on that data. Subsequently, we will discuss how to integrate the JWT verification process with Spring Security to handle only requests from authorized users.

4 Core Values We Hold Dear

1. Lectures should be humane.

Even if it may seem less professional, I believe that lectures that are easy to show are not real lectures. The time spent debugging is also part of the lecture.

2. It should be specialized for practical work

Development is not about talking. You can actually implement it and experience the working process together.

  • Planners... please save me..

3. It should be helpful to students.

I wanted to incorporate concepts that I have applied in practice and seen effective results from. Through this course, you can indirectly experience real-world work, or if you're already a practitioner, you can demonstrate superior performance in your work environment.

4. The lecture is not the end.

Please leave many questions and answers as you progress through the lectures. This course was not created solely through my own knowledge. It also incorporates opinions from various developers at large corporations.

  • The brief backgrounds of those who helped complete the course are as follows.


private val supported_one = "Kakao Pay Platform Backend Developer"

private val supported_two = "Toss Securities API Server Developer"

private val supported_three = "Unicorn Startup Server Developer (requested to keep confidential)"

Course Structure

Section 2

This briefly covers model management that I dealt with while experiencing practical work.

This includes my personal perspective on what would be the best approach to handling types, based on Google's design patterns.

Section 3

We will proceed with code work to implement scalable code for OAuth2.

OAuth2 is a feature that can be continuously added depending on platform characteristics. We'll show you how to implement scalable code through interface handling for this functionality.

Section 4

In this section, you will learn about how to overcome the limitations of AOP in Spring using Kotlin.

Spring AOP is a concept that is widely applied and used without you realizing it. It is used to ensure data persistence for conventional databases, and is also utilized in logging processing using PointCut.

However, it's a disappointing friend that has several drawbacks. This section covers how to use Spring's AOP more flexibly in Kotlin.

Section 5

You will work on an API that has completed the implementation of OAuth2 functionality and even applied AOP.

Through this process, you will implement and write code for the first time together with me, verify that it works correctly, and also have time for debugging through this process.

Section 6

Further code development will proceed for features that are more suitable for B2C and B2B applications.

You will implement together how to execute specific Service Logic based on incoming traffic and how to implement functionality.

You will write business logic together using @Service, @RestController and others.

Section 7

Redis is a very important element in practical work. It can be used to control concurrency and is used for CPU optimization of databases through cache processing of data.

In this section, you will work with various methods that can utilize Redis and Redisson.

Section 8

Now you will begin writing the logic for concurrency control in earnest, utilizing the Redis-related methods that were written earlier.

We will work together to write a Distributed Lock for sequential processing of simultaneous incoming traffic, and it will be a time to write logic together to ensure data persistence.

Section 9, 10

In this session, you will implement code directly using Kafka. You will utilize Kafka's Producer to handle event changes occurring in the API, and use it as code that leverages loose coupling between services and polyglot persistence strategies.


You will implement code for MongoDB and develop the corresponding service logic. Additionally, you will implement and work with logic that reduces database usage through memory utilization.

Section 11

Spring Security is responsible for handling the logic that processes incoming API requests in advance.

This process has the disadvantage of increasing the number of points that need to be managed, but we will implement it together with the advantage of being able to optimize additional resources accordingly.

Section 12, 13

You will create a new module to handle Kafka's Producer and implement logic that communicates with MongoDB and Redis, thereby covering the process of generating data suitable for different traffic types. Through this session, you will learn what loose coupling is and what message processing methods are.

Important Notes Before Taking the Course

Practice environment

  • Taken using MacOS M3.

  • It uses Docker by default.

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

  • I use an IDE from the JetBrains family.

  • Build using Gradle.

  • It doesn't cover infrastructure.

A great lecture to watch together!

Kotlin Masterclass through Time Capsule Project Practice

  • This is a Kotlin master class lecture that builds web services using Ktor, JetBrains' largest open source. Through this lecture, you will learn about Kotlin's basic grammar and practical encryption methods.

A master class in coroutines that is close to the basics and faithful to the basics

  • Based on the official coroutine documentation, this is a coroutine master class for developers in large companies!! Check out the lectures that include the opinions of practical developers based on various examples!

Recommended for
these people

Who is this course right for?

  • Kotlin for beginners

  • People who want to learn programming

  • For those curious about concurrency control

  • Anyone curious about the API server

  • For those curious about the tools used in practice.

Hello
This is

3,285

Learners

225

Reviews

89

Answers

4.6

Rating

16

Courses

자기 소개

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

 

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

 

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

 

지식공유자 경력

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

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

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

 

인터뷰 이력

Curriculum

All

50 lectures ∙ (9hr 2min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

18 reviews

4.8

18 reviews

  • tttos님의 프로필 이미지
    tttos

    Reviews 7

    Average Rating 5.0

    5

    30% enrolled

    Tôi không biết liệu tôi có giúp ích gì trong việc chuẩn bị bài giảng hay không... Tôi là một nhà phát triển làm việc tại Toss, người đã trả lời một vài câu hỏi và trao đổi với giảng viên. Anh đã nói là anh sẽ quay bài giảng... và anh đã thực sự công khai nó như thế này 😆😆😆. Đó là một chủ đề thú vị. Nhờ có anh, tôi đã có một trải nghiệm tuyệt vời. Tôi hy vọng rằng nó sẽ giúp ích được nhiều cho tất cả những người tham gia bài giảng!

    • jhong
      Instructor

      Cảm ơn bạn vì đã luôn tìm đến mình!! Mình đã học được rất nhiều và muốn chia sẻ những điều mình học được cho những người khác nên đã chuẩn bị một chút quà nhỏ 😊😊 Luôn luôn cảm ơn bạn rất nhiều!! Mình sẽ lại tìm đến làm phiền bạn nữa nha 😆😆😆 Mong bạn sẽ luôn quan tâm đến mình!

  • ddddve님의 프로필 이미지
    ddddve

    Reviews 7

    Average Rating 5.0

    5

    30% enrolled

    Tôi là Choi, một nhà phát triển máy chủ tại Kakao. Tôi đã đưa ra một vài lời khuyên khi đột nhiên nhận được yêu cầu giúp đỡ quay một bài giảng, và thật kỳ lạ khi bài giảng thực sự được ra mắt 😊😊 Tôi cảm thấy rất mới mẻ khi thấy những nội dung tôi đã chỉ dẫn được áp dụng tối đa trong bài giảng. Tôi hy vọng các bạn cũng sẽ bị cuốn hút bởi sự quyến rũ của Kotlin thông qua bài giảng này.

    • jhong
      Instructor

      😆😆😆 Em xin lỗi vì luôn theo sát và làm phiền anh/chị. Nhờ có anh/chị mà em đã chuẩn bị được một bài giảng tốt. Em luôn cảm ơn anh/chị! ❤️

  • dfdssdsd님의 프로필 이미지
    dfdssdsd

    Reviews 22

    Average Rating 5.0

    5

    30% enrolled

    Đúng là Goat. Cá nhân tôi nghĩ đây là khóa học đỉnh nhất trong số các khóa học Kotlin trên Inflearn.

    • jhong
      Instructor

      Chào bạn soap, cảm ơn bạn đã để lại đánh giá tốt!! Sắp tới mình sẽ mang đến những bài giảng hay hơn nữa! Cảm ơn bạn!

  • sdl1355126님의 프로필 이미지
    sdl1355126

    Reviews 12

    Average Rating 5.0

    5

    30% enrolled

    Mặc dù tôi chưa nghe hết toàn bộ bài giảng, nhưng ngay cả với tiến độ hiện tại, tôi nghĩ đây là một bài giảng hay cho phép tôi tìm hiểu và học hỏi hầu hết các chức năng cần thiết để xây dựng một dự án, bắt đầu từ những hạn chế của AOP. Tôi bắt đầu nghe với suy nghĩ đơn giản, nhưng càng nghe tôi càng thấy đây là một bài giảng chất lượng cao cho phép tôi học được nhiều điều hơn.

    • jhong
      Instructor

      Chào Keny, cảm ơn bạn đã để lại đánh giá tốt! Sắp tới mình sẽ sớm quay lại với những bài giảng chất lượng hơn! Chúc bạn một ngày tốt lành!

  • de님의 프로필 이미지
    de

    Reviews 10

    Average Rating 5.0

    5

    60% enrolled

    Nhờ có bạn mà tôi có thể học hành thoải mái. Cảm ơn bạn.

    • jhong
      Instructor

      Cảm ơn bạn vì đã để lại đánh giá tốt. Tôi hy vọng bạn sẽ hiểu thêm về sức hấp dẫn của Kotlin thông qua bài giảng này!!

Limited time deal ends in 4 days

$1,732,221.00

24%

$84.70

Hong's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!