본문 바로가기

분류 전체보기

(205)
[🔥Rx뿌셔] Subject VS Observable Subject VS Observable Subject는 Observable과 Observer의 역할을 모두 할 수 있는 Observable이라고 생각하면 된다. Observable이나 Subject모두 이벤트를 emit하므로 subscribe 할 수 있다. 다만, subscribe에서 차이가 발생하는데, Subject는 multicast 방식이므로 여러 개의 Observer를 subscribe할 수 있다. 단순 Observable은 unicast 방식이므로 observer 하나만을 subscribe할 수 있다. Observable - unicast let observableInt = Observable.create { observer in observer.onNext(Int.random(in: 1...1..
[🌱SeSAC] Disposable, Observable, Subject Disposable Disposable은 subscribe 중인(= 구독중인) stream을 원하는 시기에 처리할 수 있도록 도와준다. 모든 Observable은 Disposable을 반환한다. 이를 통해서 stream을 종료하고 실행되고 있던 시퀀스를 모두 종료한다. Observable의 next 이벤트 emit이 끝나면, (= 모든 이벤트가 방출되면) completed에서 disposed로 시퀀스가 정상적으로 종료된다. 하지만, interval 코드 등과 같이 별다른 조건 없이 무한하게 emit 될 수 있는 상황에서는 disposed 되지 않는다. 클래스의 메모리가 해제되는 시점, 즉 deinit이 되는 시점에서 disposable이 되지만, 만약 (루트 뷰가 변하지 않는 상황에서의) RootView..
[iOS] Unsplash Search photos (feat.MVVM, Rx, CollectionViewAPI) + 코드 수정 우하하!!! 다 적용해보자!!! 사실 이게 맞는 방법인지는 잘 모르겠지만 .. 일단 가보자고 .. ~ https://unsplash.com/documentation#search-photos Unsplash API Documentation | Free HD Photo API | Unsplash Getting started This document describes the resources that make up the official Unsplash JSON API. If you have any problems or requests, please contact our API team. Creating a developer account To access the Unsplash API, first join...
[🔥Rx뿌셔] Disposable dispose .. disposeBag .. 뭣이 중헌디 .. Observable을 구독할 때 필수로 사용해야 하는 dispose와 disposeBag에 대해서 알아보자 !!! 왜 알아야 하는데?! 다 피가 되고 .. 살이 된다 .. Rx로 코드를 작성하다 보면, 방출된 이벤트를 처리할 때 dispose를 하지 않을 시 아래 이미지와 같은 경고 메시지가 발생하는 것을 볼 수 있다. 물론 그냥 .. 경고 메시지니까 .. 실행에는 큰 문제가 없을 것이라고 판단하여 넘어갈 수 있지만 .. 그렇지 않다 !!! 경고 메시지를 보게 되면 우리가 어떤 Observable을 .subscribe를 통해 구독하게 되면 해당 Observable은 Disposable을 반환한다. 위의 이미지에서 볼 수 있는 것처럼 subsc..
[🔥Rx뿌셔] Subscribe Observable에서 이벤트를 방출하면 이를 구독하고 있는 Observer가 해당 이벤트에 대한 처리를 한다. 이때 구독을 어떻게 하는가? .. 바로 subscribe 메서드를 통해서 할 수 있다. 🔔 구독 좋아요 알림 설정까지 ~ 가 아니고 .. 구독을 의미하는 메서드가 위에서 말한 것과 같이 바로 subscribe 이다. 어떤 Observable을 subscribe하려고 하면 아래와 같이 Observable이 방출하는 이벤트에 대해서 처리할 수 있도록 함수가 나온다. 그리고 해당 자동 완성된 메서드를 받아오면, 위와 같이 Observable에서 방출한 아이템에 대한 처리를 할 수 있다. 만약 제대로 이벤트가 방출되어 온다면, 첫번째 코드블럭으로 이벤트가 들어가게 되고 이 코드 블럭이 실행된다. 그러..
[🔥Rx뿌셔] Observable Rx의 핵심 개념은 유튜버와 구독자의 관계를 생각하면 된다. 구독자들이 어떠한 Observable이라는 유튜버를 구독하고 유튜버가 영상을 올리면, 즉 이벤트를 방출하면 이를 감지해서 지금 시청하거나 보관함에 넣거나 등의 액션을 취하는 것이다. Observable이란? 사전적인 의미는 관찰 가능한 이라는 의미를 갖고 있다. Observable이 이벤트를 방출하고 구독자가 이 이벤트를 관찰할 수 있다.는 것에서 그 의미를 찾을 수 있다. (시간의 흐름에 따라서 이벤트를 관찰할 수 있다.) Event Type Observable이 방출하는 이벤트에는 크게 네 가지 타입이 존재한다. 이 네가지 타입에 대해 Observable을 구독한 구독자는 이벤트를 전달받고 각 상황에 따라서 액션을 취하게 된다. onNext..
[🔥Rx뿌셔] Intro 마블 다이어그램 Rx에서 자주 나오는 그림? 개념? 중 하나는 마블 다이어그램이다. 시퀀스에 대한 모든 마블 다이어그램은 여기서 확인할 수 있다. 도대체 이게 뭔데!? 간단히 말해서, 시간의 흐름에 다라서 시퀀스에서 방출되는 요소들을 시각화한 것이다. 위와 같은 마블 다이어그램이 있다고 할 때, 각각의 의미는 아래와 같다. 먼저 위에 있는 화살표의 요소를 살펴보도록 하자. 먼저 위에 배치된 화살표의 경우, Observable의 타임라인을 의미한다. 화살표 방향을 통해서 알 수 있는 것처럼 왼쪽에서 오른쪽으로 시간이 흘러간다. (오른쪽에 배치된 요소일수록 최근인 것이다.) 그리고 여기에 올려져 있는 동그라미, 별, 세모 등은 Observable에 의해 방출된 아이템이다. 해당 화살표 마지막에 있는 |(세로..
[🌱SeSAC] Creating and Subscribing to Observables Rx.playground 파일에서 Creating and Subscribing to Observables 을 실행해보자. Creating and Subscribing to Observables There are several ways to create and subscribe to Observable sequences. Operatings > Creators > Empty/Never #empty Creates an empty Observable sequence that only emits a Completed event. empty는 아무 것도 emit하지 않는 옵저버블을 생성하지만 정상적으로 종료시킨다. 즉, 빈 값으로 종료 시키는 것이다. ✅ 즉시 종료 되는 옵저버블을 만들고 싶거나, ✅ 빈 값을 반..