강의

멘토링

커뮤니티

개발 · 프로그래밍

/

백엔드

실제 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스

Kotlin에서 가장 인기있는 프로젝트인 Ktor을 활용하여 프로젝트를 구성하고 Kotlin을 마스터 해봐요! 😆

(4.7) 수강평 14개

수강생 74명

  • Hong

먼저 경험한 수강생들의 후기

수강 후 이런걸 얻을 수 있어요

  • Kotlin

  • Ktor

  • MySQL

  • Kotlin에서의 영속성

  • PasetoToken

  • 암호화

ktor & Kotlin by JetBrain

Kotlin의 매력을 극대화하며 함수형 프로그래밍을 강력하게 결합하는 서버 강의를 찾으신다면, 해당 강의를 필히 참고해 주시고, 이런 분들이라면 이 강의는 필수가 되어야 합니다.

  • Spring Boot만 알고 Kotlin은 잘 모르겠어요

  • 개발을 시작한지 얼마 안되어서 기능 개발을 하고 싶어요

  • 공부를 하기는 해야 하는데 무엇을 해야 할지 모르겠어요

  • 물경력으로 개발자 커리어를 진행하고 싶지 않아요.

이 강의에서는 Kotlin의 가장 거대한 오픈소스 프로젝트인 Ktor을 활용하여 고성능 애플리케이션을 함께 구현하실 수 있습니다. 이 과정을 통해 실제 실무에 적용 하실 수도 있고, 공부를 하는데에 있어서 지침표가 될 수 있는 강의로 구성하였습니다.

Ktor은 이러한 특징을 가지고 있어요.

Kotlin and Coroutines

Ktor는 Kotlin과 Coroutines를 바탕으로 처음부터 설계되었습니다. 이를 통해 간결하고 멀티플랫폼 언어를 사용할 수 있으며, 직관적인 명령형 흐름으로 비동기 프로그래밍의 강력함을 경험할 수 있습니다.

Lightweight and Flexible

Ktor는 필요한 것만 사용할 수 있게 해주며, 애플리케이션을 원하는 방식으로 구조화할 수 있도록 합니다. 또한, Ktor를 사용자가 직접 플러그인으로 확장하는 것도 매우 쉽습니다.

Built and backed by JetBrains

IntelliJ IDEA, Kotlin 등을 만든 JetBrains에서 제공하는 Ktor는 고객뿐만 아니라 JetBrains 내부에서도 사용됩니다. 또한 최상급의 도구 지원을 제공합니다!

Rich ecosystem [ Github, X ]

JetBrains가 지원 및 개발하는 프레임워크인 만큼 풍부한 생태계를 제공하며 최상위의 프레임워크 성장에 기여 할 수도 있습니다.

이 강의의 특징

📌 MySQL 5~6개의 테이블로 구성되는 실전형 서버 구축

📌 PBKDF2, AES-GCM, TimeBaseEncryption 다양한 암호화

📌인프런에서 가장 유일한 Kotlin스러운 서버 구축

📌공식 플러그인 활용부터 커스텀한 플러그인 작성법

📌아무도 알려주지 않는 유일한 Ktor 강의

📌단순한 프레임워크에서 끝나지 않는 Kotlin 문법 공부

Kotlin 꼭 배워야 할까요??

여러분 세상에 정답은 없습니다. 여러분들이 학습하고 싶으시면 하는거고 안하고 싶으시면 안하시면 됩니다.

하지만 척박한 취업시장에서 Kotlin은 점점 필수 항목으로 요구되고 있습니다.

당근 마켓

두나무

토스 뱅크

배달의 민족

Kotlin이 필수는 아닙니다. 하지만 점점 많은 회사들이 Kotlin으로 이전을 하거나 Kotlin을 혼용하여 사용을 하고 있습니다. 왜 Spring기반의 서비스에서 점점 Kotlin으로 이동하기를 선호하는 걸까요??

왜 점점 Spring에서 Kotlin으로 이동할까?

다양한 이유가 있고, 아직 이동을 하지 않는 회사들도 있습니다.

