In this course, you can master Kotlin via a virtual payment server.
Kotlin
MySQL
MongoDB
OAuth2
Kafka
Redis
Concurrency Controll
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.
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.
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.
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.
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.
How do you write grammar in Kotlin, which uses functional programming? It also supports various lambda expressions and you can configure the server together.
Kotlin fully supports Spring, but there are clear limitations to AOP in Spring.
In Kotlin, we will learn together how to overcome these limitations.
In an environment where multiple instances are running, work is required to achieve concurrency across clusters.
There is more to configuring a server than just a simple DB. The project is configured by directly utilizing cache and message queue.
Security is the most important factor in server configuration.
This lecture will cover scalable Auth processing through callBack processing.
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.
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.
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.
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.
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 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.
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.
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.
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...
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.
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"
)
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의 설계패턴을 기반
.
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.
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.
We will be working on an API that implements functions for OAuth2 and applies AOP.
Through this process, you will work with me 처음으로 구현하고 작성한 코드가 올바르게 동작하는지 확인하며, 이 과정을 통해서 디버깅하는 시간
.
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.
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
.
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.
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.
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.
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.
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.
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.
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
1,090
Students
60
Reviews
47
Answers
4.4
Rating
7
Courses
자기 소개
집에서 빈둥대다 개발에 흥미를 느껴 개발 공부를 시작하였고 현재는 판교에서 플랫폼 서버 개발을 담당하여 진행하고 있습니다.
제가 공부를 했던 방법과 실무에서 접하실 수 있는 여러가지 문제점들과 해결책을 여러분들에게 제공하고 싶어 지식공유자 활동을 이어나가고 있습니다.
강의는 오로지 저만의 지식을 통해 만들어지지 않습니다. 모든 강의는 함께하시는 분들이 계십니다.
카카오에서 서버 개발하고 계시는 초이
토스에서 개발하고 계시는 서버 개발자
유니콘 스타트업에서 개발도 하고, DB도 관리하시는 능력자
지식공유자 경력
[前] 샌드박스 블록체인 개발자
[前] 넥슨 자회사 백엔드 개발자
[現] 판교에서 고여가는 서버 개발자
All
50 lectures ∙ (9hr 2min)
Course Materials: