강의

멘토링

로드맵

BEST
Programming

/

Full-stack

Kevin's Easy RxJava Part 2

Want to break through the barriers to entry that are reactive programming? Kevin's easy-to-understand RxJava will empower you to overcome them.

(4.9) 15 reviews

519 learners

  • Kevin
Functional Programming
RxJava
Reactive Streams
Reactive Programming

Reviews from Early Learners

What you will learn!

  • The concept of Hot Publisher and types of Hot Publisher

  • Concept and usage of Scheduler, a thread manager in RxJava

  • How to debug RxJava code

  • How to test RxJava code

  • Utilizing RxJava between Client and Server using SSE communication

🎉Kevin's Easy RxJava Part 2 Released🎉
Reactive programming
, I'll teach you this again!

What is reactive programming?

  • In a narrow sense, it can be said to be an API for asynchronous programming to effectively handle complex asynchronous requests.
  • In a broad sense, it can be said to be a paradigm of declarative programming, which is the opposite of imperative programming, which specifically states the actions to be executed.
  • Reactive programming is an essential programming model for reactive systems designed to respond immediately to client requests.
  • Reactive programming is widely used in most development languages and frameworks that require asynchronous communication.
    ex) Reactive extensions are widely used, such as RxJS in Angular, React, RxJava in Java, RxAndroid in Android, and Reactor and RxScala used in the Spring Framework.

Why should you learn reactive programming?

  • I mentioned that reactive programming is a development paradigm for effectively handling asynchronous requests.
  • Today's applications increasingly handle asynchronous requests rather than synchronous ones.
  • It is true that asynchronous programming using Java threads is quite complex and has a high possibility of unexpected errors occurring.
  • Reactive programming solves the problems that arise when using threads directly and simplifies the complexity of asynchronous programming.
  • However, it takes some time to get used to the declarative programming style.
  • So, it's true that there are some barriers to entry. But I don't think they're insurmountable.
  • I believe that reactive programming will not only help you improve your development skills to the next level , but will also be a great opportunity for you to experience a shift in your mindset towards development as a developer .

What can I learn in Part 2 ?

  • In Part 2 of Kevin's Easy RxJava, we'll cover topics not covered in Part 1, such as Hot Publishers, schedulers, debugging, and testing. Finally, we'll get a feel for how the RxJava we learned in Parts 1 and 2 can be applied to Spring Boot through hands-on practice.
  • First, we reviewed Cold Publisher and Hot Publisher, which were briefly mentioned in Part 1, and then we learned about the types of Hot Publisher and their respective features through marble diagrams and example code.

[Cold Publisher Review Lecture Materials Capture]

[Capture of Hot Publisher Review Lecture Materials]

  • In this article, we'll explore what the scheduler is, what its role is, and what it does in RxJava. To understand the meaning of the scheduler in RxJava, we'll first provide a simple, graphical explanation of the concepts and operations of processes and threads under a process running on the operating system. This will help students clearly understand the role of the scheduler in RxJava.

[Capture of lecture material on the concept of threads]

  • Because RxJava is a declarative programming language and asynchronous, debugging RxJava code can be challenging. In Part 2, we'll cover debugging techniques for RxJava code.
  • Testing is a crucial aspect of application development. However, testing RxJava code, an asynchronous programming language, using standard Java methods has its limitations. In the testing section, you'll learn how to effectively test your code in RxJava.
  • The final section of Part 2 will present a hands-on project demonstrating how to leverage the RxJava programming skills learned so far in Spring Boot. While the project itself is simple, it will provide insight into how RxJava can be utilized in application development.

[Capture of lecture material on the flow of the hands-on project]

  • Finally, after completing this lecture, we present a roadmap for future learning related to reactive programming.

What are the special features of our course?

What should I prepare before attending the lecture?

  • As you might expect, you need to have JDK 1.8 or higher installed on your PC or laptop.
  • In our course, we used IntelliJ IDE as our development tool. If you're unfamiliar with IntelliJ, feel free to use your current IDE for the practical exercises.
  • The most important things you need to prepare to take our course are nothing other than the will to learn new skills and the perseverance to never give up. ^^

Show me your will and perseverance, and I'll do my best to help you overcome the barriers to entry into RxJava.


Watch the previous lecture together 👀

Recommended Course: Kevin's Easy-to-Understand RxJava Part 1
Solid fundamentals of reactive programming

What are you curious about? (Q&A)🙋‍♀️🙋‍♂️

Q. Can non-majors also take the course?
A. It doesn't matter whether you're a major or not. I think anyone with a basic knowledge of Java can take this course. Incidentally, I started out as a non-major myself. ^^ However, I believe taking Part 2 after Part 1 will enhance your understanding of the material.

