강의

멘토링

로드맵

Inflearn brand logo image
Programming

/

Back-end

Master Kotlin through Real Project Practice

Let's build a project using Ktor, the most popular project in Kotlin, and master Kotlin! 😆

(4.7) 12 reviews

53 learners

  • Hong
Kotlin
ktor
실습 중심
MySQL
paseto
s3

Reviews from Early Learners

What you will learn!

  • Kotlin

  • Ktor

  • MySQL

  • Persistence in Kotlin

  • PasetoToken

  • Encryption

ktor & Kotlin by JetBrain

If you are looking for a server course that maximizes the appeal of Kotlin and powerfully combines functional programming, then this course is a must-read for you.

  • I only know Spring Boot, I don't know much about Kotlin.

  • I want to develop a feature since I just started developing

  • I have to study, but I don't know what to do.

  • I don't want to pursue a developer career with a water level.

In this lecture, you will implement high-performance applications using Ktor, the largest open source project in Kotlin. This course is designed to be applied to actual work and serve as a guideline for studying.

Ktor has these characteristics:

Kotlin and Coroutines

Ktor is designed from the ground up on Kotlin and Coroutines, giving you a concise, multiplatform language that lets you experience the power of asynchronous programming with an intuitive imperative flow.

Lightweight and Flexible

Ktor lets you use only what you need, and lets you structure your application the way you want. It’s also very easy for users to extend Ktor with their own plugins.

Built and backed by JetBrains

Ktor, from JetBrains, the creators of IntelliJ IDEA, Kotlin, etc., is used by customers as well as internally at JetBrains. It also provides top-notch tool support!

Rich ecosystem [ Github , X ]

As a framework supported and developed by JetBrains, it provides a rich ecosystem and can also contribute to the growth of top-tier frameworks.

Features of this course

📌 Build a practical server with 5~6 MySQL tables

📌 PBKDF2, AES-GCM, TimeBaseEncryption Various encryptions

📌 Building the only Kotlin-like server in Inflearn

📌 How to use official plugins and create custom plugins

📌 The only Ktor lecture that no one tells you about

📌 Studying Kotlin grammar that doesn't end with a simple framework

Do I really need to learn Kotlin??

There is no right answer in this world. If you want to learn, do it. If you don't want to, don't.

But in a tough job market, Kotlin is increasingly becoming a must-have.

Carrot Market

Two trees

Toss Bank

Baedal Minjok

Kotlin is not mandatory. However, more and more companies are migrating to Kotlin or using Kotlin in a mixed way. Why do Spring-based services increasingly prefer to move to Kotlin?

Why are we increasingly moving from Spring to Kotlin?

There are a variety of reasons, and some companies have yet to make the move.

However, most companies that attempt to relocate do so for these reasons.

Null Safety

Kotlin basically performs a safety check for null values at compile time. This prevents the server from going down due to a Null Point Exception in an actual operating environment.

Concise code format and lambda support

Compared to Spring, the code is very concise and the basic functions provided are rich.

Additionally, functional programming allows for friendly code work and flexible use of higher-order functions.

100% interoperability with modern languages and Java

The functional programming features and asynchronous processing through coroutines make it very suitable for expressing grammar in a modern language form, and since it can be 100% mixed with Java, there is no great difficulty in transferring existing sources.

Integration of mobile and server and rich community

As the mobile market grows, managing mobile development and server development together is a very productive way. It is also a language that JetBrains and Google actively support and develop.

Learn about these things.

MySQL in practice

MySQL is slow?? That's right. To be honest, MySQL is slower than other DBs. But why use MySQL??

Using Trailing Lambdas Grammar

Spring's AOP is inconvenient. Why is it inconvenient?? And how can we implement and utilize AOP in Kotlin??

Object Storage for Static Files

What are some ways to handle static files??

In this lecture, we will work with static data and write code that can be 100% compatible with S3!

Various encryption protocols

In practice, is it enough to simply build a simple CRUD server and connect to a database?

Learn encryption protocols from developers who have experienced actual hacking incidents!

Mail Transfer Protocol

In practice, there are situations where you need to send various emails according to platform advertisements and events. Come experience developing functions to fit these situations!

Stateless authentication between server and client

The server needs to authenticate incoming requests. Let's implement this authentication method together and implement a form that differentiates it from the existing method!

Technology stack covered in this lecture

Jakarta

  • It is used to implement the mail sending function.


MinIO

  • It is used to handle Object Storage and is built using Docker.

MySQL

  • Used to manage the status of related data.

