강의

멘토링

커뮤니티

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) 51 reviews

738 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,340

Learners

235

Reviews

108

Answers

4.8

Rating

7

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

51 reviews

4.9

51 reviews

  • Kevin님의 프로필 이미지
    Kevin

    Reviews 3

    Average Rating 5.0

    5

    94% enrolled

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

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

      Reviews 1

      Average Rating 5.0

      5

      100% enrolled

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

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

        Reviews 3

        Average Rating 5.0

        5

        100% enrolled

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

        • Kevin
          Instructor

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

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

        Reviews 1

        Average Rating 5.0

        5

        94% enrolled

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

        • Kevin
          Instructor

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

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

        Reviews 1

        Average Rating 5.0

        5

        39% enrolled

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

        • Kevin
          Instructor

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

      Limited time deal

      $33,000.00

      25%

      $34.10

      Kevin's other courses

      Check out other courses by the instructor!

      Similar courses

      Explore other courses in the same field!