강의

멘토링

커뮤니티

BEST
Programming

/

Database

銀行サーバープロジェクト実習を通じて学ぶKotlinマスタークラス

この講義では、仮想決済サーバーを通じてKotlinをマスターできる講義です。

  • Hong
실습 중심
Kotlin
mysql
데이터베이스
자격증
시험
MySQL
MongoDB
Kafka
Redis

学習した受講者のレビュー

受講後に得られること

  • コトリン

  • MySQL

  • MongoDB

  • OAuth2

  • カフカ

  • Redis

  • コンカレンシー・コントロール

銀行サーバープロジェクトの実践を通して学ぶコトリン

単にコートリン文法を学ぶことを超えて、銀行サーバーに対してサンプルプロジェクトを一緒に作成し、実務経験を積む準備ができましたか?


この講義では、コトリンの簡潔で表現力の高い文法で効率的なコード作成法を習得し、SpringのAOP限界超えるコトリンだけの解決策を発見し、スケーラブルなログ処理方法を学習します。


金融ドメインで発生する問題は多様で複雑ですが、すべての内容を一つの講義に入れることはできませんが、金融ドメイン進出を希望したりコートリンを深化学習したい方に実務で本当に悩み、向き合う問題を一緒に解決していく機会を提供します。

理論だけで終わらず、実際のサービスにすぐに適用可能な技術を皆さんのものにしてみてください。

Kotlin なぜ学ばなければならない..?

Springと100%の混同になると言います。

📚簡潔で直感的な文法


Kotlinは簡潔で直感的な文法を提供するため、開発者はより少ないコードでより多くの作業を行うことができます。

📚高い生産性と安全性


Kotlinはヌルの安定性をネイティブにサポートし、ヌルポインタ例外(NullPointerException)を減らすことができます。

📚高い互換性


Kotlinは100%Javaと互換性があるため、既存のJavaプロジェクトに簡単に統合できます。これは、Java開発者がKotlinを学ぶのに大きな障壁がなく、既存のコードを維持しながら新しいKotlin機能を使用できることを意味します。

講義を聞いたら、このような結果を作ることができます。

コトリン文法を利用したAPIの設定

関数型プログラミングを使用するコトリンでは、文法をどのように書くのでしょうか?

Spring AOPを克服するためのコトリンの使い方

KotlinはSpringを完全にサポートしていますが、SpringでのAOPの制限は明らかに存在します。

Kotlinでは、これらの制限を克服する方法を学びます。

並行処理のためのロック管理

さまざまなインスタンスがある環境では、クラスタ間で並行処理を行うための作業が必要です。

Redis、MySQL、MongoDBを利用したサーバー構成

サーバーを構成するには、単純なDBだけが存在するわけではありません。

OAuth2認証処理によるAPIセキュリティ

セキュリティは、サーバー構成にとって最も重要な要因です。

このレッスンでは、callBack処理を通じてスケーラブルなAuth処理について説明します。

Kafkaを活用したメッセージキューの実装

MSAアーキテクチャ、大きなドメインサービスなら、Kafkaは選択ではなく必須です。

実際のKafka活用ガイドを一緒に提供します。

講義で扱う技術スタック

MySQL

関連するデータを扱うために、リレーショナルデータベースであるMySQLが使用されます。

JPAを構成し、Entityを作成し、データ間の関連付けを指定するコード方式によって、サービス開発に柔軟な構造をもたらすことになります。

MongoDB

PolyGroat Persistance戦略を導入し、着信トラフィックの種類に応じて履歴データを管理するためのデータベースとして活用します。

これらの概念を学び、考慮することが何であるかについて取り上げています。

Redis, Redisson

キャッシュツールを導入し、データベースに対するCPU最適化およびキャッシュ処理として活用されており、さらに同時性制御用のLockを導入して適用しています。

Kafka

メッセージベースのアーキテクチャを実装することになります。ProducerとConsumerを構成し、一緒にプロジェクトを構成していくことができ、Consumerの拡張性のためのコード実装についても扱うことになります。

Spring Security

Spring Securityを活用してToken検証を進行し、これを通じてリクエストに対するフィルタリングを先制的に適用することになります。このような構造を通じてリソース効率性を確保する方式としてサーバーを構成することになります。

JWT

OAuth2認証後、該当データを基盤としてJWTトークンを管理する方法について扱います。その後、JWTを検証する過程をSpring Securityと連動して、許可されたユーザーに対するリクエストのみを処理する方法について扱います。

大切にしている4つの価値観

1. 講義は人間的でなければならない。

専門性が劣って見えるかもしれませんが、見せやすい講義は講義ではないと思います。デバッグを進める時間もまた講義の一部です。

2. 実務に特化すべきである

開発は口で言うものではありません。実際に実装してみて、動作する過程を一緒に体験していただけます。

  • 企画者の皆さん...助けてください..

3. 受講生の皆さんの役に立つものでなければならない。

私が実務で適用して効果を得た概念を盛り込もうと思いました。この過程を通じて実務を間接的に体験していただいたり、実務者であれば実務環境でより優れたパフォーマンスを発揮していただけます。

4. 講義が終わりではない。

講義を進められる際には、質疑応答をたくさん残していただければと思います。この講義は私一人だけの知識によって作られたものではありません。様々な大企業の開発者の方々のご意見も集約されています。

  • 講義完成にご協力いただいた方々の簡単な経歴は以下の通りです。


private val supported_one = "カカオペイ プラットフォーム バックエンド開発者"

private val supported_two = "トス証券 APIサーバー開発者"

private val supported_three = "秘密にしてほしいというユニコーンスタートアップ サーバー開発者"

