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

/

Programming Language

Kevinの分かりやすいRxJava 1部

リアクティブプログラミングという参入障壁を乗り越えたいですか? KevinのわかりやすいRxJavaが、その壁を乗り越える力を育ててくれます。

  • kevin
Functional Programming
RxJava
Reactive Streams
Reactive Programming

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

こんなことが学べます

  • リアクティブプログラミングの確かな基礎

  • 宣言型プログラミングの理解

  • RxJava を使用した非同期プログラミング

  • Javaの関数型インターフェースとラムダ式

  • リアクティブ演算子をマーブルダイアグラムで理解する

  • クイズを通じたリアクティブ演算子の深化学習

リアクティブプログラミング、わかりやすく確実に学びましょう!

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

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

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

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

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

  • KevinのわかりやすいRxJavaパート1では、最初にリアクティブプログラミングとは何かについて簡単な例を挙げて説明します。どのプログラミング言語でも、その言語の大きな枠組みの中での特徴を理解し、学習を始めることは非常に重要だと思います。
  • リアクティブプログラミングで欠かせないマーベル図を見る方法を図でできるだけ簡単に説明し、受講生たちが一人でもマーベル図を理解できるように努めました。

【マーベル図の見方 講義資料キャプチャ】

  • RxJavaは、リアクティブプログラミングの仕様であるReactive Streamsの実装です。この Reactive Streams で定義された Publisher と Subscriber の間の動作フローを図を通して簡単に理解できるようにしました。

[PublisherとSubscriber間の動作フロー講義資料のキャプチャ]

  • FlowableとObservableの決定的な違いである背圧について、できるだけ簡単に説明します。