Token paste

  • Apply stateless authentication via tokens.

Ulid

  • It is used to understand the nature of the database and to counter the vulnerability of AUTO_INCREMENT.

Various encryption protocols

  • We use various encryption methods for password encryption and data encryption.


Course Curriculum

Lecture 1

It's warm-up time. Please take the time to learn the basics of Kotlin and how to use Ktor.

Lecture 2

The code and theory for handling MySQL in Kotlin are not limited to the language, and cover the essential parts that you need to know to use MySQL.

Lecture 3

How can we apply the concept of DI used in Spring to Ktor and Kotlin? It's time to use open source to smoothly carry out DI work.

Lecture 4

There are various authentication methods between servers and clients, and the most commonly used one is stateless authentication. Learn about the methods for implementing this method and its pros and cons.

Lecture 5

This is the first encryption session in this course. Learn how to encrypt user passwords using various encryption algorithms with excellent security and multiple hashing algorithms.

Lecture 6

This is the second encryption method. It is an encryption method that combines two methods to implement a safe form, and it simultaneously performs data integrity and data encryption, and we are explaining the encryption method.

Lecture 7

Developers must eventually implement functions and communicate with the database. Learn how to write MySQL queries in Kotlin and see and experience various queries for yourself!

Lecture 8

How can we store file data? Let's see for ourselves how to implement Object Storage, which is the same format as AWS S3, through Docker and use it in real life!

Lecture 9

You can learn how to handle file data on the server. You can learn about the pros and cons of reading data in chunk form, and you can test it by handling file data in various ways and storing it in Object Storage, which was covered earlier!

Lecture 10

As a representative function of the functional implementation, the mail transmission system is implemented using the Jakata Protocol.

Also, implement a scalable architecture by utilizing Factory Pattren and apply dynamic service logic accordingly to build a scalable service.

People who created this course and helped with it

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 wants to keep it a secret"

A great lecture to watch together!

Kotlin Master Class: Learning through Bank Server Project Practice

  • You can learn everything about data processing methods, DB considerations, and how to utilize event-based data according to traffic type, using polyglot persistence strategies and Kafka, etc.

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!

Things to note before taking the class

Practice environment

  • The lecture is based on MacOS M3.

  • We are using Docker. Please install it by default.

  • I am using java:17.0.12 version.

  • Both the IDE and database tools utilize the JetBrains line.

  • Build using Gradle.

  • We don't build the infrastructure ourselves.


Player Knowledge and Notes

  • No prior knowledge is required. The course is structured so that you can code along from the beginning.

Recommended for
these people

Who is this course right for?

  • I only know Spring.

  • Curious about Functional Programming

  • Person who loves Kotlin and JetBrains

  • Someone new to development

Hello
This is

2,725

Learners

185

Reviews

76

Answers

4.5

Rating

14

Courses

자기 소개

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

 

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

 

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

 

지식공유자 경력

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

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

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

 

인터뷰 이력

Curriculum

All

