강의

멘토링

커뮤니티

BEST
Programming

/

Database

Kotlin Master Class: Learning Through Bank Server Project Practice

Kotlin mastery via virtual payment server course.

(4.8) 27 reviews

304 learners

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

Reviews from Early Learners

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

4,589

Learners

336

Reviews

118

Answers

4.7

Rating

18

Courses

자기 소개

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

 

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

 

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

 

지식공유자 경력

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

[前] 메타버스 백엔드 개발자

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

 

인터뷰 이력

Curriculum

All

50 lectures ∙ (9hr 2min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

27 reviews

4.8

27 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!

  • ddddve님의 프로필 이미지
    ddddve

    Reviews 9

    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!