강의

멘토링

로드맵

Inflearn brand logo image
BEST
Programming

/

Programming Language

Kevin's Easy RxJava Part 1

Want to overcome the barrier to entry that is reactive programming? Kevin's Easy RxJava will empower you to break down that wall.

(4.9) 50 reviews

735 learners

  • Kevin
Functional Programming
RxJava
Reactive Streams
Reactive Programming

Reviews from Early Learners

What you will learn!

  • Solid Foundations of Reactive Programming

  • Understanding Declarative Programming

  • Asynchronous Programming with RxJava

  • Java Functional Interfaces and Lambda Expressions

  • Understanding Reactive Operators Through Marble Diagrams

  • In-depth Learning of Reactive Operators Through Quizzes

Reactive programming , learn it easily and clearly!

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 a certain level of barrier to entry, but I don't think it's an insurmountable barrier.
  • 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 as a developer to experience a change in your way of thinking about development .

What can I learn in Part 1 of this lecture?

  • In Kevin's Easy to Understand RxJava Part 1, he first explains what reactive programming is with an easy example. I think it is very important to start learning any programming language by understanding its features within the big picture.
  • We have tried to explain in pictures as easily as possible how to view marble diagrams, which are essential in reactive programming, so that students can understand marble diagrams on their own.

[Capture of lecture material on how to read Marvel diagrams]

  • RxJava is an implementation of Reactive Streams, a specification for reactive programming. The flow of operations between Publishers and Subscribers defined in Reactive Streams is illustrated in a diagram to make it easier to understand.

[Capture of lecture material on the flow of operations between publisher and subscriber]

  • I will explain the crucial difference between Flowable and Observable, Back Pressure, as simply as possible.

[Capture of lecture material on the concept of back pressure]

  • Learn the basic concepts of functional programming used in RxJava. Functional interfaces and lambda expressions, newly introduced in Java 8, are programming techniques widely used in RxJava. We will explain the basic concepts in an easy-to-understand manner so that you can understand and move on.
  • We will explain the operator functions used in RxJava and conclude Part 1 of RxJava. It is no exaggeration to say that RxJava starts and ends with operator functions, as operator functions are the most important part of RxJava. In this lecture, we will understand various operator functions by type with a marble diagram, and we will understand what each operator function does and how it works by directly executing example code.

What are the features of our course?

  • We have tried to make the core concepts of reactive programming as easy to understand as possible for beginners.
  • It doesn't just stop at explaining the lecture materials, but also unconditionally follows each class with an explanation of the example code for that class. In other words, we tried to explain in detail with example code any parts that are not understood from the lecture materials alone, and to make it easier for you to understand by running the example code yourself and checking the results.
  • In chapters that require quizzes, we provide quizzes so that students have time to review and make the lecture their own.
  • All example codes used in the lecture are provided on github ( https://github.com/ITVillage-Kevin/rxjava ) so that students can directly type in the example codes and run the codes to check the results.

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 a development tool. Although we explain how to set up a practical environment based on IntelliJ in the lecture, those who are not familiar with IntelliJ can practice with the IDE they are currently using.
  • The most important thing you need to prepare to attend our lectures 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.

What are you curious about? (Q&A)

Q. Can non-majors also take the course?
A. It doesn't matter whether you are a major 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. ^^

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 in a way that students first understand the concepts through lecture materials → then directly confirm the concepts with their own eyes through example codes. For classes that require quizzes, quizzes are given before the end of the class so that students can make the content of the class their own by solving the quizzes themselves.

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

If you are creating a new project and typing in the example code yourself, please make sure to copy/paste the common package and utils package from the github example code and then write the code.

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 will help you learn 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 easily implement asynchronous programming in Java

  • For those who want to easily understand declarative programming

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

  • For those who want to solidify their understanding of the fundamentals of reactive programming to better utilize Reactor and WebFlux in Spring Boot.

  • For those who remember the [Kevin's Easy Java Developer Roadmap] lecture

Need to know before starting?

  • Java

  • The 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

18 lectures ∙ (7hr 30min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

50 reviews

4.9

50 reviews

  • kevin님의 프로필 이미지
    kevin

    Reviews 3

    Average Rating 5.0

    5

    94% enrolled

    Hello! I am the instructor. This is my first time leaving a review after taking a class. ^^ Although I created the course, I took it all the way through, so I will leave an objective and subjective review regardless of the rating. I almost removed most of the noise from the microphone, but there was still some noise from my own speech. ^^; I will try to improve as I create new courses, so I would appreciate your generous understanding. In my personal opinion, I think this is a good course to learn the concept of reactive programming, and I think it is a good course to listen to in advance to use WebFlux in Spring, the trend in Java development. ^^ I will occasionally talk about Reactor and WebFlux in the [News] notice. See you again in class, students! ^^;;

    • susia71792821님의 프로필 이미지
      susia71792821

      Reviews 1

      Average Rating 5.0

      5

      100% enrolled

      This is a good lecture where you can practice using various operators used in Observable of reactiveJAVA with examples and actual usage. If you just learn the examples provided here well and build up references, you will be able to use them usefully in real life.

      • greatyun님의 프로필 이미지
        greatyun

        Reviews 3

        Average Rating 5.0

        5

        100% enrolled

        I've read a lot of other books to understand RxJava, but I couldn't understand the translated books at all, so I only studied through the documents.. This lecture is really well-structured. I think it's a great lecture to shorten the time for those who study while looking at the documents.!! I wish there were more reinforced lecture content for RxKotlin!!

        • kevin
          Instructor

          I'm glad to hear that it was helpful. I think that the concept of grasping the big picture is really important for any technology, so I tried my best to organize it so that it would be as easy to understand as possible. ^^ I think that the application after that is up to the students. I'm sure they'll do better than me. Thank you.

      • mindle229513님의 프로필 이미지
        mindle229513

        Reviews 1

        Average Rating 5.0

        5

        94% enrolled

        The lecture helped me a lot in understanding RxJAVA. In each lecture, there is a beginning and end, an explanation of the next lecture, easy and core explanations and lecture materials, example codes, etc., so I thought that you prepared a lot while taking the lecture. In particular, the explanation of the operator used virtual data that could actually occur, so it was very helpful to imagine in which situations the operator would be good to use. I am still confused about why the producer and consumer have subscribe at the same time, so I will pay attention to that part when I watch the lecture again. Thank you for providing a great lecture.

        • kevin
          Instructor

          One of the biggest goals in making this course was to help you easily get started with reactive programming, and I'm so happy that you understand my intentions exactly. ^^;; I'm so glad it was helpful. In the real world, producers and consumers are mostly separated, but in the software world, it's natural that it's not familiar to subscribe and receive data through the producer's object. I'd like to tell you that this part will become a little clearer if you come across server/client communication using reactive programming. I'm so glad that you were able to take a step into reactive programming. See you again. Thank you~

      • devil54629496님의 프로필 이미지
        devil54629496

        Reviews 1

        Average Rating 5.0

        5

        39% enrolled

        Teacher! Thank you for the great lecture. It was very helpful because you explained difficult content in an easy-to-understand way. Thanks to you, I am learning a lot.

        • kevin
          Instructor

          I'm glad it was of some help. ^^ Thank you!

      Limited time deal

      $30.80

      9%

      $34.10

      Kevin's other courses

      Check out other courses by the instructor!

      Similar courses

      Explore other courses in the same field!