티스토리 뷰

기술 및 라이브러리 소개

RxJava란?

최초의 펭귄 2018. 5. 3. 18:00

안녕하세요. 오늘은 RxJava에 대해 소개하는 시간을 가지도록 하겠습니다.
이번 시간에는 RxJava에 대한 소개만 하고 다음 시간부터 코드와 함께 Observable, Subject 등에 대해 알아보겠습니다.

리액티브란?

RxJava는 리액티브 프로그래밍을 Java로 할 수 있도록 도와주는 라이브러리입니다.
그렇기에 RxJava를 잘 다루기위해서는 리액티브 프로그래밍의 개념과 이에 사용하는 다양한 클래스나 함수에 대한 이해가 필요합니다.
리액티브 프로그래밍이란 데이터의 흐름과 전달에 관한 프로그래밍 패러다임으로
프로그래머가 코드상으로 입력한 절차에 따라 순서대로 동작하는 명령형 프로그래밍과 달리
데이터의 흐름을 먼저 작성하고 데이터의 흐름에서 발생하는 다양한 이벤트에 따라 수식이나 함수가 실행되는 방식입니다.

보통 모바일 프로그래밍에서는 모델이나 UI이벤트의 변화에 따라 뷰를 자동으로 업데이터 하는 목적으로 사용합니다.

리맥티브 프로그래밍은 함수형 프로그래밍을 사용하며 순수함수를 지향합니다.

  • 순수함수 : 특정 입력에 특정 결과를 반환하는 사이드이펙트가 없는 함수

RxJava가 만들어진 이유

RxJava는 넷플릭스에서 만들었는데요. 넷플릭스는 RxJava를 만든 이유를 다음과 같이 밝혔습니다.

  1. 동시성을 적극적으로 끌어안을 필요가 있다.
  2. 자바 Future를 조합하기 어렵다는 점을 해결하여야 한다.
  3. 콜백 방식의 문제를 해결하여야 한다!

RxJava는 다양한 요청을 비동기로 생성하고 모든 값을 취합하여 최종 리턴하는 방식으로 진행됩니다.
RxJava는 비동기의 흐름을 조합할 수 있는 방법을 제공합니다. - 리액티브 연산자
RxJava는 콜백을 사용하지 않는 방향으로 설계되었습니다.

이처럼 3가지의 문제점을 해결하기 위해 RxJava가 나왔으며
이러한 편리성 때문에 많은 모바일 어플리케이션이 RxJava를 사용합니다!

어떠신가요? RxJava가 뭔지 조금 아시겠나요?
저도 많이 어렵습니다.... 그래도 최선을 다해 배워 정리하겠습니다!
많은 조언과 댓글 부탁드립니다!

위 글은 유동환, 박정준의 RxJava프로그래밍이라는 책을 기반으로 작성하였습니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday