채널톡 아이콘

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

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

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

이런 걸 배울 수 있어요

  • 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을 사랑하시는 분

  • 개발을 처음 접하시는 분

안녕하세요
Hong입니다.

1,795

수강생

125

수강평

63

답변

4.4

강의 평점

12

강의

자기 소개

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

 

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

 

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

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

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

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

 

지식공유자 경력

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

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

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

 

인터뷰 이력

더보기

커리큘럼

전체

50개 ∙ (9시간 16분)

해당 강의에서 제공:

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

수강평

전체

11개

4.6

11개의 수강평

  • keny

    수강평 10

    평균 평점 5.0

    5

    86% 수강 후 작성

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

    • Hong
      지식공유자

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

  • 모든게 귀찮다

    수강평 4

    평균 평점 5.0

    5

    30% 수강 후 작성

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

    • Hong
      지식공유자

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

  • devHand

    수강평 6

    평균 평점 5.0

    5

    60% 수강 후 작성

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

    • Hong
      지식공유자

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

  • 개발 잘하고 싶다...

    수강평 4

    평균 평점 5.0

    수정됨

    5

    70% 수강 후 작성

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

    • Hong
      지식공유자

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

  • 우왕 개발자다

    수강평 5

    평균 평점 5.0

    5

    30% 수강 후 작성

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

    • Hong
      지식공유자

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

Hong님의 다른 강의

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

비슷한 강의

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

연관 로드맵

강의가 포함된 로드맵으로 학습해 보세요!

월 ₩21,780

5개월 할부 시

₩108,900