인프런 영문 브랜드 로고
인프런 영문 브랜드 로고
Programming

/

Database

Kotlin Master Class: Learn through Bank Server Project Practice

In this course, you can master Kotlin via a virtual payment server.

(4.6) 10 reviews

146 students

Kotlin
MySQL
MongoDB
Kafka
Redis

This course is prepared for Beginners.

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 will be able to configure the Procuer and Consumer and build the project together, and you will also cover code implementation for the scalability of the Consumer.

Spring Security

Spring Security is utilized to perform token verification and preemptively apply filtering to requests. Through this structure, the server is configured in a way that ensures resource efficiency.

JWT

After OAuth2 authentication, we will cover how to manage JWT tokens based on that data. After that, we will cover how to integrate the process of verifying JWT with Spring Security to only process requests for authorized users.

Four values that are important

1. Lectures must be humane.

I don't think a lecture that is easy to show off is a lecture, even if it may be considered unprofessional. Debugging is also part of the lecture.

2. It must be specialized for practical work.

Development is not something you just talk about. You can actually implement it and go through the process of making it work.

  • Planners... please save me...

3. It must be helpful to students.

I wanted to incorporate concepts that I have applied and seen effective in my field. Through this process, you can indirectly experience the field, or if you are a practitioner, you can demonstrate better performance in the field environment.

4. The lecture is not over.

I hope you leave a lot of questions and answers as you go through the lecture. This lecture was not created solely based on my knowledge. It also includes opinions from developers at various large companies.

  • Here are some brief biographies of those who helped in completing this lecture:


data class Supporter ( 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 Who Asks Us to Keep It a Secret" )

Lecture Structure

Section 2

This article briefly covers model management, which I have dealt with through my practical experience.

This contains my personal opinion on how to best handle types google의 설계패턴을 기반 .

Section 3

We will be working on code to implement extensible code for OAuth2.

OAuth2 is a feature that can be continuously added depending on the platform characteristics. We will tell you 인터페이스 처리를 통해서 어떻게 하면 확장성 있는 코드를 구현 for this feature.

Section 4

In this section, you will learn Kotlin을 사용하여 Spring에서의 AOP의 단점을 극복하는 방법 .

Spring AOP is a concept that is widely applied and used without many people knowing. It is used to ensure data persistence for conventional DBs, and is also used in logging processing using PointCut.

However, it is a regrettable friend that has some disadvantages. This section covers how to use Spring's AOP more flexibly in Kotlin.

Section 5

We will be working on an API that implements functions for OAuth2 and applies AOP.

Through this process, you will work with me 처음으로 구현하고 작성한 코드가 올바르게 동작하는지 확인하며, 이 과정을 통해서 디버깅하는 시간 .

Section 6

We are working on code to make it more suitable for B2C and B2B.

You will implement how to implement functions while executing specific Service Logic according to incoming traffic.

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

Section 7

Redis is a very important element in practice. It can be used to control concurrency and is used to optimize the CPU for the DB through caching data.

In this section, we will work through various methods that can be used to leverage Redis and Redisson .

Section 8

You will begin writing logic for concurrency control by utilizing Redis related methods written earlier.

It will be time to write Distributed Lock to sequentially process concurrently incoming traffic and write logic to ensure data persistence.

Sections 9, 10

In this session, you will implement code directly for Kafka . You will use Kafka의 Producer to process event changes occurring on the API, and use it as code that utilizes loose coupling between services and a polyglot persistence strategy.


You will implement code for MongoDB and implement service logic accordingly. You will also implement and discuss logic to reduce DB usage through memory utilization.

Section 11

By utilizing Spring Security , you will be responsible for the logic that pre-processes requests coming into the API.

This process has the disadvantage of increasing the number of points that need to be managed, but it also implements the advantage of being able to optimize additional resources.

Sections 12, 13

You will create a new module to handle Kafka의 Producer and implement logic to communicate with MongoDB and Redis , and handle the process of generating data that matches the traffic type accordingly. During this time, you will learn about what loose coupling is and how messages are processed.

Things to note before taking the class

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.

Recommended for
these people!

Who is this course right for?

  • Kotlin Beginners

  • Aspiring programmers

  • For those curious about concurrency control

  • Anyone curious about API servers

  • Those curious about work tools

Hello
This is

1,090

Students

60

Reviews

47

Answers

4.4

Rating

7

Courses

자기 소개

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

 

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

 

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

  • 카카오에서 서버 개발하고 계시는 초이

  • 토스에서 개발하고 계시는 서버 개발자

  • 유니콘 스타트업에서 개발도 하고, DB도 관리하시는 능력자

 

지식공유자 경력

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

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

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

Curriculum

All

50 lectures ∙ (9hr 2min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

Not enough reviews.
Become the author of a review that helps everyone!