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

/

Full-stack

KevinのわかりやすいRxJava Part 2

リアクティブプログラミングという進入障壁を超えたいですか? KevinのわかりやすいRxJavaがその壁を越える力をキーワードにします。

  • kevin
Functional Programming
RxJava
Reactive Streams
Reactive Programming

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

こんなことが学べます

  • Hot Publisherの概念とHot Publisherの種類

  • RxJavaでのスレッドマネージャであるSchedulerの概念と使い方

  • RxJavaコードのデバッグ方法

  • RxJavaコードをテストする方法

  • SSE通信を使用したクライアントとサーバー間のRxJavaの活用

🎉Kevinの分かりやすいRxJava 2部発売🎉
リアクティブプログラミング
、今回も確実にお知らせします!

リアクティブプログラミングとは何ですか?

  • 狭い意味では、複雑な非同期要求を効果的に処理するための非同期プログラミングのためのAPIと言えます。
  • 広い意味では、実行する動作を具体的に明示する命令型プログラミング方式と反対の概念である宣言型プログラミングのパラダイムといえます。
  • リアクティブプログラミングは、クライアントの要求に即座に応答するように設計されたリアクティブシステムに欠かせないプログラミングモデルです。
  • リアクティブプログラミングは、非同期通信が必要なほとんどの開発言語およびフレームワークで幅広く使用されています。
    ex) Angular、ReactなどでのRxJS、JavaでのRxJava、AndroidでのRxAndroid、Spring Frameworkで使用するReactor、RxScalaなど、リアクティブ拡張が広く使われています。

なぜアクティブなプログラミングを学ぶべきですか?

  • リアクティブプログラミングは、非同期要求を効果的に処理するための開発パラダイムであると述べました。
  • 今日のアプリケーションでは、同期要求よりも非同期要求を処理する割合がますます高まっています。
  • Javaのスレッドを使用した非同期プログラミングは複雑さがかなり高く、予期しないエラーが発生する可能性も高いことが事実です。
  • リアクティブプログラミングは、スレッドを直接使用しながら発生する問題を代わりに解決し、非同期プログラミングの複雑さを簡素化します。
  • ただし、宣言型プログラムに適応するために一定の時間が必要です。
  • それである程度の進入障壁があるのも事実です。しかし、皆さんが越えられない障壁ではないと思います。
  • 決定的には、リアクティブプログラミングを通じてあなたの開発スキルが一段と向上することはもちろん、開発者として開発への考え方の転換を経験できる素晴らしいきっかけになると思います。

第2部講義でどんなことを学べますか?

  • KevinのわかりやすいRxJavaパート2では、パート1で話していなかったHot Publisher、スケジューラ、デバッグ、テストに関する講義を行います。そして最後に、パート1、パート2で学んだRxJavaをSpring Bootでどのように活用できるか、実習を通して感覚をつかみます。
  • まず、パート1で短く言及し、超えたCold PublisherとHot Publisherについてレビューをした後、Hot Publisherの種類とそれぞれの特徴をマーベル図とサンプルコードで習得できるようにしました。

[Cold Publisherレビュー講義資料キャプチャ]

【Hot Publisherレビュー講義資料キャプチャ】

  • RxJavaでは、スケジューラはどのような意味を持つコンポーネントであり、スケジューラの役割は何かを見てみましょう。 RxJavaでのスケジューラという意味を理解するために、まずオペレーティングシステム上で実行されるプロセスとプロセスサブのスレッドの概念と動作方法を図で簡単に説明し、RxJavaでのスケジューラがどのような役割を果たしているのか受講生たちが確実に理解できるように努めました。

【スレッドの概念講義資料キャプチャ】

  • RxJavaは宣言型プログラムで構成されており、非同期プログラミングであるため、RxJavaのコードをデバッグすることは容易ではありません。パート2レッスンでは、デバッグセクションを介してRxJavaのコードをどのようにデバッグできるかを学ぶことができます。
  • アプリケーションを開発する上でテストはとても重要な領域の一つだと思います。非同期プログラミングであるRxJavaのコードをJavaでの一般的な方法でテストするには限界があります。 RxJavaで自分が実装したコードのテストを効果的に進めるためにどのような方法を使用しているかをテストセクションで学ぶことができます。
  • パート2の最後のセクションでは、その間に学んだRxJavaプログラミングをSpring Bootでどのように利用できるかについての実践プロジェクトを進めます。実践プロジェクト自体は簡単ですが、アプリケーションの開発にRxJavaをどのように活用できるかについての洞察を得ることができます。

