Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
Programming

/

Back-end

正攻法に近く基本に忠実な実戦Kotlin Coroutineマスタークラス

この講座は、Kotlinの🌺 Coroutineの理論的基礎から実践活用まで、本格的に学ぶマスタークラスです。コルーチンの核心原理と構造、非同期プログラミングの必要性、コルーチンビルダーとスコープ、例外処理、チャネル、フロー(Flow)など、実務で頻繁に使用する主要機能を段階的に扱います。各概念は実習サンプルと共に説明されるため、初心者でも容易に理解し、すぐに実践に適用できます。実務に強いCoroutineの能力を身につけたい開発者にとって最高の入門および実践講座です。

  • jhong
코틀린
코루틴
Android
Kotlin
concurrent
backend
coroutine

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

こんなことが学べます

  • Kotlin 入門文法

  • マルチスレッドの欠点と長所、それに伴うコルーチンの活用方法

  • コルーチンでの構造化された並行性と実務パターン

  • コルーチンでの例外処理方法:基礎から応用まで

  • 並列プログラミングにおける共有リソース管理

  • Flowを活用したイベントデータストリーム方法

  • Channel を活用した軽量スレッド間の共有リソース管理

定石に基づいて作られた大企業開発者が知らせるコルーチン

単にコルーチンの動作原理だけを学ぶ講義は今必要ではありません。実際の大企業開発者が現場でぶつかり、適用した様々な事例や実務ですぐに利用可能な実戦コードを、その講義を通じて一緒に体験してみてください。


この講義は、コルーチンの定石的な概念から、Flow・Channel・Dispatcher・Scopeなど実際に多く使われるツールを例と一緒に直接取り上げています。単にAPI呼び出しではなく、複雑な非同期ロジック、子と親の関係、Job管理、および例外状況への対応まで、実践的な機能の実装例を使用して自然に習得できます。


多くの資料が理論にとどまっていますが、この講義は実務開発環境で「なぜこう書くべきなのか」「どこで問題が飛び出すのか」「どのように解放されるのか」を正しくお知らせしたいと思います。

理論だけで終わらず、実際のサービスに適用可能な技術と実務者が実際に使用するパターンとノウハウ、そして間違えない書き方をお知らせします。

coroutineをなぜ学ばなければならない..?

単に「非同期処理」なので、あるいは「トレンド」なのでコルーチンを学ぶという話は意味がありません。

現実的にコルーチンを知るべき理由は、まさに「実務の効率」と「競争力」にあります。


仕事をしてみると、API呼び出し、DBトランザクション、外部システム連動など時間がかかる作業が本当に多いです。

これをすべてスレッドで処理すると、リソースに制限があり、コールバックで構成すると管理が困難です。

アンドロイド、バックエンドに限らず多様に使われるコルーチン.. RxJava、コールバック地獄、複雑な同期問題… すでに経験した方々は「だからコルーチンが必要だな」ということを体で感じていたはずです。

📚複雑な非同期ロジックも同期コードのように簡単に

従来は、複数の作業を非同期で処理するには、コールバック、スレッド、Futureなど、さまざまな手法を使用する必要がありました。しかし、この方法はコードが複雑になり、 「suspend」キーワード一つだけで非同期作業と同期作業を混ぜて書くことができ、読みやすさと保守性が大幅に向上します。

📚サーバーリソース効率を最大化

複数のスレッドを作成して並行性を処理すると、サーバーリソースがすぐに使い果たされ、パフォーマンスが低下する可能性があります。コルーチンは数千から数万の作業も少数のスレッドで処理するため、サーバーリソースを効率的に活用できます。 たとえば、大量のネットワーク要求またはデータ入出力を同時に処理する場合は、スレッドベースよりもはるかに多くの要求に耐えることができます。

📚構造化された並行性で安全に管理

