-
[RxSwift] RxSwift 란 무엇일까 ?/RxSwift 2025. 2. 25. 15:03반응형
안녕하세요 아렉스입니다 :>
이번 포스팅에서는 RxSwift가 를 무엇인지 얘기해보겠습니다.
ReactiveX(Rx)란?
최초에는 Microsoft에서 개발하여 후에 오픈 소스로 공개되면서, 현재 관리 주체는 오픈 소스 커뮤니티입니다.
ReactiveX는 비동기 데이터 스트림을 다루는 반응형 프로그래밍(Reactive Programming) 패러다임이 적용된 라이브러리입니다.
이벤트를 스트림(Stream) 형태로 지원하며, 옵저버 패턴을 확장하고 저수준 스레딩, 동기화, 스레드 안전, 동시 데이터 구조 및 비차단 I/O와 같은 것들에 대한 고민들을 추상화하여 시퀀스를 선언적(Declarative)으로 구성할 수 있는 연산자(Operator)를 제공합니다.
RxSwift란?
RxSwift는 Reactive Extensions의 Swift 구현으로, Swift 버전의 Rx를 뜻합니다.
비동기 데이터 흐름을 선언적으로 다루는 데 도움을 주고, UI Event 처리, 네트워크 요청 등 다양한 비동기 작업을 용이하게 한다.이를 통해 조금 더 간결하고 유지보수하기 쉬운 코드를 작성 가능.
RxSwift의 3가지 요소?
RxSwift 를 이해하기 위한 주요 개념 3가지를 설명해보겠습니다.
실제로 구현 된 타입과 별개로 개념적인 부분이기 때문에 혼동 없길 바랍니다.
1. Observable 과 Observer
- Observable: 데이터(emit) 혹은 시퀀스를 방출하고, 이벤트를 발생시켜 Observers에게 전달하는 스트림이다.
- Observer: Observable이 방출하는 데이터나 시퀀스와 이벤트에 대해 onNext, onError, onCompleted 등을 통해 반응
2. subscribe
- Observer와 Observable 연결해주며, Observable을 구독하고 이벤트에 대해 반응하는 핸들러를 제공하는 메서드.
3. Operator Chain
스트림과 이벤트를 구독과 방출하는 것 이외에 RxSwift를 더 풍부하게 만드는 것은 연산자(Operator)가 있습니다.
선언적으로 사용 가능하며, 개발 편의성을 증대시킨 것에는 Operator chain이 있습니다.
- 대부분의 연산자들은 Observable 상에서 동작하고 Observable을 리턴한다.
- 빌더 패턴과 비슷한 방식으로 제공하며, Observable 연산자들은 호출 순서에 영향을 받는다.
RxSwift를 공부하며 느낀 점
기존과 다른 언어나 프레임워크를 학습시에 듣는 얘기가 있습니다.
'~~OO답게 사용해야해요.'
그렇다면 RxSwift를 RxSwift 답게 사용하라는 것은 무슨 말일까요 ? 저 또한 많은 고민을 했었는데요.
현제 제 생각은 적용 된 패턴과 패러다임을 이해하고 사용하는 것이 핵심이라고 생각합니다.
RxSwift에는 패턴과 패러다임들로 이루어져있을까요 ?
' > RxSwift' 카테고리의 다른 글
[RxSwift] dispose, disposed(by:), DisposeBag 역할과 매커니즘에 대해 (0) 2025.03.03 [RxSwift] “Hot” Observables, “Cold” Observables (0) 2025.02.28 [RxSwift] RxSwift를 이루는 Observable과 Observer (0) 2025.02.26