【実践プロジェクトの動作フロー講義資料の取り込み】

  • 最後に、このレッスンの学習を終えた後、リアクティブプログラミングに関連する将来の学習ロードマップを提示します。

私たちの講義の特徴は何ですか?

  • 初心者の目の高さに合わせて、リアクティブプログラミングの核心概念をできるだけ簡単に理解しようと努力しました。
  • 単に講義資料の説明だけではなく、授業ごとにその授業のサンプルコードの説明が無条件に続きます。つまり、講義資料だけでは理解できない部分は、例コードで具体的に説明し、サンプルコードを直接実行して結果を確認して理解できるように努めました。
  • 講義で使用したすべてのサンプルコードをgithubに提供し、受講生がサンプルコードを直接入力し、コードを実行して結果を確認するために参考にできるようにしました。

講義を聞く前に何を準備する必要がありますか?

  • 当然の話ですが、お使いのPCやノートパソコンにJDK 1.8以上がインストールされている必要があります。
  • 私たちの講義では、開発ツールとしてIntelliJ IDEを使用しました。 IntelliJに慣れていない方は、従来使用しているIDEで実習をしても構いません。
  • 私たちの講義を聞くためにあなたが準備しなければならない最も重要な準備は、新しい技術を学びたいという意志と決してあきらめない粘りです。 ^^

あなたの意志と忍耐を私に見せてください。皆さんがRxJavaの進入障壁の上に上がるように、私も最善を尽くしてお手伝いします。


前の講義を一緒に見る 👀

KevinのわかりやすいRxJava 1部 おすすめ講義
リアクティブプログラミングの確実な基礎

皆さんはどんなことが気になりましたか? (Q&A)🙋‍♀️🙋‍♂️

Q. 非専攻者も聞くことができますか?
A. 専攻/非専攻とは無関係です。 Javaに関する基本的な知識があれば誰でも受講可能だと思います。ちなみに私も最初の始まりは非専攻者でした。 ^^ ただし、2部講義は1部講義を受講した後に聞くと学習理解度がより高くなると思います。

Q. RxJavaを学ぶと何がいいですか?
A. 先ほど紹介文でもお話ししましたが、RxJavaを学ぶと複雑な非同期プログラミングを簡素化でき、ちなみに命令型プログラミング方式ではなく宣言型プログラミングを通じてプログラミングに対する思考の切り替えができます。より良い開発者に成長するのはおそらくでしょうか?^^ RxJavaを学んだ後は、リアクティブプログラミングの基本を確実に固めることができるので、RxJs、RxAndroid、Spring Reactorなどを学習する方がはるかに簡単になります。

Q. 講義はどのように進行しますか?
A. ほとんどの授業が講義資料を通じた概念理解 → サンプルコードを通じて概念を目で直接確認する方法で進行されます。パート1では、サンプルコードに加えて追加のクイズを提供しましたが、パート2レッスンには別のクイズはありませんので、参考にしてください。

Q.レッスンで使用されたオリジナルのサンプルコードはどこからダウンロードできますか?
A.レッスンで説明されているサンプルコードはすべてgithubにあり、以下のアドレスからダウンロードできます。
サンプルソースソースコード:
https://github.com/ITVillage-Kevin/rxjava-episode2

•実践プロジェクトソースソースコード(サーバー側)https://github.com/ITVillage-Kevin/rxjava-episode2-practice

•実践プロジェクトソースソースコード(クライアント側) https://github.com/ITVillage-Kevin/rxjava-episode2-practice-client

Q. 講義資料はどこからダウンロードできますか?
A. 各セクションの授業ごとに授業に使用した講義資料を添付ファイルとして登録しておいたので、必要な方はダウンロードして参考にしてください。

Q. 講義資料以外におすすめの参考資料がありますか?
A. リアクティブプログラミングを学ぶのに役立つサイトは、以下で確認できます。

http://reactivex.io/
リアクティブプログラミングの公式サイトとして、リアクティブプログラミングの基礎を固めた後に参考にするのは本当に良いサイトだと思います。

https://github.com/reactive-streams/reactive-streams-jvm
RxJavaはReactive Streamsを実装した実装体と言えます。このReactive Streamsの仕様を定義しておいたgithub公式資料です。