하지만 이전을 시도하는 회사들은 대부분 이러한 이유로 인해서 이전을 시도 하고 있습니다.

Null Safety

코틀린은 기본적으로 컴파일시에 Null값에 대한 안전성 체크가 진행이 됩니다. 이는 실제 운영환경에서 Null Point Exception으로 인해 서버가 다운되는 상황을 방지해합니다.

간결한 코드 형태와 람다 지원

Spring에 비해 코드가 매우 간결하고, 기본으로 제공하는기능이 풍부합니다.

또한 함수형 프로그래밍으로 인해서 친화적인 코드 작업이 가능하고, 고차 함수 또한 유연하게 활용이 가능합니다.

현대적인 언어와 Java와 100% 상호운용

함수형 프로그래밍 특징 및 코루틴을 통한 비동기 처리는 현대적인 언어 형태로써 문법을 표현하기에 매우 적합하며, Java와 100% 혼용이 가능하기 떄문에 기존 소스를 이관하는데에 있어서 큰 어려움도 존재하지 않습니다.

모바일과 서버의 통합 및 풍부한 커뮤니티

모바일 시장이 커짐에 따라 모바일 개발과 서버 개발을 같이 관리하는 방식은 매우 생산성이 뛰어난 방법입니다. 또한 JetBrains와 Google이 적극적으로 지원 및 개발을 하는 언어 입니다.

이런 내용을 배워봐요.

실전에서 사용하는 MySQL

MySQL은 느리다?? 맞습니다. 솔직하게 말해서 MySQL은 다른 DB에 비해 성능이 떨어집니다. 하지만 왜 MySQL을 사용할까요??

Trailing Lambdas 문법 활용하기

Spring의 AOP는 불편합니다. 왜 불편할까요?? 그리고 Kotlin에서는 AOP를 어떻게 구현하고 활용할까요??

정적 파일을 위한 Object Storage

정적 파일을 다루는 방법에는 어떤게 있을까요??

해당 강의에서 같이 정적 데이터를 다루고, S3와 100% 혼용이 가능한 코드 작성을 진행해보세요!

다양한 암호화 프로토콜

실무에서 진행하는 서버는 단순한 CRUD를 구축하고 Database만 연결하면 끝날까요??

실제 해킹 사태를 경험한 개발자가 알려주는 암호화 프로토콜을 같이 학습해보세요!

메일 전송 프로토콜

실무에서는 플랫폼 광고 및 이벤트에 맞춰서 다양한 메일을 전송해야 하는 상황이 있습니다. 이런 상황에 맞춰 기능 개발하는 시간을 같이 경험해보세요!

서버와 클라이언트 간의 비상태 인증

서버는 들어오는 요청에 대해서 인증하는 과정이 필요합니다. 이 인증방식에 대해서 함께 구현하고 기존의 방식과의 차별점을 두는 형태를 함께 구현해보세요!

이 강의에서 다루는 기술 스택

Jakarta

  • 메일 전송 기능을 구현하기 위해서 사용이 됩니다.


MinIO

  • Object Storage를 다루기 위해 사용이 되며, Docker를 활용하여 구축 됩니다.

MySQL

  • 연관관계가 있는 데이터의 상태를 관리하기 위해서 사용됩니다.

Token paseto

  • 토큰을 통해 비상태 인증방식을 적용합니다.

Ulid

  • Database의 성질을 이해하고 AUTO_INCREMENT의 취약점을 대응하기 위해 사용됩니다.

다양한 암호화 프로토콜

  • 비밀번호 암호화 및 Data 암호화를 위해 다양한 암호화 방식을 사용합니다.


강의 커리큘럼

Lecture 1

몸풀기 시간입니다. Kotlin의 기본적인 지식과 Ktor을 사용하기 위한 시간으로 편하게 수강해 주시면 됩니다.

Lecture 2

Kotlin에서의 MySQL을 다루기 위한 코드와 이론 또한 언어에 국한되지 않고 여러분들이 MySQL을 사용하는데에 있어서 필수적으로 알아야 하는 부분을 다루어 보았습니다.