コルーチンは親子関係でタスクのライフサイクルを管理します。 親コルーチンが終了すると、子コルーチンも自動的にクリーンアップされ、リソースリークや予期しない動作を防ぐことができます。 この構造化された並行性のおかげで、大規模なサービスでも予測可能な動作と安定したサーバー運用が可能です。

📚直感的なエラー処理とキャンセル

非同期コードで例外が発生した場合、どこでどのように処理するべきかは難しいことがよくあります。 コルーチンは例外伝播、エラー処理、ジョブキャンセル(キャンセルトークンなど)を一貫してサポートし、 実務でよく遭遇するエラー状況をはるかに単純に、そして安全に扱うことができます。

📚リアルタイムデータストリームとイベント処理

コルーチンのFlowとChannelを活用すると、 リアルタイムデータストリーム、チャット、センサーデータ、リアルタイム通知などの複雑なイベント処理も 簡潔で読みやすいコードで実装できます。 イベントが発生するたびにコールバックをリンクするのではなく、 Flowを使用すると、宣言的かつ反応的にデータを処理できます。

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

実務に直接適用可能な非同期処理コード

複雑な非同期フローを同期コードのように簡潔に書くことができます。

コールバック地獄や、複雑なスレッド管理なしで、実際のサービスですぐに使用できる信頼性が高く効率的なコルーチンベースのコードを作成してください。

構造化並列性アーキテクチャの設計

単一タスクだけでなく、複数の非同期タスクを親子関係で安全に管理する構造化された並行性パターンをプロジェクトに溶かすことができます。

これにより、大規模なトラフィックや複雑なデータフローを確実に処理する方法を学びます。

リアルタイムデータストリームおよびイベント処理システム

FlowやChannelなどのコルーチン独自のツールを活用して、チャット、データパイプライン、ログアナライザなど様々なイベントベースのシステムに入っている必須機能を一緒に実装してみてください!

安定した例外とキャンセル処理

実務でよく遭遇するエラー状況、例外伝播、作業キャンセルなどの問題をコルーチンで安全に処理する実践コードを一緒に作成して学習してみてください!

メンテナンスが簡単、読みやすいコード

複雑な非同期/並行性ロジックも、一目でわかりやすいクリーンで一貫性のあるコードスタイルを提供します。これにより、チームメンバーとのコラボレーション、コードレビュー、機能拡張など、実務で必須の力量を育ててみてください!

30個ほどの実戦サンプルコードを活用した学習

理論だけで行われた講義ではなく、言葉だけの講義ではなく、単純な機能や深化された機能を実装し、学ぶ講義として準備しました。

知識共有者が重要と思う4つの価値観

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

専門性が落ちる様子と思われても、見やすくする講義は講義ではないと思います。デバッグも進行する時間も講義の一部です

2. 実務に特化しなければならない

開発は言葉ではありません。実際の実装を試して動作するプロセスを一緒にすることができます。

  • 企画者の方々…生かしてください。


3. 受講生の方々に役立たなければならない。

私が実務で適用して効果を見た概念を溶かそうとしました。この過程で実務を間接的に体験したり、実務者であれば、実務環境にもっと優れたパフォーマンスを見せることができます。

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

講義を進めながら質疑応答をたくさん残してください。この講義はその一人だけの知識を通して作られませんでした。様々な大企業開発者の方々の意見も取り入れられています。

  • 講義を完了するのに役立つ人の簡単な履歴は次のとおりです。

private val supported_one = "カカオペイプラットフォームバックエンド開発者" private val supported_two = "トス証券APIサーバー開発者" private val supported_three= "秘密にしてほしいユニコーンスタートアップ開発者"

講義構成図

📚セクション1

講義の紹介とともに、あなたが簡単に使用する軽量スレッド、つまりコルーチンとOSで管理し、リソースが割り当てられているスレッドを比較し、違いを知らせたいと思います。

