Thumbnail
BEST
개발 · 프로그래밍 프로그래밍 언어

Kevin의 알기 쉬운 RxJava 1부 대시보드

(4.9)
47개의 수강평 ∙  687명의 수강생

44,000원

지식공유자: Kevin
총 18개 수업 (7시간 30분)
수강기한: 
무제한
수료증: 발급
난이도: 
입문
-
초급
-
중급이상
지식공유자 답변이 제공되는 강의입니다
폴더에 추가 공유

초급자를 위해 준비한
[프로그래밍 언어] 강의입니다.

리액티브 프로그래밍이라는 진입 장벽을 넘고 싶으신가요? Kevin의 알기 쉬운 RxJava가 그 벽을 넘을 수 있는 힘을 키워드리겠습니다.

✍️
이런 걸
배워요!
리액티브 프로그래밍의 확실한 기본기
선언형 프로그래밍의 이해
RxJava를 사용한 비동기 프로그래밍
Java 함수형 인터페이스와 람다 표현식
마블 다이어그램을 통한 리액티브 연산자 이해하기
퀴즈를 통한 리액티브 연산자 심화 학습

리액티브 프로그래밍, 알기 쉽고 확실하게 배워보세요!

 

리액티브 프로그래밍이란 무엇일까요?

  • 좁은 의미로는 복잡한 비동기식 요청을 효과적으로 처리하기 위한 비동기 프로그래밍을 위한 API라고 할 수 있습니다.
  • 넓은 의미로는 실행할 동작을 구체적으로 명시하는 명령형 프로그래밍 방식과 반대되는 개념인 선언형 프로그래밍의 패러다임이라고 할 수 있습니다.
  • 리액티브 프로그래밍은 클라이언트의 요청에 즉각적으로 반응하도록 설계된 리액티브 시스템에 빼놓을 수 없는 프로그래밍 모델입니다.
  • 리액티브 프로그래밍은 비동기 통신이 필요한 대부분의 개발 언어 및 프레임워크에서 폭넓게 사용을 하고 있습니다.
    ex) Angular, React 등에서의 RxJS, Java에서의 RxJava, Android 에서의 RxAndroid, Spring Framework에서 사용하는 Reactor, RxScala 등 리액티브 확장이 광범위하게 사용되고 있습니다.

 

리액티브 프로그래밍을 왜 배워야 할까요?

  • 리액티브 프로그래밍은 비동기 요청을 효과적으로 처리하기 위한 개발 패러다임이라고 말씀을 드렸습니다.
  • 오늘날의 애플리케이션은 동기적인 요청보다 비동기적인 요청을 처리하는 비중이 점점 더 높아지고 있습니다.
  • Java의 쓰레드를 사용한 비동기 프로그래밍은 복잡도가 상당히 높으며, 예상치 못한 에러가 발생할 가능성 역시 높은 것이 사실입니다.
  • 리액티브 프로그래밍은 이렇게 쓰레드를 직접적으로 사용하면서 발생하는 문제를 대신 해결해주고, 비동기 프로그래밍에 대한 복잡도를 단순화해줍니다.
  • 하지만 선언형 프로그래밍 방식에 적응하기 위한 일정 수준의 시간이 필요합니다.
  • 그래서 어느 정도의 진입 장벽이 있는 것 또한 사실입니다. 하지만 여러분들이 넘지 못할 장벽은 아니라고 생각합니다.
  • 결정적으로 리액티브 프로그래밍을 통해 여러분의 개발 스킬이 한단계 향상됨은 물론이고, 개발자로서 개발에 대한 사고 방식의 전환을 경험할 수 있는 훌륭한 계기가 될 것이라고 생각합니다. 

 

1부 강의에서는 어떤 것들을 배울 수 있을까요?

  • Kevin의 알기 쉬운 RxJava 1부에서는 제일 먼저 리액티브 프로그래밍이란 무엇인가에 대해서 쉬운 예를 들어 설명을 합니다. 어떤 프로그래밍 언어이든지 간에 해당 언어의 큰 틀 안에서의 특징을 이해하고 학습을 시작하는것은 대단히 중요하다고 생각합니다.
  • 리액티브 프로그래밍에서 빼놓을 수 없는 마블 다이어그램을 보는 방법을 그림으로 최대한 쉽게 설명을 하여 수강생들이 혼자서도 마블 다이어그램을 이해할 수 있도록 노력하였습니다.

 

[마블 다이어그램 보는 법 강의 자료 캡쳐]

 

  • RxJava는 리액티브 프로그래밍의 스펙인 Reactive Streams의 구현체인데요. 이 Reactive Streams에서 정의한 Publisher와 Subscriber 간의 동작 흐름을 그림을 통해 쉽게 이해할 수 있도록 했습니다.

 

[Publisher와 Subscriber간의 동작 흐름 강의 자료 캡쳐]

 

  • Flowable과 Observable의 결정적인 차이점인 배압(Back Pressure)에 대해서 최대한 쉽게 설명합니다.

 

[배압의 개념에 대한 강의 자료 캡쳐]

 

  • RxJava에서 사용되는 함수형 프로그래밍에 대한 기본적인 개념을 배워봅니다. Java 8에서 새롭게 도입된 함수형 인터페이스와 람다 표현식은 RxJava에서 광범위하게 사용되는 프로그래밍 기법으로 그 개념을 꼭 이해하고 넘어갈 수 있도록 기본적인 개념을 쉽게 설명합니다.
  • RxJava에서 사용되는 연산자(Operator)함수에 대해서 설명을 하고 RxJava 1부를 마무리합니다. RxJava는 연산자 함수로 시작해서 연산자 함수로 끝난다고해도 과언이 아닐 정도로 연산자 함수는 RxJava에서 가장 중요한 부분입니다. 이번 강의에서 연산자 함수의 유형별로 다양한 연산자 함수를 마블 다이어그램 함께 이해하고, 예제 코드를 직접 실행시켜보면서 각각의 연산자 함수들이 어떤 기능을 하고 어떤식으로 동작하는지 이해시켜 드릴 생각입니다.

 

