인프런 영문 브랜드 로고
인프런 영문 브랜드 로고
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) 14 reviews

503 students

Functional Programming
RxJava
Reactive Streams
Reactive Programming
Thumbnail

This course is prepared for Basic 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 to Understand 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 performed.
  • Reactive programming is an essential programming model for reactive systems that are 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 told you 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's 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 is some barrier to entry, but I don't think it's an insurmountable barrier.
  • I believe that reactive programming will not only help you take your development skills to the next level , but will also be a great opportunity for you as a developer to experience a change in your way of thinking about development .

What can I learn in Part 2 of the lecture?

  • In Kevin's Easy RxJava Part 2, we will cover Hot Publisher, scheduler, debugging, and testing that were not covered in Part 1. And finally, we will get a feel for how RxJava, which we learned in Parts 1 and 2, can be utilized in 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 codes.

[Cold Publisher Review Lecture Material Capture]

[Hot Publisher Review Lecture Material Capture]

  • In RxJava, we will look at what the scheduler is and what its role is. In order to understand the meaning of the scheduler in RxJava, we first tried to make it easy to explain the concept and operation method of the process running on the operating system and the thread under the process in a diagram so that students can clearly understand the role of the scheduler in RxJava.

[Capture of lecture material on the concept of threads]

  • Debugging RxJava code is not easy because RxJava is structured in a declarative programming style and is also an asynchronous programming style. In Part 2 of the lecture, you will learn how to debug RxJava code through the debugging section.
  • I think testing is one of the most important areas when developing an application. There are limitations to testing RxJava code, which is an asynchronous programming language, in the general Java way. In the testing section, you can learn how to effectively test the code you have implemented in RxJava.
  • In the last section of Part 2, we will conduct a hands-on project on how to utilize the RxJava programming we have learned so far in Spring Boot. The hands-on project itself is simple, but it will give you insight into how to utilize RxJava in application development.

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

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

What are the features of our course?

What should I prepare before attending the lecture?

  • Of course, you need to have JDK 1.8 or higher installed on your PC or laptop.
  • In our lecture, we used IntelliJ IDE as the development tool. If you are not familiar with IntelliJ, you can practice with the IDE you are currently using.
  • The most important thing you need to prepare to attend our lecture is none other than the will to learn new skills and the perseverance to never give up. ^^

Show me your will and perseverance, and I will do my best to help you overcome the barrier to entry of RxJava.


Let's watch the last lecture together 👀

Recommended lectures on 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 are majoring or not. I think anyone with basic knowledge of Java can take the course. By the way, I also started out as a non-major. ^^ However, I think that if you take the Part 2 lecture after taking the Part 1 lecture, your understanding of the learning will increase.

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 change the way you think about programming through 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 basics of reactive programming, so it will be much easier to learn RxJs, RxAndroid, Spring Reactor, etc.

Q. How are the lectures conducted?
A. Most classes proceed by understanding concepts through lecture materials → confirming concepts with your own eyes through example codes. In Part 1, quizzes were provided in addition to example codes, but please note that there will be no separate quizzes in Part 2.

Q. Where can I download the original example code used in the lecture?
A. All example codes explained in class are uploaded to 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 lecture materials?
A. For each class in each section, we have attached the lecture materials used in the class. If you need them, you can download them and refer to them.

Q. Are there any reference materials you would recommend other than the lecture materials?
A. Here are some sites that may be helpful 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 that implements Reactive Streams. This is the official github material that defines the specifications of Reactive Streams.

https://gist.github.com/casamia918/93b8db69beb9ee06b92a96b2a234d48e
This is a well-translated Korean GitHub resource about reactive programming. I would like to thank you for translating it into Korean.

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

http://reactivex.io/RxJava/2.x/javadoc/
Finally, here is the official javadoc documentation for RxJava. As of 2020, RxJava 3.0 has been released, but many new operator functions have been added in 3.0, so I think it would be better to simply think of it as a 2.x version that solidifies the concept and then move on to 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

5,956

Students

212

Reviews

103

Answers

4.8

Rating

5

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)

Lecture resources

are provided.

Published: 
Last updated: 

Reviews

Not enough reviews.
Become the author of a review that helps everyone!