강의

멘토링

커뮤니티

BEST
Programming

/

Database

Kotlin Master Class: Learning Through Bank Server Project Practice

Kotlin mastery via virtual payment server course.

(4.8) 30 reviews

330 learners

Level Beginner

Course period Unlimited

  • Hong
Kotlin
Kotlin
MySQL
MySQL
MongoDB
MongoDB
Kafka
Kafka
Redis
Redis
Kotlin
Kotlin
MySQL
MySQL
MongoDB
MongoDB
Kafka
Kafka
Redis
Redis

Reviews from Early Learners

Reviews from Early Learners

4.8

5.0

Baskin

24% enrolled

I'm a current developer. My first development career was as a junior backend developer during the time when Java and Spring were the absolute standard. I remember discussing with my team members back then whether Kotlin, which had just come out and was being adopted by Android, would become widely used in Spring as well. After that, I unintentionally(?) transitioned to working as a Flutter developer, and recently I got a great opportunity and was lucky enough to switch jobs back to being a Spring backend developer. Just as I was about to start onboarding, I discovered this excellent course. Since it covers Spring projects using Kotlin, it feels refreshing, and compared to Java Spring, the code is much more concise and there are quite a few interesting aspects in terms of DX. I'm steadily watching the course, but it seems to be a continuous series of reflections and realizations about why I didn't think to implement things this way when I worked as a junior server developer. It feels like an excellent lead developer is kindly teaching me alongside. Moreover, courses that comprehensively cover and apply Kafka, Redis, etc. seem really rare. I think this is an excellent course for junior developers who have theoretical knowledge of Spring and are preparing for or about to transition to backend development, developers who have been using Java for a long time and are planning to adopt Kotlin, or developers like me who have been working in other development fields and are planning to transition back and want to understand where Spring is at now. I'll watch until the last lecture and have a successful onboarding haha. Thank you! + What I'd like to say to learners is that since this is a practical/hands-on focused course, if you catch the keywords that appear throughout the lectures for basic concepts like AOP, IoC, etc., study them separately, and then watch again, I'm sure you'll be able to grasp the instructor's development intentions. Developers who are spoon-fed everything and still grow are actually very rare to see in the field. It might sound old-fashioned(?), but the development field is definitely not a job for hothouse flowers!

5.0

미래 1인 개발자

30% enrolled

I'm not sure if I was helpful in preparing the lecture... I'm a developer working at Toss, and I answered a few questions from the lecturer and had some interaction. You said you were filming the lecture... and you've really opened it up like this 😆😆😆 It seems like a fun topic. Thanks to you, I'm having a good experience. I hope it will be helpful to everyone who listens to the lecture!

5.0

armyso9506

30% enrolled

Although I'm still taking the course, it seems like there are more things to learn than I expected. I started with Kafka or Mongo, but I think it's good that you explain a lot about how to utilize it in various projects while capturing many common items. Things like extracting common methods and considering scalability through interfaces... I wish not only Kotlin beginners but also junior developers would take this course!! I've only watched a little bit so far, but I'm very satisfied with the course so far. Thank you to the instructor for opening such a lecture. (__)

What you will gain after the course

  • 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

5,964

Learners

391

Reviews

127

Answers

4.7

Rating

22

Courses

Introduction

I started studying development after finding it interesting while lounging around at home, and I am currently working as a platform server developer in Pangyo. I am continuing my activities as a knowledge sharer because I want to provide you with the methods I used to study, as well as the various problems and solutions you may encounter in the field.

These lectures are not created through my knowledge alone. Every lecture is made possible by those who work alongside me.

Instructor Experience

[Former] Blockchain developer for Sandbox IP

[Former] Metaverse Backend Developer

[Current] Veteran server developer based in Pangyo

Interview History

Other inquiries

  • unduck2022@gmail.com

Curriculum

All

50 lectures ∙ (9hr 2min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

30 reviews

4.8

30 reviews

  • tttos님의 프로필 이미지
    tttos

    Reviews 8

    Average Rating 5.0

    5

    30% enrolled

    I'm not sure if I was helpful in preparing the lecture... I'm a developer working at Toss, and I answered a few questions from the lecturer and had some interaction. You said you were filming the lecture... and you've really opened it up like this 😆😆😆 It seems like a fun topic. Thanks to you, I'm having a good experience. I hope it will be helpful to everyone who listens to the lecture!

    • jhong
      Instructor

      Thank you again for visiting! I learned a lot, and I wanted to share what I learned with others, so I prepared this. 😊😊 Thank you always!! I'll be back to bother you again. 😆😆😆 Please give it a lot of attention!

  • cchoii님의 프로필 이미지
    cchoii

    Reviews 11

    Average Rating 5.0

    5

    30% enrolled

    Hi, I'm Choi, a server developer at Kakao. Someone suddenly asked me for advice on filming a lecture, and after a few things here and there, I ended up giving some help. It's amazing to see the lecture actually being released like this 😊😊 I think I can see that the content I told him was incorporated as much as possible, which feels new to me. I hope that through this lecture, you all will fall in love with the charm of Kotlin.

    • jhong
      Instructor

      😆😆😆 I'm always sorry for bothering you by following you around. Thanks to you, I was able to prepare a good lecture. Thank you always! ❤️

  • dfdssdsd님의 프로필 이미지
    dfdssdsd

    Reviews 24

    Average Rating 5.0

    5

    30% enrolled

    The GOAT. Personally, I think it's the top Kotlin course on Inflearn.

    • jhong
      Instructor

      Hello soap, thank you for your good review!! I'll come back with even better lectures in the future! Thank you!

  • sdl1355126님의 프로필 이미지
    sdl1355126

    Reviews 14

    Average Rating 5.0

    5

    30% enrolled

    Although I haven't finished all the lectures, even based on the current progress, I think it's a good lecture that covers and teaches most functionalities needed for project construction, starting from the limitations of AOP. I started listening, thinking it would be easy, but the more I listen, the more I feel it's a substantive lecture from which I can learn even more.

    • jhong
      Instructor

      Hello Keny, thank you for leaving a good review! I will prepare more substantial lectures in the future and see you again! Have a great day!

  • de님의 프로필 이미지
    de

    Reviews 10

    Average Rating 5.0

    5

    60% enrolled

    Thanks to you, I was able to study comfortably. Thank you.

    • jhong
      Instructor

      Thank you for leaving a great review. I hope this lecture helps you fall even deeper into the charm of Kotlin!

$84.70

Hong's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!