50 lectures ∙ (9hr 16min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

12 reviews

4.7

12 reviews

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

    Reviews 6

    Average Rating 5.0

    5

    30% enrolled

    토스에서 근무하며 강의를 준비하는데에 있어서 함께 작업한 개발자 입니다. 저는 개인적으로 이 강의를 준비하면서 알려드린 부분보다는 배운 부분이 더 많은 강의였습니다. 그래서 제가 만약 이 강의를 준비하는 사람이 아니였다면 따로 구매해서 봤을정도로 좋은 내용이 담겨있다고 생각을 합니다. AOP부터, Trasnaciton 생명 관리 또한 다양한 암호화 방식은 쉽게 접하지 못하는 주제라고 생각합니다. 이 강의를 통해서 많은 도움이 되었으면 좋겠습니다.

    • Hong
      Instructor

      이번 강의를 준비하는데에 있어서 도움을 주셔서 감사합니다!! 이번 주제는 제가 좀 리드하여 진행했는데, 이러한 과정에서 배움도 있었다고 하니 뭔가 뿌듯하네요 ㅎㅎ 앞으로 함께 더 좋은 강의와 유익한 강의 만들어가면 좋겠습니다!!

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

    Reviews 6

    Average Rating 5.0

    5

    30% enrolled

    두번째 강의로 이렇게 찾아뵙게 되네요 ㅎㅎ 카카오에서 서버 개발 하고있는 초이라고 합니다. 이 강의는 Ktor이라는 대표적인 오픈소스에 대한 강의 입니다. 이 Ktor은 Kotlin을 사용하신다면 반드시 알셔야하는 주제라고 저는 개인적으로 생각을 합니다. 저도 도움을 많이 드렸다고 생각하지만, 반대로 많이 배우는 시간이였습니다. 이 강의를 통해서 Kotlin의 매력에 빠지셨으면 좋겠습니다.

    • Hong
      Instructor

      이번 강의를 준비하는데에 있어서 도움을 주셔서 감사합니다!! 앞으로 함께 더 재미있는 강의와 유익한 강의 만들어가면 좋겠습니다 ㅎㅎ

  • 개발 잘하고 싶다...님의 프로필 이미지
    개발 잘하고 싶다...

    Reviews 7

    Average Rating 5.0

    Edited

    5

    70% enrolled

    레전드 강의.. 덕분에 개발 잘하게되었다.

    • Hong
      Instructor

      안녕하세요 개발 잘하고 싶다님!! 좋은 평 남겨주셔서 감사합니다!! 개발을 잘하게 되셨다니.. 이제는 닉네임 변경하시죠 ㅎㅎ 이 강의가 많은 도움이 되신거 같아서 너무 뿌듯하네요. 다음에 더 좋은 강의로 찾아뵙겠습니다. 감사합니다!!

  • devHand님의 프로필 이미지
    devHand

    Reviews 9

    Average Rating 5.0

    5

    60% enrolled

    너무 배울것이 많은 강의인거 같습니다. 이 가격에 이렇게 양질의 강의가 있다는게 너무 만족스러운거 같아요. 코틀린을 잘 모르는 상황이였는데, 이 강의를 통해서 정말 다양한 문법과 활용법을 배울 수 있었고, 인터페이스 형태의 확장성 있는 형태도 되게 인상깊었습니다. 또한 단순히 코틀린에 국한된게 아니라 언어가 달라도 사용 할 수 있는 암호화 프로토콜이나 MySQL 쿼리 또는 프로젝트 코드 관리 등 적다보니 너무 많은 부분을 배운거 같네요. 다음 강의가 너무나도 기다려지는 시간이였습니다. 감사합니다!!

    • Hong
      Instructor

      안녕하세요 devHand님 평 남겨수져서 감사합니다. 이렇게 긴 평을 남겨주시니 기분이 너무 좋아요 ㅎㅎ 앞으로 더 열심히 하도록 하겠습니다. 작성해주신것처럼 코틀린에 국한되지 않고 다른 언어를 사용해도 충분히 구현이 가능한 정보들도 많이 들어가 있습니다. 그러니 코틀린을 학습하고 싶으신분들도 만족감을 드리고 싶고, 굳이 코틀린 아니여도 괜찮다는 분들도 만족감을 드리고 싶었어요. 다음에 더 좋은 강의로 찾아뵙도록 할게요!! 날씨가 많이 더우니 더위 조심하세요!

  • keny님의 프로필 이미지
    keny

    Reviews 12

    Average Rating 5.0

    5

    86% enrolled

    첫번쨰 강의를 정말 인상깊게 봐서 바로 수강하였습니다. 빠르게 집중하여 진짜 쉬지않고 바로 완강을 하였는데 첫번째 강의처럼 진짜 많은 부분을 배울 수 있는 좋은 강의라고 생각합니다. 개인적으로는 Kotlin 강의중에 진짜 손에 꼽는 강의가 아닐까 싶습니다. 단순한 서버 개발부터 다양한 암호화까지 어디가서 쉽게 배우지 못하는 깊은 주제라고 생각합니다. 저만 알고 싶은 숨기고 싶은 너무 좋은 강의였습니다. 감사합니다.

    • Hong
      Instructor

      안녕하세요 keny님!! 이렇게 좋은 평 남겨주셔서 감사합니다. 저의 첫번째 코틀린 마스터 클래스 수강생이시라니 더 뿌듯하네요 ㅎㅎ 이 강의는 굉장히 특이한 강의입니다. 인프런에서 이런 주제를 다루고 있지는 않다고 생각을 해요!! 그래서 여러분들에게 많은 것을 알려줄 수 있는 주제라 생각했고 이렇게 준비하게 되었습니다. 실무에서는 다양한 암호화 방식을 사용합니다. 그리고 Kotlin을 다루는데에 있어서 Ktor은 너무나도 적합한 주제라고 생각을 합니다. 이 과정을 통해서 많은 부분을 학습하시고 배웠으면 좋겠습니다!! 앞으로 더 재미있고 유익한 강의로 찾아뵙겠습니다 감사합니다!

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!