【背圧の概念に関する講義資料の取り込み】

  • RxJavaで使用される関数型プログラミングの基本的な概念を学びます。 Java 8で新しく導入された関数型インタフェースとラムダ式は、RxJavaで広く使用されているプログラミング手法で、その概念を理解し渡すための基本的な概念を簡単に説明します。
  • RxJavaで使用される演算子(Operator)関数について説明し、RxJavaのパート1を終了します。 RxJavaは演算子関数で始まり、演算子関数で終わっても過言ではないほど、演算子関数はRxJavaで最も重要な部分です。今回の講義では、演算子関数の型別にさまざまな演算子関数をマーブル図と一緒に理解し、サンプルコードを直接実行させながら、それぞれの演算子関数がどのような機能をしてどのように動作するかを理解させていただきます。

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

  • 初心者の目の高さに合わせて、リアクティブプログラミングの核心概念をできるだけ簡単に理解しようと努力しました。
  • 単に講義資料の説明だけではなく、授業ごとにその授業のサンプルコードの説明が無条件に続きます。つまり、講義資料だけでは理解できない部分は、例コードで具体的に説明し、サンプルコードを直接実行して結果を確認して理解できるように努めました。
  • クイズが必要なチャプターにはクイズを提供し、受講生たちがその講義を復習しながら自分のものにする時間を持つようにしました。
  • 講義で使用したすべてのサンプルコードをgithub( https://github.com/ITVillage-Kevin/rxjava )に提供し、受講者がサンプルコードを直接入力し、コードを実行して結果を確認するのに役立つようにしました。

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

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

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

あなたはどんなことが気になりましたか?(Q&A)

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

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

Q. 講義はどのように進行しますか?
A. ほとんどの授業が講義資料を通じた概念の理解 → サンプルコードを通じて概念を目で直接確認する方法で進行され、クイズが必要な授業には受講生たちが直接クイズを解いて該当の授業の内容を自分のものにすることができるように授業が終わる前にクイズを提示しました。

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

新しいプロジェクトを作成してサンプルコードを直接入力する場合は、githubのサンプルコードからcommonパッケージとutilsパッケージを必ずコピー/貼り付けてから、コードを書いてください。

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 BootでReactor、WebFluxをもっと活用するために、リアクティブプログラミングの基本をしっかりと身につけたい方

  • [Kevinの分かりやすい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)로 편하게 얘기해주세요.

 

カリキュラム

全体

18件 ∙ (7時間 30分)

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

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

受講レビュー

全体

50件

4.9

50件の受講レビュー

  • Kevin님의 프로필 이미지
    Kevin

    受講レビュー 3

    平均評価 5.0

    5

    94% 受講後に作成

    안녕하세요! 강사입니다. 제가 첫번째 수강 후기를 남기게 되었네요. ^^ 제가 만든 강의지만 저도 끝까지 수강을 하였기에 별점과는 상관없이 객관적인 수강평을 주관적으로 남겨보겠습니다. 마이크에서 나온 잡음은 거의 제거했지만 제 말소리에서 나오는 잡음은 여전히 좀 남아있더라구요. ^^; 새로운 강의를 만들면서 점점 나아지도록 노력하겠으니 너그럽게 봐주시면 감사드리겠습니다. 개인적인 생각으로는 리액티브 프로그래밍의 개념을 잡기에 나쁘지 않은 강의라 생각하며, 자바 개발의 대세인 Spring 에서 WebFlux를 사용하기 위해 미리 들어두면 괜찮은 강의라 생각합니다. ^^ Reactor와 WebFlux에 대한 얘기는 [새소식] 공지에서 이따금씩 하도록 하겠습니다. 그럼 강의에서 또 뵈어요 수강생 여러분! ^^;;

    • Jaeyoung Park님의 프로필 이미지
      Jaeyoung Park

      受講レビュー 1

      平均評価 5.0

      5

      100% 受講後に作成

      reactiveJAVA의 Observable 에서 쓰이는 다양한 연산자들을 예제와 함께 실제 사용법까지 직접 연습할수 있는 좋은 강의임. 여기서 나온 예제들만 잘 습득하고 레퍼런스만 잘 쌓아놔도 실전에서 유용하게 참고할수 있을듯.

      • 윤지상님의 프로필 이미지
        윤지상

        受講レビュー 3

        平均評価 5.0

        5

        100% 受講後に作成

        RxJava 를 이해하기 위해 다른 책들을 많이 봤지만, 번역책들은 도통 이해가 되지 않아 문서로만 공부를했었는데.. 이 강의는 정말 이해하기 좋은 구성입니다. 문서보면서 공부하시는 분들의 시간을 단축하기 위한 아주 좋은 강의라고 생각합니다.!! RxKotlin 도 보강된 강의 내용이 있었으면 좋겠습니다!!

        • Kevin
          知識共有者

          도움이 되셨다고 하니 저도 기쁘네요.ㅎ 어떤 기술이든 큰 틀을 잡는 개념은 정말 중요하다고 생각하기 때문에 최대한 이해하기 쉽도록 구성을 하려고 나름 노력을 하긴했습니다. ^^ 그 후의 응용은 수강생들 몫이라고 생각합니다. 저보다 더 잘 하실꺼에요. 감사합니다.

      • 태오님의 프로필 이미지
        태오

        受講レビュー 1

        平均評価 5.0

        5

        94% 受講後に作成

        강좌를 통해 RxJAVA를 이해해하는데 많은 도움이 되었습니다. 각 강좌에서 시작과 마무리, 다음 강의에 대한 설명, 쉽고 핵심적인 설명과 강의자료, 예제코드 등, 강좌를 들으면서 준비를 많이 하셨겠다는 생각을 하게되었습니다. 특히 연산자에 대한 설명은 실제 발생할 수 있는 가상의 data를 사용하셔서, 어떤 상황에서 해당 연산자를 사용하면 좋을지 상상하는데 도움이 많이 되었습니다. 아직은 제가 생산자와 소비자가 subscribe를 왜 동시게 갖고 있는지 혼동되어, 강좌를 다시 볼 때, 해당 부분을 유의해서 보려고 합니다. 좋은 강의 제공해 주셔서 감사의 말씀을 드립니다.

        • Kevin
          知識共有者

          이 강의를 만든 가장 큰 목표 중에 하나가 리액티브 프로그래밍에 쉽게 입문할 수 있도록 도움 드리자는건데 제 의도를 정확하게 알고계신거 같아서 얼굴이 화끈거리네요. ^^;; 도움 되셨다니 너무 다행이구요. 현실세계에서 생산자와 소비자는 대부분 분리되어 있지만 소프트웨어 세계에서는 생산자의 객체를 통해서 구독을하고 데이터를 전달 받는게 익숙하지 않은게 당연한데요. 리액티브 프로그래밍을 사용한 서버/클라이언트 통신을 접해보시면 이 부분이 조금 더 명확해진다는 사실 말씀 드리고 싶네요. 리액티브 프로그래밍에 발을 들이실 수 있게 된거 같아서 참 기쁩니다. 그럼 또 뵙겠습니다. 감사합니다~

      • Jinyong Kwon님의 프로필 이미지
        Jinyong Kwon

        受講レビュー 1

        平均評価 5.0

        5

        39% 受講後に作成

        강사님! 훌륭한 강의 감사합니다. 어려운 내용 이해하기 쉽게 잘 설명해주셔서 도움이 많이 되었습니다. 덕분에 잘 배우고 갑니다.

        • Kevin
          知識共有者

          조금이라도 도움 되셨다니 다행이네요.^^ 감사합니다!

      ¥5,207

      kevinの他の講座

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

      似ている講座

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