RxSwift 시작하기(ReactiveX) - 1

DevelopRecord·2022년 7월 16일
0

RxSwift

목록 보기
1/7

오늘부터 RxSwift에 대한 개념부터 operator들에 대한 개념들까지 하나하나 짚어가면서 알아보려고 해요.

들어가기에 앞서..

Rx란?

ReactiveX의 준말이며, Reactive가 갖는 사전적 의미는

반응을 보이는

이라는 뜻이라고 합니다. 파파고 좋아요.

An API for asynchronous programming with observable streams

번역하자면..
비동기 프로그래밍을 위한 API. 관찰가능한 흐름으로.

말처럼 흐름을 비동기적으로 관리하는 비동기 프로그래밍 방식이라고 해요.

비동기 프로그래밍을 위한 API

우리가 비동기적으로 관리해야 하는 것은 어떤게 있을까요?

저는 앱과 서버간의 통신을 할 때가 생각이 나는데,

어떠한 데이터를 서버에 데이터를 받아오는데 오래걸릴지 금방 될지 예측이 불가합니다.

그 경우에 비동기적으로 처리하는데요.

만약 비동기로 처리하지 않는다면 서버에 데이터를 받아오는 동안 앱은 데이터를 받아오는 동안 멈출 것이고 데이터를 전부 받아올 때까지 사용자가 액션을 줘도 반응하지 않겠죠.

이런 결과는 개발자로써 또 사용자를 위해서도 절대 피해야 하는 흐름입니다.

위에서 observable 키워드를 살펴보면 아래의 의미로 해석할 수 있어요.

관찰가능한
observable을 사용하는 예를 들면,

배열의 element를 for문으로 하나하나 관찰하다가 짝수값이 감지되었을 때
이런 케이스에서 관찰할 수도 있을 것 같아요.

let arr: [Int] = [1, 3, 5, 6, 9]

ReactiveX는 낮은 수준의 스레딩, 동기화, 스레드 안정성, 동시 데이터 구조 및 I/O 차단
이라는 많은 장점을 가지고 있다고 합니다.

우리가 Rx를 사용하지 않고 비동기적으로 처리한다면,

여기는 OperatorQueue, 저기는 DispatchQueue 이런식으로 중구난방하게 코드가 작성되고 일관성이 없어지겠죠.

나름 정리를 한다고 했는데 저도 RxSwift를 배우면서 글을 쓰느라 다른 분들 글보단 전문성이 떨어지네요...ㅠㅠ

지적은 얼마든지 해주시면 감사하겠습니다.
다음은 Operator들에 대해 하나씩 알아보겠습니다.

참고 레퍼런스

마기님

0개의 댓글