목록RxSwift (9)
개발콩블로그

안녕하세요! 개발콩입니다. 🧑🏻🌾🫛RxSwift를 처음 배웠을 때에는 단순히 사용만해봤다.. 잘 모르겠다..! 라는 느낌이 강했던 것 같습니다.이번에는 공부를 하면서 조금 더 어떤 원리로 동작하는지.. 어떠한 경우에 사용해야하는지 이유를 찾으며 공부를 하니이제는 그래도 RxSwift를 알고 사용합니다! 라고 말할 수 있을 것 같아요!Custom Observable을 직접 만들어보고 왜 그런지 내부 코드를 확인해보며 공부하는 것은 약간은 어려움이 있지만그래도 조금 더 보람차고 원리를 이해하게 되는 것 같습니다! 오늘은 RxSwift의 Dispose와 관련된 내용을 학습하려고 합니다! Disposable구독중인 Stream을 원하는 시기에 정리할 수 있는 타입입니다. 우리는 subscribe m..
안녕하세요 개발콩입니다 !😊RxSwift와 같은 기술스택은 알고 사용하는 것이 중요한 것 같습니다.오늘은 Cold vs Hot Observable과 Unicast vs Multicast에 대해서 알아보도록 하겠습니다. 구독 시점과 이벤트 방출 시점에 따라 달라지는 것이 Cold-Hot Observable입니다. Cold Observable구독이 발생할 때까지 기다렸다가 이벤트를 방출합니다.처음부터 모든 데이터 stream을 확인할 수 있습니다. 따라서 각 subscriber가 구독을 시작한 시점에 동일한 데이터 stream을 받을 수 있습니다. Cold Observable의 특성을 갖고있는 Observable 타입으로 예시를 확인해보겠습니다.let coldObservable = Observable.ju..

안녕하세요 개발콩입니다. 😁요즘 날씨가 많이 따뜻해지고 있는 것 같습니다.봄이 온다는 것은 약간의 설레임을 불어오는 것 같아요. 오늘은 RxSwift에서 구독을 하는 다양한 방법(subscribe, bind, drive)을 알아보도록 하겠습니다.지난 게시글에서는 Observable과 Observer의 역할을 하는 Subject, Relay에 대해서 알아보았습니다.이러한 차이점을 이해하고 구독을 하는 다양한 방법에 대해 선택하는 것은 중요할 것 같습니다.바로 시작해볼까요? 상황 설정아래 모든 상황에 대한 가정은 다음과 같습니다.네트워크 통신에 대해서 이벤트가 방출됩니다. (비동기 상황에서 값이 들어옵니다.)해당 이벤트에 대한 처리를 하여 UI에 반영해야합니다. Subscribelet publishSu..
안녕하세요 개발콩입니다!오늘은 Observable과 Observer의 역할을 하는 Relay에 대해서 알아보도록하겠습니다. 오늘 소개하는 Relay는 지난 글에서 소개했던 Subject와 역할이 매우 유사합니다.이벤트를 방출하는 Observable의 역할을 수행할 수 있습니다.이벤트를 받고 처리하는 Observer의 역할을 수행할 수 있습니다. 하지만 Relay는 Subject와는 다른 큰 차이점이 있습니다.complete 이벤트를 받을 수 없습니다.error 이벤트를 받을 수 없습니다.그렇기 때문에 Relay는 next 이벤트(accept)만 처리할 수 있습니다. 왜 Relay를 사용해야할까?이와 비슷한 Subject를 사용하는 예시를 생각해봅시다.우리는 Subject에서 방출된 이벤트를 처리하..
안녕하세요 개발콩입니다!RxSwift는 사용하는 것도 중요하지만 잘 알고 적절하게 사용하는 것이 중요한 것 같습니다.오늘은 Subject에 대해서 알아보도록 하겠습니다. Subject이벤트 방출하는 Observable의 역할을 수행할 수 있습니다.이벤트를 받고 처리하는 Observer의 역할을 수행할 수 있습니다.Subject의 종류에는 4가지가 있습니다.PublishSubjectBehaviorSubjectReplaySubjectAsyncSubject4가지의 Subject에 대해서 알아보도록 하겠습니다. PublishSubject초기값이 없습니다.구독 이후의 시점부터 방출되는 이벤트를 처리할 수 있습니다.let publishSubject = PublishSubject()publishSubject ..
안녕하세요 개발콩입니다!오늘은 ObservableType과 ObserverType에 대한 글을 작성해보도록 하겠습니다. 바로 Observable과 Observer가 채택하는 프로토콜을 알아볼까요?ObservableType Protocolpublic protocol ObservableType: ObservableConvertibleType { func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element}extension ObservableType { public func subscribe(_ on: @escaping (Event) -> Void) -> Disposable { let obser..

안녕하세요 개발콩입니다.오늘은 RxSwift의 시작인 Observable과 Observer에 대해서 소개하고자 합니다. ReactiveXObservable streams을 활용하는 비동기 프로그래밍을 위한 API 우리가 작성한 코드가 1부터 1000까지 진행된다고 가정했을 때,대부분의 코드는 1부터 1000까지 순서대로 동작하지 않습니다. 예를들어 특정 상황에서 버튼이 클릭되었다면? 검색어가 입력되었다면?이런 경우에는 미리 작성해둔 특정한 코드 구간이 실행될 것입니다. 우리는 이러한 상황을 처리하기 위해서 아래 4가지 방법을 이용해왔습니다.ClosureGCD(Grand Central Dispatch)DelegateNotification Center이러한 방법을 조금 더 쉽고 편리하게 제공하는 것이 R..

안녕하세요!개발콩입니다. 오늘은 RxSwift operator 중 throttle와 debounce에 대해서 소개하도록 하겠습니다. 왜 필요할까?우리는 앱에서 기능 개발을 할 경우 아래와 같은 상황을 마주하게 될 수 있습니다.검색 버튼을 클릭하게 된다면 네트워크 요청을 합니다.검색어의 입력값이 변하게 될 때마다 네트워크 요청을 합니다. 이 두가지의 경우에는 모두 사용자가 반복적으로 여러번 입력할 수 있다는 것 입니다.if) 사용자가 버튼을 짧은 시간 내에 연타하게 된다면?if) '사과'를 검색하기 위해서 ㅅ, 사, 삭, 사고, 사과 와 같이 짧은 시간 내의 5번의 변화가 일어나게 된다면? 불필요한 네트워크 요청을 하게 되고 이것은 서버에 부담이 될 수 있습니다.이때 고려해볼 수 있는 것이 RxSwift ..