반응형
우선 RxSwift를 이해하려면 동기/비동기에 대해 이해를 하고 있어야한다.
동기/비동기
- 동기: 순차적으로 작업을 수행
한 작업이 끝나면 다음 작업을 시작 - 비동기: 먼저 시작된 작업의 완료여부와는 상관없이 새로운 작업을 시작
동기 방식은 설계가 매우 단순한 대신 앞선 작업이 완료 되기 전까지 기다려야 하는 단점이 있고,
비동기 방식은 대기 시간 없이 작업을 진행하여 자원을 효율적으로 사용 할 수 있지만, 설계가 복잡하고 시간이 더 걸릴 수 있다.
동기와 비동기에 대해서 이 정도의 지식을 갖고 있으면 RxSwift를 이해하기에 조금 더 쉬울 것이다.
RxSwift란
Reactive Extension + Swift
Swift 언어에 ReactivX 를 적용시켜 비동기 프로그래밍을 직관적으로 작성할 수 있게 도와주는 라이브러리
사용 이유
기존 Swift에서도 Dispatch Queue를 사용해서 처리 할 수 있는데도 RxSwift 라이브러리 사용할까?
비동기 처리를 조금 더 간결하게 작성하기 위해서 사용한다.
더 자세히 얘기하자면
- 높은 가독성
일관성이 없는 비동기 코드를 해결해주고, 비동기를 동기처럼 사용할 수 있다. - 간결성
코드가 깔끔해진다. - 비동기 처리
Observable 방식을 이용해 비동기 처리를 할 수 있다.
Observable
Observable은 단어 뜻 그대로 '관찰 할 수 있는' 어떤 것이라고 생각할 수 있다.
ReactiveX에서 옵저버는 Observable을 구독한다. Obseravable이 배출하는 하나 또는 연속된 항목에 옵저버는 반응한다. 이러한 패턴은 동시성 연산을 가능하게 한다. 그 이유는 Observable이 객체를 배출할 때까지 기다릴 필요 없이 어떤 객체가 배출되면 그 시점을 감시하는 관찰자를 옵저버 안에 두고 그 관찰자를 통해 배출 알림을 받으면 되기 때문이다.
공식 사이트에선 위 처럼 설명하고 있다.
Observable 객체는 어떤 객체를 관찰 할 수 있는 형태로 만드는 것이고,
Observable 객체를 생성함으로 Observer는 관찰(구독)하기 시작한다.
쉽게 메뉴판에 올라와있는 음식 하나를 Observable 객체라고 설명할 수 있을 거 같다.
참고한 사이트
- https://janechoi.tistory.com/11
- https://jazz-the-it.tistory.com/21
- https://reactivex.io/documentation/ko/observable.html
틀린 내용이 있으면 언제든지 댓글로 얘기해주세요
반응형
'iOS > RxSwift' 카테고리의 다른 글
| Subject의 종류 (1) | 2024.06.04 |
|---|---|
| Subject에 대해 (0) | 2024.04.20 |
| Hot Observable VS Cold Observable (0) | 2024.04.20 |
| Observable, Observer, Subscribe에 대해 (2) | 2024.04.08 |