print ( "⚠️ カカオペイプラットフォームバックエンド開発者が考える重要なポイント!! ⚠️" ) スレッドと軽量スレッドの違いを知らなくても開発は可能です。でも、離職や就職の準備ができたら、面接に備えてとても良い話題です!簡単な内容ですが、その時間で簡単な内容をすぐに習得してみてください!

📚セクション2

非常に基本的なコルーチン宣言方法と動作するコードを確認します。とても基本的なアイテムで、皆さんに体験する時間としてお届けしています。

📚セクション3

コルーチンのライフサイクルを管理する方法を学びます。コルーチンのキャンセルとGracesfully Shut Down本番のサンプルコードからさまざまな方法で、コルーチンのキャンセルのイベントを管理してください!

📚セクション4

並行性プログラミングを使用する際に値を返し、使用する明示的なコード型を実装することになります。さらに、親子関係という基本的なコルーチン構造を理解して学習できる時間で準備してみました!

📚セクション5

コルーチンの内部で使用するDispatcherとContextを理論的に理解し、さまざまなDispatcherを適用して学ぶ時間です。必須ではありませんが!最適化のためには、必ず知っておくべき時間で準備してみました。

📚セクション6

コルーチンでの親子関係は果たして常に一貫していますか?実務パターンを通じたライフサイクル管理とコルーチンでの親子関係の一貫性を崩す方法まで様々なテーマで準備を行いました。

📚セクション7

Flowについて学習を始めます。このセクションでは、理論的な部分に基づいて扱うのではなく、実際に実践で利用可能なコードや機能やサービスを一度実際に作成しながら学習してみましょう。この講義で最大の実務例を参考にし、非同期ストリームを扱っています。

print「⚠️ユニコーンスタートアップ開発者が考える重要なポイント!!⚠️」 ) DBに対するビッグデータストリームの作業を進めたり、一般的なログデータを処理する上で必ず必須に入らなければならないトピックではないかと思います。サンプルコードが突然難しくなる部分もありますが、それほどもっと楽しく扱えるように準備しました。ぜひとも噛んで理解して学習してみると本当に大きな助けになります!

📚セクション8

コルーチン間のコミュニケーションはどうしますか?並行性プログラミングで並列に動作するシステム間でデータ移管作業や、イベントベースのデータを追加的に転送して処理する必要がある場合、軽量スレッド間でデータを共有するリソースを作成する必要がある場合!このようなさまざまな場合に対して処理できるChannelについて学習します。

print「⚠️講義撮影し、板橋でプラットフォーム開発するサーバー開発者が考える重要なポイント⚠️」 ) 軽量スレッド間でデータ転送をアトミックに保証する行為は非常に多く使用されます。 GolangでのチャネルをKotlinで同じように実装し、並列性プログラミングでのデータ共有リソースを一緒に管理し、コルーチンにもう少しハマる時間になることを願っています。

📚セクション9

コトリンでの例外処理はどれほど重要ですか?リソースが漏れて発生するOOMを防止するために必ず入らなければならない項目です。このセクションでは、例外処理についてもう少しディープダイブし、より堅牢なシステムを作成できるように準備しました!

📚セクション10

並行性プログラミングの最も重要な部分は、共有リソースの制御です。このような部分を無視することになると、Race Condition、Dead Lockなど本当に痛い状況がとても簡単に発生します。この時点では、この問題を解決するための代表的なテクニックを学ぶことができます。

print「⚠️Tos開発者が考える重要なポイント⚠️」 ) 銀行口座および出金サービスの機能を実装している場合、これらの共有リソースへのアクセス制御は本当にかなり重要なトピックです。このレッスンでは、私が個人的に最も重要に思うトピックとして、コルーチンではないとしても、一般的なプログラミングでこれらのトピックを導入し、考慮し、使用する必要があります。 最後のセクションだけにとても大切に考えるテーマなので、ぜひ集中して習得していただきたいと思います。

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

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