https://gist.github.com/casamia918/93b8db69beb9ee06b92a96b2a234d48e
リアクティブプログラミングについて韓国語によく翻訳されたgithub資料です。韓国語に翻訳していただきありがとうございますとお伝えしたいですね。

https://rxmarbles.com/
リアクティブプログラミングの核心の中で核心と言える演算子(Operator)をマーブル図でよくまとめた資料です。

http://reactivex.io/RxJava/2.x/javadoc/
最後に、RxJavaの公式javadocドキュメントです。 2020年現在、RxJava 3.0がリリースされているが、3.0では新しい演算子関数が多く追加されたと単純に考え、2.xバージョンで概念をしっかりとつかんでから3.0に進むのが良いと思われます。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • Javaのマルチスレッドプログラミングの難しさを克服したい方

  • 宣言型プログラムに慣れたい人

  • リアクティブプログラミングの進入障壁を越えたい方

  • Spring Reactive Web Application開発のためのリアクティブプログラミング基盤を固めたい方

  • 【KevinのわかりやすいRxJava 1部】講義を受講された方

前提知識、
必要でしょうか?

  • Java

  • 同期プログラミングと非同期プログラミングの違い

こんにちは
です。

6,270

受講生

230

受講レビュー

107

回答

4.8

講座評価

6

講座

- 주력 언어 또는 기술 : Java, Spring Framework, RxJava, Reactor, Spring WebFlux

- (주)코드스테이츠(https://www.codestates.com)에서 Senior Educational Software Engineer(Backend)로 활동
(From 2022.03 To 2024.01.31)

- 프리랜서 개발자 및 강사로 활동(From 2024.02)

- 저서

안녕하세요? Kevin이라고 합니다. ^^

인프런에서 이렇게 강사로서 여러분들을 만나게 되어서 너무 반갑습니다.

어떤 분야든 마찬가지겠지만 특히나 소프트웨어 개발자는 끊임없이 변화하는 트렌드에 뒤처지지 않도록 항상 자기 자신을 갈고 닦는것이 개발자로써 살아남는 유일한 방법이라고 생각하며 항상 배우는 자세로 즐겁게 소프트웨어 개발을 하고 있는 개발자 중 한 명입니다.

제가 가지고 있는 지식과 경험이 다른 분들에게 조금이나마 도움이 되기를 바라면서 인프런에서 강좌를 시작하였습니다.

앞으로 수강생분들에게 현실적으로 도움이 되는 다양한 강좌로 꾸준히 찾아뵙도록 하겠습니다. 감사합니다.

 

질문이나 의견은 언제든지 환영하니, 이메일(it.village.host@gmail.com)로 편하게 얘기해주세요.

 

カリキュラム

全体

23件 ∙ (3時間 46分)

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

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

受講レビュー

全体

14件

4.9

14件の受講レビュー

  • kevin님의 프로필 이미지
    kevin

    受講レビュー 3

    平均評価 5.0

    5

    100% 受講後に作成

    Hello, I am the first to finish the second part of the lecture and leave a review. ^^ I tried to make reactive programming as easy to understand as possible in parts 1 and 2, but I don't know how it was. Anyway, I hope my lecture will be of some help in understanding reactive programming. Thank you!

    • myrtlepn1203님의 프로필 이미지
      myrtlepn1203

      受講レビュー 5

      平均評価 5.0

      5

      100% 受講後に作成

      Thank you for explaining RXJava concisely and easily.

      • greatyun님의 프로필 이미지
        greatyun

        受講レビュー 3

        平均評価 5.0

        5

        100% 受講後に作成

        Good, good, it was a neat lecture. I really liked it!

        • pgb89090227님의 프로필 이미지
          pgb89090227

          受講レビュー 5

          平均評価 4.2

          4

          100% 受講後に作成

          I got a feel for reactive programming. Thank you. I especially liked the examples in the latter part. If you plan to make more lectures in the future, I think it would be better to introduce easy examples first, and then introduce the functions used in those examples, so that the class can be more focused.

          • kevin
            知識共有者

            I'm glad it was helpful. I will also try harder to create lectures from the students' perspective. Thank you.

        • ison5715님의 프로필 이미지
          ison5715

          受講レビュー 45

          平均評価 4.9

          5

          74% 受講後に作成

          Please teach me well

          ¥4,539

          kevinの他の講座

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