Q. What are the benefits of learning RxJava?
A. As I mentioned in the introduction, learning RxJava can simplify complex asynchronous programming, and in addition, it can help you change your way of thinking about programming by using declarative programming rather than imperative programming. Growing into a better developer is a bonus, right? ^^ After learning RxJava, you will be able to solidify the fundamentals of reactive programming, so learning RxJs, RxAndroid, Spring Reactor, etc. will become much easier.

Q. How are the lectures conducted?
A. Most classes proceed by first understanding concepts through lecture materials, then directly verifying them through example code. While Part 1 provided additional quizzes in addition to example code, Part 2 will not include separate quizzes.

Q. Where can I download the original example code used in the lecture?
A. All example codes explained in class are available on GitHub and can be downloaded from the address below.
Original example source code :
https://github.com/ITVillage-Kevin/rxjava-episode2

Original source code for the practice project (server side) :https://github.com/ITVillage-Kevin/rxjava-episode2-practice

Original source code for the practice project (client side) :https://github.com/ITVillage-Kevin/rxjava-episode2-practice-client

Q. Where can I download the lecture materials?
A. For each class in each section, we have attached the lecture materials used in the class. If you need them, please download them and refer to them.

Q. Are there any reference materials you would recommend other than the lecture materials?
A. Below are some helpful sites for learning reactive programming.

http://reactivex.io/
This is the official site for reactive programming, and I think it's a really good site to refer to after learning the basics of reactive programming.

https://github.com/reactive-streams/reactive-streams-jvm
RxJava can be said to be an implementation of Reactive Streams. This is the official GitHub document that defines the specifications of Reactive Streams.

https://gist.github.com/casamia918/93b8db69beb9ee06b92a96b2a234d48e
This is a well-translated GitHub resource on reactive programming. I'd like to express my sincere gratitude for the Korean translation.

https://rxmarbles.com/
This is a well-organized marble diagram of operators, which can be said to be the core of reactive programming.

http://reactivex.io/RxJava/2.x/javadoc/
Finally, here's the official javadoc documentation for RxJava. As of 2020, RxJava 3.0 has been released, but it's best to simply assume that 3.0 adds a lot of new operator functions, and to solidify your understanding of the concepts with version 2.x before moving on to version 3.0.

Recommended for
these people

Who is this course right for?

  • For those who want to overcome the difficulties of multi-threaded programming in Java.

  • For those who want to get familiar with declarative programming style.

  • For those who want to overcome the barrier to entry to reactive programming

  • For those who want to learn the basics of reactive programming for developing Spring Reactive Web Applications

  • [Kevin's Easy to Understand RxJava Part 1] Those who took the course

Need to know before starting?

  • Java

  • Difference between synchronous and asynchronous programming

Hello
This is

6,313

Learners

232

Reviews

107

Answers

4.8

Rating

6

Courses

- 주력 언어 또는 기술 : 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)로 편하게 얘기해주세요.

 

Curriculum

All

23 lectures ∙ (3hr 46min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

15 reviews

4.9

15 reviews

  • kevin님의 프로필 이미지
    kevin

    Reviews 3

    Average Rating 5.0

    5

    100% enrolled

    こんにちは、2部講義も私が一番先に頑張って受講評を残すようになりました。 ^^ 1部/2部にわたってリアクティブプログラミングについてできるだけ簡単に理解させようと努力しましたが、どうでしたかわかりませんね。とにかく、リアクティブプログラミングを理解していますが、私の講義が少しでも役立つことを願っています。ありがとうございます!

    • myrtlepn1203님의 프로필 이미지
      myrtlepn1203

      Reviews 5

      Average Rating 5.0

      5

      100% enrolled

      RXJavaに必要な内容を簡潔に理解しやすく説明してくれてありがとう。

      • greatyun님의 프로필 이미지
        greatyun

        Reviews 3

        Average Rating 5.0

        5

        100% enrolled

        グッドグッドきれいな講義です。

        • pgb89090227님의 프로필 이미지
          pgb89090227

          Reviews 5

          Average Rating 4.2

          4

          100% enrolled

          リアクティブプログラミングの感覚を少し捉えました。ありがとうございます。 特に後の例が好きでした。 今後の講義をもっと作成するつもりなら、最初に簡単な例を紹介してから、その例で使われる関数を紹介してくれれば、もっと授業に集中できると思います。

          • kevin
            Instructor

            役に立ったのは幸いです。 私も受講生たちの立場で講義を制作できるよう、さらに努力させていただきます。 ありがとうございます。

        • ison5715님의 프로필 이미지
          ison5715

          Reviews 45

          Average Rating 4.9

          5

          74% enrolled

          よく教えてください

          Limited time deal

          $3,502.00

          22%

          $29.70

          Kevin's other courses

          Check out other courses by the instructor!

          Similar courses

          Explore other courses in the same field!