저희 강의의 특징은 무엇일까요?

  • 초급자의 눈높이에 맞춰서 리액티브 프로그래밍의 핵심 개념을 최대한 쉽게 이해시키고자 노력하였습니다.
  • 단순히 강의 자료의 설명만으로 그치지 않고, 수업마다 해당 수업의 예제 코드에 대한 설명이 무조건적으로 뒤따라옵니다. 다시 말해서 강의 자료만으로 이해되지 않는 부분은 예제 코드로 구체적으로 설명하고, 예제 코드를 직접 실행해서 결과를 확인하여 이해할 수 있도록 노력하였습니다.
  • 퀴즈가 필요한 chapter에는 퀴즈를 제공하여 수강생들이 해당 강의를 복습하면서 자신의 것으로 만들 수 있는 시간을 가질 수 있도록 하였습니다.
  • 강의에서 사용한 모든 예제 코드를 github(https://github.com/ITVillage-Kevin/rxjava)에 제공하여 수강생들이 예제 코드를 직접 타이핑하고 코드를 실행하여 결과를 확인하는데 참고할 수 있도록 하였습니다.

 

강의를 듣기 전에 무엇을 준비해야 할까요?

  • 당연한 이야기이겠지만 사용하시는 PC나 노트북에 JDK 1.8 이상이 설치되어있어야 합니다.
  • 저희 강의에서는 개발 툴로 IntelliJ IDE를 사용하였습니다. 강의에서 IntelliJ를 기반으로 한 실습 환경 구축을 설명드리기는하지만 IntelliJ에 익숙하지 않으신 분들은 기존에 사용하고 계시는 IDE로 실습을 하셔도 상관은 없습니다.
  • 저희 강의를 듣기 위해서 여러분들이 준비해야하는 가장 중요한 준비물은 다름 아닌 새로운 기술을 배우고자 하는 의지와 결코 포기하지 않는 끈기입니다. ^^

여러분들의 의지와 끈기를 저에게 보여주세요. 여러분들이 RxJava의 진입장벽 위에 올라설 수 있도록 저도 최선을 다해서 도와드리겠습니다.

 

여러분들은 어떤 것들이 궁금하신가요?(Q&A)

Q. 비전공자도 들을 수 있나요?
A. 전공/비전공과는 무관합니다. Java에 대한 기본 지식이 있다면 누구나 수강 가능하다고 생각합니다. 참고로 저도 처음 시작은 비전공자였습니다. ^^

Q. RxJava를 배우면 무엇이 좋은가요?
A. 앞서 소개글에서도 말씀드렸지만 RxJava를 배우면 복잡한 비동기 프로그래밍을 단순화할 수 있으며, 덧붙여서 명령형 프로그래밍 방식이 아닌 선언형 프로그래밍을 통해 프로그래밍에 대한 사고의 전환을 할 수 있습니다. 더 나은 개발자로 성장하는것은 덤이겠죠?^^ RxJava를 학습하고 나면 리액티브 프로그래밍의 기본기를 확실히 다질 수 있기 때문에 RxJs, RxAndroid, Spring Reactor 등을 학습하기가 훨씬 수월해집니다.

Q. 강의는 어떤 방식으로 진행이 되나요?
A. 대부분의 수업이 강의 자료를 통한 개념 이해 → 예제 코드를 통해 개념을 눈으로 직접 확인하는 방식으로 진행이 되고, 퀴즈가 필요한 수업에는 수강생들이 직접 퀴즈를 풀어서 해당 수업의 내용을 자신의 것으로 만들 수 있도록 수업이 끝나기 전에 퀴즈를 제시했습니다.

Q. 강의에서 사용된 원본 예제 코드는 어디에서 다운로드받을 수 있나요?
A. 수업에서 설명하는 예제 코드는 모두 github에 올라가있으며 아래 주소에서 다운로드 받으실 수 있습니다.
• 예제 원본 소스 코드:
https://github.com/ITVillage-Kevin/rxjava

새 프로젝트를 만들어서 예제코드를 직접 타이핑 해보시는 분들은 github 예제 코드에서 common 패키지와 utils 패키지를 꼭 복사/붙여넣기 하신 후, 코드를 작성 하시길 부탁 드리겠습니다.

Q. 강의 자료는 어디에서 다운로드받을 수 있나요?
A. 각 섹션의 수업마다 수업에 사용한 강의 자료를 첨부 파일로 등록해 두었으니 필요하신 분은 다운로드 받아서 참고하시면 되겠습니다.

Q. 강의 자료 이외에 추천해주실 만한 참고 자료가 있을까요?
A. 리액티브 프로그래밍을 학습하는 데 있어 도움이 될만한 사이트는 아래에서 확인하시면 되겠습니다.

http://reactivex.io/ 
리액티브 프로그래밍의 공식 사이트로 리액티브 프로그래밍의 기본기를 다지고 난 후에 참고하기 정말 좋은 사이트라고 생각합니다.

https://github.com/reactive-streams/reactive-streams-jvm
RxJava는 Reactive Streams를 구현한 구현체라고 할 수 있는데요. 이 Reactive Streams의 스펙을 정의해 둔 github 공식 자료입니다.

https://gist.github.com/casamia918/93b8db69beb9ee06b92a96b2a234d48e
리액티브 프로그래밍에 대해서 한국어로 잘 번역된 github 자료인데요. 한국어로 번역해주셔서 너무 감사하다는 말씀 전하고 싶네요.

https://rxmarbles.com/
리액티브 프로그래밍의 핵심중에 핵심이라고 할 수 있는 연산자(Operator)들을 마블 다이어그램으로 잘 정리해 놓은 자료입니다.

http://reactivex.io/RxJava/2.x/javadoc/
마지막으로 RxJava의 공식 javadoc 문서입니다. 2020년 현재 RxJava 3.0이 릴리즈되었기는 하나 3.0에서는 새로운 연산자 함수들이 많이 추가되었다고 단순하게 생각하시고 2.x 버전으로 개념을 확실히 잡은 다음에 3.0으로 넘어가는 게 좋을 것이라고 생각됩니다.

 

이런 분들께 추천드려요!

🎓
학습 대상은
누구일까요?
Java의 비동기 프로그래밍을 쉽게 구현하고 싶은 분들
선언형 프로그래밍 방식을 쉽게 이해하고 싶은 분들
리액티브 프로그래밍이라는 진입 장벽을 넘어보고 싶은 분들
Spring Boot에서 Reactor, WebFlux를 더 잘 활용하기 위해 리액티브 프로그래밍의 기본기를 확실히 다지고 싶은 분들
[Kevin의 알기 쉬운 Java 개발자 로드맵 이야기] 강의를 기억해주시는 분들
📚
선수 지식,
필요할까요?
Java
동기 프로그래밍과 비동기 프로그래밍의 차이

안녕하세요
Kevin 입니다.
Kevin의 썸네일

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

 

커리큘럼 총 18 개 ˙ 7시간 30분의 수업
이 강의는 영상, 수업 노트, 첨부 파일이 제공됩니다. 미리보기를 통해 콘텐츠를 확인해보세요.
섹션 1. 실습 환경 구축
섹션 2. 리액티브 프로그래밍 구성 요소와 친해지기
리액티브 스트림즈(Reactive Streams)란? 17:53
Observable과 Flowable에 대한 이해 51:41
Single, Maybe, Completable 18:15
섹션 3. Java에서의 함수형 프로그래밍 기본 지식
함수형 인터페이스와 람다의 개념 파악 26:18
메서드 레퍼런스란? 16:44
섹션 4. 리액티브 연산자(Reactive Operators)에 익숙해지기
리액티브 연산자 개요 및 생성 연산자 27:47
데이터 필터링 연산자 25:55
변환 연산자 (1) 34:28
변환 연산자 (2) 20:59
결합 연산자 41:07
에러 처리 연산자 21:37
retry 연산자 추가 설명 05:34
유틸리티 연산자 32:27
조건과 불린 연산자 32:44
데이터 집계 연산자 25:47
강의 게시일 : 2020년 08월 24일 (마지막 업데이트일 : 2020년 08월 24일)
수강평 총 47개
수강생분들이 직접 작성하신 수강평입니다.
4.9
47개의 수강평
5점
4점
3점
2점
1점
VIEW 추천 순 최신 순 높은 평점 순 낮은 평점 순 평점 순 높은 평점 순 낮은 평점 순
윤지상 thumbnail
5
RxJava 를 이해하기 위해 다른 책들을 많이 봤지만, 번역책들은 도통 이해가 되지 않아 문서로만 공부를했었는데.. 이 강의는 정말 이해하기 좋은 구성입니다. 문서보면서 공부하시는 분들의 시간을 단축하기 위한 아주 좋은 강의라고 생각합니다.!! RxKotlin 도 보강된 강의 내용이 있었으면 좋겠습니다!!
2021-01-20
지식공유자 Kevin
도움이 되셨다고 하니 저도 기쁘네요.ㅎ 어떤 기술이든 큰 틀을 잡는 개념은 정말 중요하다고 생각하기 때문에 최대한 이해하기 쉽도록 구성을 하려고 나름 노력을 하긴했습니다. ^^ 그 후의 응용은 수강생들 몫이라고 생각합니다. 저보다 더 잘 하실꺼에요. 감사합니다.
2021-01-20
태오 thumbnail
5
강좌를 통해 RxJAVA를 이해해하는데 많은 도움이 되었습니다. 각 강좌에서 시작과 마무리, 다음 강의에 대한 설명, 쉽고 핵심적인 설명과 강의자료, 예제코드 등, 강좌를 들으면서 준비를 많이 하셨겠다는 생각을 하게되었습니다. 특히 연산자에 대한 설명은 실제 발생할 수 있는 가상의 data를 사용하셔서, 어떤 상황에서 해당 연산자를 사용하면 좋을지 상상하는데 도움이 많이 되었습니다. 아직은 제가 생산자와 소비자가 subscribe를 왜 동시게 갖고 있는지 혼동되어, 강좌를 다시 볼 때, 해당 부분을 유의해서 보려고 합니다. 좋은 강의 제공해 주셔서 감사의 말씀을 드립니다.
2020-10-04
지식공유자 Kevin
이 강의를 만든 가장 큰 목표 중에 하나가 리액티브 프로그래밍에 쉽게 입문할 수 있도록 도움 드리자는건데 제 의도를 정확하게 알고계신거 같아서 얼굴이 화끈거리네요. ^^;; 도움 되셨다니 너무 다행이구요. 현실세계에서 생산자와 소비자는 대부분 분리되어 있지만 소프트웨어 세계에서는 생산자의 객체를 통해서 구독을하고 데이터를 전달 받는게 익숙하지 않은게 당연한데요. 리액티브 프로그래밍을 사용한 서버/클라이언트 통신을 접해보시면 이 부분이 조금 더 명확해진다는 사실 말씀 드리고 싶네요. 리액티브 프로그래밍에 발을 들이실 수 있게 된거 같아서 참 기쁩니다. 그럼 또 뵙겠습니다. 감사합니다~
2020-10-04
Jinyong Kwon thumbnail
5
강사님! 훌륭한 강의 감사합니다. 어려운 내용 이해하기 쉽게 잘 설명해주셔서 도움이 많이 되었습니다. 덕분에 잘 배우고 갑니다.
2020-09-15
지식공유자 Kevin
조금이라도 도움 되셨다니 다행이네요.^^ 감사합니다!
2020-09-15
Jaeyoung Park thumbnail
5
reactiveJAVA의 Observable 에서 쓰이는 다양한 연산자들을 예제와 함께 실제 사용법까지 직접 연습할수 있는 좋은 강의임. 여기서 나온 예제들만 잘 습득하고 레퍼런스만 잘 쌓아놔도 실전에서 유용하게 참고할수 있을듯.
2021-11-25
Kevin thumbnail
5
안녕하세요! 강사입니다. 제가 첫번째 수강 후기를 남기게 되었네요. ^^ 제가 만든 강의지만 저도 끝까지 수강을 하였기에 별점과는 상관없이 객관적인 수강평을 주관적으로 남겨보겠습니다. 마이크에서 나온 잡음은 거의 제거했지만 제 말소리에서 나오는 잡음은 여전히 좀 남아있더라구요. ^^; 새로운 강의를 만들면서 점점 나아지도록 노력하겠으니 너그럽게 봐주시면 감사드리겠습니다. 개인적인 생각으로는 리액티브 프로그래밍의 개념을 잡기에 나쁘지 않은 강의라 생각하며, 자바 개발의 대세인 Spring 에서 WebFlux를 사용하기 위해 미리 들어두면 괜찮은 강의라 생각합니다. ^^ Reactor와 WebFlux에 대한 얘기는 [새소식] 공지에서 이따금씩 하도록 하겠습니다. 그럼 강의에서 또 뵈어요 수강생 여러분! ^^;;
2020-08-27
연관 로드맵
이 강의가 포함된 잘 짜여진 로드맵을 따라 학습해 보세요!