강의

멘토링

로드맵

Inflearn brand logo image
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

517 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,287

Learners

231

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부에 걸쳐서 리액티브 프로그래밍에 대해서 최대한 쉽게 이해시켜드리려고 노력했는데 어떠셨는지 모르겠네요. 아무튼 리액티브 프로그래밍을 이해하시는데 제 강의가 조금이라도 도움이 되길 바래볼게요. 감사합니다!

    • myrtlepn님의 프로필 이미지
      myrtlepn

      Reviews 5

      Average Rating 5.0

      5

      100% enrolled

      RXJava에 필요한 내용을 간결하고 이해가 잘 가도록 설명해주시네요 감사합니다

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

        Reviews 3

        Average Rating 5.0

        5

        100% enrolled

        굿굿 갈끔한 강의 입니다. 아주 좋았어요!

        • 박규봉 Park님의 프로필 이미지
          박규봉 Park

          Reviews 5

          Average Rating 4.2

          4

          100% enrolled

          리액티브 프로그래밍에 대한 감을 좀 잡았습니다. 감사합니다. 특히 뒷부분 예제가 마음에 들었습니다. 만약 추후 강의를 더 만드실 생각이 있으시다면 처음에 쉬운 예제를 소개해준 뒤, 해당 예제에서 사용되는 함수를 소개해준다면 더 수업에 집중할 수 있을거 같습니다.

          • Kevin
            Instructor

            도움이 되셨다니 다행입니다. 저도 수강생들 입장에서 강의를 제작할 수 있도록 더 노력하도록 하겠습니다. 감사합니다.

        • injoon2019님의 프로필 이미지
          injoon2019

          Reviews 45

          Average Rating 4.9

          5

          74% enrolled

          잘 가르쳐주세요

          Limited time deal

          $33,000.00

          14%

          $29.70

          Kevin's other courses

          Check out other courses by the instructor!

          Similar courses

          Explore other courses in the same field!