講義構成図

セクション2

実務を経験しながら扱ったmodel管理について簡潔に扱っています。

googleの設計パターンを基盤として、どのような観点でtypeを扱うのがベストなのかについての個人的な見解が含まれています。

セクション3

OAuth2について拡張性のあるコードを実装するためのコード作業を進めることになります。

OAuth2はプラットフォームの特徴に応じて継続的に追加される可能性がある機能です。この機能をインターフェース処理を通じてどのように拡張性のあるコードを実装できるかをお教えします。

セクション4

この節ではKotlinを使用してSpringでのAOPの欠点を克服する方法について学習します。

Spring AOPは皆さんが知らないうちに多く適用されて使用されている概念です。関係型DBに対するデータ永続性保証に使用されることもあり、追加的にPointCutを活用したログ処理でも活用されています。

しかし、いくつかの欠点も存在する残念な友達です。このセクションでは、SpringのAOPをKotlinでより柔軟に使用する方法について扱っています。

セクション 5

OAuth2に関する機能実装とAOPまで適用を完了したAPIを作業することになります。

この過程を通じて、皆さんが私と一緒に初めて実装し作成したコードが正しく動作するかを確認し、この過程を通じてデバッグする時間も一緒に持つことになります。

セクション 6

B2CおよびB2Bに適した機能作業のためのコード作業が進行されます。

入ってくるトラフィックに応じて特定のService Logicを実行しながら、どのように機能を実装するかについて一緒に実装していきます。

@Service, @RestControllerなどを使用してビジネスロジックを一緒に作成することになります。

セクション7

Redisは実務において非常に重要な要素です。同時性を制御するために使用することも可能で、データに対するキャッシュ処理を通じてDBに対するCPU最適化のために使用されます。

このセクションではRedisRedissonを活用できる様々なメソッドを作業することになります。

セクション8

本格的に先ほど作成したRedis関連メソッドを活用して、同時性制御に関するロジックを作成することになります。

同時多発的に入ってくるトラフィックを順次処理するためのDistributed Lockを一緒に作成していきながら、データ永続性保証のためのロジックを一緒に作成する時間になる予定です。

セクション9、10

この時間にはKafkaについて直接コードを実装していただきます。KafkaのProducerを活用してAPI上で発生するイベント変化を処理し、サービス間の疎結合とポリグロットパーシステンス戦略を活用するコードとして活用していただきます。


MongoDBに関するコードを実装し、それに応じたサービスロジックを実装することになります。また、メモリ活用を通じてDBの使用量を削減するロジックについて実装し、扱うことになります。

セクション 11

Spring Securityを活用してAPIに入ってくるリクエストを事前に処理するロジックを担当することになります。

この過程で管理すべきポイントが増えるという短所がありますが、それに伴って追加的なリソースを最適化できる長所について一緒に実装します。

セクション12、13

新しいモジュールを生成してKafkaのProducerを処理し、MongoDBRedisと通信するロジックを実装することになり、それに応じてトラフィックタイプに適したデータを生成する過程を扱うことになります。この時間を通して皆さんは疎結合とは何か、メッセージ処理方式とは何かについて学習することになります。

受講前の注意事項

練習環境

  • Macos M3を使って撮影しました。

  • Dockerをデフォルトで使用します。

  • java --version : 17.0.12 2024-07-16 LTS

  • JetBrainシリーズのIDEを使用します。

  • Gradleを使用してビルドします。

  • インフラについては扱いません。

一緒に見ればいい講義!

タイムカプセルプロジェクトの実践を通して学ぶコトリンマスタークラス

  • JetBrainsの最大のオープンソースであるKtorを通じてWebサービスを構築するKotlinマスタークラス講義です。この講義を通じて、Kotlinの基本的な文法と本番暗号化方式について学習します。

定石に近い基本に忠実なコルーチンマスタークラス

  • コルーチン公式文書に基づいて作成は大企業の開発者のコ​​ルーチンマスタークラス!さまざまな例に基づいて、実務開発者の意見が入った講義にすぐに会いましょう!

こんな方に
おすすめです

学習対象は
誰でしょう?

  • コトリンが初めての方

  • プログラミングについて学習したい方

  • 並行性制御が気になる方

  • APIサーバーに関してご興味をお持ちの方

  • 実務で使うツールが気になる方

こんにちは
です。

4,518

受講生

318

受講レビュー

114

回答

4.7

講座評価

18

講座

자기 소개

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

 

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

 

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

 

지식공유자 경력

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

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

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

 

인터뷰 이력

カリキュラム

全体

50件 ∙ (9時間 2分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

25件

4.8

25件の受講レビュー

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

    受講レビュー 8

    平均評価 5.0

    5

    30% 受講後に作成

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

    • Hong
      知識共有者

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

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

    受講レビュー 9

    平均評価 5.0

    5

    30% 受講後に作成

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

    • Hong
      知識共有者

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

  • soap님의 프로필 이미지
    soap

    受講レビュー 24

    平均評価 5.0

    5

    30% 受講後に作成

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

    • Hong
      知識共有者

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

  • keny님의 프로필 이미지
    keny

    受講レビュー 14

    平均評価 5.0

    5

    30% 受講後に作成

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

    • Hong
      知識共有者

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

  • devHand님의 프로필 이미지
    devHand

    受講レビュー 10

    平均評価 5.0

    5

    60% 受講後に作成

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

    • Hong
      知識共有者

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

¥13,584

Hongの他の講座

知識共有者の他の講座を見てみましょう!

似ている講座

同じ分野の他の講座を見てみましょう!