銀行サーバープロジェクトの実践を通じて学ぶコトリンマスタークラス

  • PolyGroth Persistance StrategyやKafkaなどを活用して、トラフィックの種類に応じたデータ処理方法とDBの考慮事項やイベント性データの活用方法についてすべてを学習できます。

受講前の注意

練習環境

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


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

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

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

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

こんな方に
おすすめです

学習対象は
誰でしょう?

  • コルーチン概念をきちんと学びたい方

  • 実践例でコルーチンを身につけたい方

  • 複雑なコルーチン構造を設計・デバッグしたい方

  • 性能最適化および並列処理に興味がある方

  • Kotlin ベースの バックエンド・モバイル開発者

  • SpringベースでKotlinを取り入れたいバックエンド・モバイル開発者

こんにちは
です。

2,391

受講生

169

受講レビュー

73

回答

4.5

講座評価

13

講座

자기 소개

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

 

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

 

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

 

지식공유자 경력

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

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

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

 

인터뷰 이력

カリキュラム

全体

37件 ∙ (5時間 9分)

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

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

受講レビュー

全体

10件

4.9

10件の受講レビュー

  • tttos님의 프로필 이미지
    tttos

    受講レビュー 5

    平均評価 5.0

    5

    32% 受講後に作成

    講義に一緒に参加して撮影を手伝ってくれた、トスで開発している開発者です。 この講義を準備するにあたって、かなり多くの部分で悩みました。やはり軽量スレッドというテーマが簡単ではないテーマでもあり、どのように扱うべきかも悩みました。 しかし、講義を撮影してくださる方の意見に従い、最大限多様な例を提供し、構成がしっかりした講義よりも親しみやすい講義にしようという目標を持って進めました。 その分、欠点もある方式ですが、長所もある方式だと思っています。この講義が皆さんに完璧にコルーチンを使いこなせるようにするわけではありません。あくまで講義だからです。 この講義を基準に、様々に実際に活用してみれば、完璧にコルーチンを使いこなせる人になれるのではないかと思います。 この講義が皆さんを満足させられない場合は、不足な点があれば学ぶことができ、改善していきたいという意思がありますので、フィードバックをいただければ幸いです。

    • hoos983485067님의 프로필 이미지
      hoos983485067

      受講レビュー 9

      平均評価 5.0

      5

      97% 受講後に作成

      Kotlinも知りたいしCoroutineも知りたい??これを参考にしながら勉強すれば最も良い学習方法ではないかと思います。ありがとうございます。

      • jhong
        知識共有者

        こんにちはHoosさん、良いレビューを残していただきありがとうございます!!今後もより良い講義でお会いできるよう頑張ります!!良い一日をお過ごしください!!

    • ureview229499님의 프로필 이미지
      ureview229499

      受講レビュー 7

      平均評価 5.0

      5

      95% 受講後に作成

      様々なテーマで楽しく拝見させていただきました。とても参考になりました。ありがとうございます。

      • jhong
        知識共有者

        こんにちは、開発上手になりたいさん、良いレビューを残していただきありがとうございます!!今後もより良い講義でお会いできるよう頑張ります!!良い一日をお過ごしください!!

    • sionicdan님의 프로필 이미지
      sionicdan

      受講レビュー 4

      平均評価 5.0

      5

      62% 受講後に作成

      • jhong
        知識共有者

        최병현様、 評価を残していただき、ありがとうございます。 今後もより良い講義をご提供できるよう努めてまいります。 良い一日をお過ごしください。

    • de님의 프로필 이미지
      de

      受講レビュー 9

      平均評価 5.0

      5

      32% 受講後に作成

      楽しく聞いています。序盤ですが、結構有益な講義ですね。

      • jhong
        知識共有者

        devHandさん、こんにちは。コメントありがとうございます! 今後、より良い講義でお会いできるようにいたします!

    ¥8,239

    jhongの他の講座

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

    似ている講座

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