Lecture 3

Spring에서 사용하는 DI의 개념을 Ktor과 Kotlin에서는 어떻게 적용 할 수 있을까요?? 오픈소스를 활용하여 DI 작업을 한번 원활하게 진행해보는 시간입니다.

Lecture 4

서버와 Clinet간에 인증 방식은 다양하게 있고, 그 중에서 가장 대표적으로 사용이 되는 것이 무상태 인증 방식 입니다. 이 방식을 구현하기 위한 방법과 그에따른 장단점을 학습해보세요.

Lecture 5

해당 강의에서의 첫번쨰 암호화 시간 입니다. 다양한 암호화중에서 뛰어난 보안과 여러번의 해싱 알고리즘을 통해 유저의 패스워드를 암호화하는 방법을 학습해 보세요.

Lecture 6

두번쨰 암호화 방식 입니다. 금고 형태를 구현하기 위해 두가지를 합쳐서 구성한 암호화 방식으로 데이터의 무결성과 데이터 암호화를 동시에 진행하며 암호화 방식에 대해서 설명드리고 있습니다.

Lecture 7

개발자는 결국 기능을 구현하고 Database와의 소통이 진행이 되어야 합니다. Kotlin에서의 MySQL 실전 쿼리 작성법과 다양한 쿼리를 직접 눈으로 보고 확인해보세요!

Lecture 8

파일 데이터를 저장하는 방법에는 무엇이 있을까요?? AWS S3와 동일한 형태인 Object Storage를 Docker를 통해 구현하고 실전 활용하는 시간을 눈으로 보고 확인해보세요!

Lecture 9

서버에서의 파일 데이터를 다루는 방법에 대해서 학습이 가능하십니다. 청크 형태의 데이터 읽기 방식은 무엇인지 그에 따른 장단점 등 다양하게 파일 데이터를 다루고 앞서 다루었던 Object Storage에 저장하면서 테스트를 함께 진행해 보세요!

Lecture 10

기능 구현의 대표적인 기능으로 메일 전송 시스템을 Jakata Protocol을 사용하여 구현하게 됩니다.

또한 Factory Pattren을 활용하여 확장성있는 아키텍처를 구현하고 그에 따라 동적인 서비스 로직을 적용해 확장성 있는 서비스를 구축해보세요.

이 강의를 만든 사람과 도움을 준 사람

private val supported_one = "카카오페이 플랫폼 백엔드 개발자" private val supported_two = "토스증권 API 서버 개발자" private val supported_three = "비밀로 해달라는 유니콘 스타트업 서버 개발자"

같이 보면 좋은 강의!

은행 서버 프로젝트 실습을 통해 배우는 코틀린 마스터 클래스

  • 폴리그랏 퍼시스턴스 전략 및 Kafka등을 활용하여 트래픽 유형에 맞는 데이터 처리 방법과 DB 고려사항 및 이벤트성 데이터 활용방법에 대한 모든것을 학습하실 수 있습니다.

정석에 가깝고 기본에 충실한 코루틴 마스터 클래스

  • 코루틴 공식 문서를 기반으로 작성은 대기업 개발자들의 코루틴 마스터 클래스!! 다양한 예제를 기반으로 실무 개발자들의 견해가 들어간 강의를 바로 만나보세요!

수강 전 참고 사항

실습 환경

  • 강의는 MacOS M3를 기준으로 설명합니다.

  • Docker를 활용합니다. 기본적으로 설치 부탁드립니다.

  • java:17.0.12 버전을 활용하고 있습니다.

  • IDE와 Database 툴은 모두 JetBrain 계열을 활용합니다.

  • Gradle을 사용하여 빌드 합니다.

  • 인프라를 직접 구축하지 않습니다.


선수 지식 및 유의사항

  • 선수 지식은 필요 없습니다. 처음부터 같이 코드를 작성하며 강의가 구성됩니다.

이런 분들께
추천드려요

