강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

Database

Kotlin Master Class: Learning Through Bank Server Project Practice

Kotlin mastery via virtual payment server course.

(4.6) 18 reviews

233 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

2,724

Learners

185

Reviews

76

Answers

4.5

Rating

14

Courses

자기 소개

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

 

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

 

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

 

지식공유자 경력

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

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

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

 

인터뷰 이력

Curriculum

All

50 lectures ∙ (9hr 2min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

18 reviews

4.6

18 reviews

  • 미래 1인 개발자님의 프로필 이미지
    미래 1인 개발자

    Reviews 6

    Average Rating 5.0

    5

    30% enrolled

    강의를 준비하는데에 있어서 도움을 주었는지는 모르겠지만... 강의하시는 분의 질문에 답변을 몇개 드리며 교류했던 토스에서 근무하고 있는 개발자 입니다. 강의를 찍는다고 찍는다고 하셨는데.. 진짜 이렇게 오픈을 하셨네요 ㅋㅋㅋ 재미있는 주제인거 같습니다. 덕분에 좋은 경험도 해보는거 같습니다. 강의 들어주시는 분들에게 모두 많은 도움이 되기를 바라겠습니다. !

    • Hong
      Instructor

      이렇게 또 찾아주셔서 감사합니다!! 많이 배웠고 많이 배운 부분들 다른분들에게도 나누고 싶어서 준비해보았습니다 ㅎㅎ 항상 감사드립니다!! 또 찾아가서 괴롭힐게요 ㅋㅋㅋ 많은 관심 부탁드려요!

  • 우왕 개발자다님의 프로필 이미지
    우왕 개발자다

    Reviews 6

    Average Rating 5.0

    5

    30% enrolled

    카카오에서 서버 개발하고 있는 초이라고 합니다. 갑자기 강의를 찍는다고 저에게 조언을 구하고 어찌저찌 하다보니 도움을 몇가지를 드리기는 했는데, 이렇게 정말 강의가 오픈되는지 참 신가하네요 ㅎㅎ 제가 알려드린 내용을 최대한 녹인 부분이 보이는거 같아 기분이 또 새롭습니다. 이 강의를 통해서 여러분들도 코틀린의 매력에 빠지셨으면 좋겠습니다.

    • Hong
      Instructor

      ㅋㅋㅋ 항상 쫓아다니며 귀찮게 해서 죄송합니다. 덕분에 좋은 강의를 준비하게 되었습니다 항상 감사드립니다! ❤️

  • soap님의 프로필 이미지
    soap

    Reviews 22

    Average Rating 5.0

    5

    30% enrolled

    Goat 그 자체. 개인적으로 인프런에 있는 코틀린 강의 중 one Top이라 생각합니다.

    • Hong
      Instructor

      안녕하세요 soap님 좋은 평 남겨주셔서 감사합니다!! 앞으로 더 좋은 강의로 찾아뵙도록 할게요! 감사합니다!

  • keny님의 프로필 이미지
    keny

    Reviews 12

    Average Rating 5.0

    5

    30% enrolled

    강의를 전부 다 듣지는 않았지만 해당 진행도 기준에서도 AOP의 한계부터 사실상 프로젝트를 구성하는데에 있어서 대부분의 기능을 다루고 학습 할 수 있는 좋은 강의라고 생각합니다. 쉽게 생각하고 들어보기 시작했는데, 들으면 들을수록 더 많은 부분을 배울 수 있는 알찬 강의라는 생각이 드네요

    • Hong
      Instructor

      안녕하세요 Keny님 좋은 평 남겨주셔서 감사합니다! 앞으로 더 알찬강의로 추가로 찾아뵙도록 할게요! 좋은 하루 보내세요!

  • devHand님의 프로필 이미지
    devHand

    Reviews 9

    Average Rating 5.0

    5

    60% enrolled

    덕분에 편하게 공부 할 수 있었습니다. 감사합니다.

    • Hong
      Instructor

      좋은 평 남겨주셔서 감사합니다. 이 강의를 통해서 코틀린의 매력에 좀 더 빠지시면 좋겠네요!!

Limited time deal

$81,680.00

24%

$84.70

Hong's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!