학습 대상은
누구일까요?

  • 저는 Spring밖에 몰라요..

  • 함수형 프로그래밍이 궁금하신 분

  • Kotlin과 JetBrain을 사랑하시는 분

  • 개발을 처음 접하시는 분

안녕하세요
입니다.

4,604

수강생

337

수강평

118

답변

4.7

강의 평점

18

강의

자기 소개

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

 

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

 

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

 

지식공유자 경력

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

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

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

 

인터뷰 이력

커리큘럼

전체

50개 ∙ (9시간 16분)

해당 강의에서 제공:

수업자료
강의 게시일: 
마지막 업데이트일: 

수강평

전체

14개

4.7

14개의 수강평

  • tttos님의 프로필 이미지
    tttos

    수강평 8

    평균 평점 5.0

    5

    30% 수강 후 작성

    This is the developer I worked with while preparing the lecture during my time at Toss. Personally, while preparing this lecture, I felt I learned more than I shared. So, I think the content is so valuable that I would have purchased and watched this lecture even if I wasn't the one preparing it. I believe topics like AOP, transaction lifecycle management, and various encryption methods are not commonly encountered. I hope this lecture proves to be very helpful.

    • ddddve님의 프로필 이미지
      ddddve

      수강평 9

      평균 평점 5.0

      5

      30% 수강 후 작성

      I'm back to meet you like this for the second lecture 😊😊 My name is Choi, and I work on server development at Kakao. This lecture is about Ktor, a well-known open-source project. I personally believe that if you use Kotlin, Ktor is a topic you absolutely must know. I think I provided a lot of help, but it was also a time where I learned a lot in return. I hope you fall in love with Kotlin's charm through this lecture.

      • jhong
        지식공유자

        Thank you for your help in preparing for this lecture!! I hope we can create more fun and beneficial lectures together in the future 😊😊

    • ureview229499님의 프로필 이미지
      ureview229499

      수강평 7

      평균 평점 5.0

      수정됨

      5

      70% 수강 후 작성

      Legendary lecture.. Thanks to you, I got good at development.

      • jhong
        지식공유자

        Hello 개발 잘하고 싶다!! Thank you for leaving a good review!! Now that you've become good at development... maybe it's time to change your nickname 😊😊 It's very rewarding this course helped so much. I'll be back with a better course next time. Thank you!!

    • de님의 프로필 이미지
      de

      수강평 10

      평균 평점 5.0

      5

      60% 수강 후 작성

      It seems like a lecture with so much to learn. I'm really satisfied that there's such a high-quality lecture at this price. I wasn't very familiar with Kotlin, but through this lecture, I could learn a variety of syntax and usage, and the scalable interface form was also very impressive. Also, it wasn't just limited to Kotlin, but I learned so much, including encryption protocols that can be used regardless of the language, MySQL queries, and project code management, that I feel like I learned a vast amount just by listing them. It was a time when I eagerly awaited the next lecture. Thank you!!

      • jhong
        지식공유자

        Hello devHand, thank you for leaving a review. It makes me feel so good that you left such a long review 😊😊 I will work even harder in the future. As you wrote, it includes a lot of information that is not limited to Kotlin and can be sufficiently implemented using other languages. So I wanted to satisfy those who want to learn Kotlin, and also satisfy those who are okay with languages other than Kotlin. I'll see you next time with a better course!! The weather is very hot, so please be careful of the heat!

    • sdl1355126님의 프로필 이미지
      sdl1355126

      수강평 14

      평균 평점 5.0

      5

      86% 수강 후 작성

      I was really impressed by the first lecture, so I immediately enrolled. I concentrated quickly and finished it without taking a break. I think it's a great course where you can learn a lot, just like the first lecture. Personally, I think this is one of the best Kotlin courses available. From simple server development to various encryptions, I think these are deep topics that are not easy to learn elsewhere. It was such a great course that I want to keep it to myself and hide it. Thank you.

      ₩108,900

      Hong님의 다른 강의

      지식공유자님의 다른 강의를 만나보세요!

      비슷한 강의

      같은 분야의 다른 강의를 만나보세요!