Swift (53) 썸네일형 리스트형 [🌱SeSAC] Disposable, Observable, Subject Disposable Disposable은 subscribe 중인(= 구독중인) stream을 원하는 시기에 처리할 수 있도록 도와준다. 모든 Observable은 Disposable을 반환한다. 이를 통해서 stream을 종료하고 실행되고 있던 시퀀스를 모두 종료한다. Observable의 next 이벤트 emit이 끝나면, (= 모든 이벤트가 방출되면) completed에서 disposed로 시퀀스가 정상적으로 종료된다. 하지만, interval 코드 등과 같이 별다른 조건 없이 무한하게 emit 될 수 있는 상황에서는 disposed 되지 않는다. 클래스의 메모리가 해제되는 시점, 즉 deinit이 되는 시점에서 disposable이 되지만, 만약 (루트 뷰가 변하지 않는 상황에서의) RootView.. [🔥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하지 않는 옵저버블을 생성하지만 정상적으로 종료시킨다. 즉, 빈 값으로 종료 시키는 것이다. ✅ 즉시 종료 되는 옵저버블을 만들고 싶거나, ✅ 빈 값을 반.. [🌱SeSAC] Rx.playground 실행하는 방법 우쉬 어케 돌리는지 몰라서 킹받다가 .. 나중에 혹시 까먹을까봐 쓴다 .. #Finder에서 .xcworkspace로 연다. 먼저, 깃헙에서 클론을 하든지/프로젝트 파일을 다운로드 받든지 해서 파인더로 연다. 파인더에서 위와 같이 Rx.xcworkspace를 선택해서 열어준다. #Schema 설정 위와 같이 설정을 해준다. #Rx.playground 실행 그리고 나서 플레이그라운드로 이동한 다음 원하는 코드를 실행하면 된다. 빌드가 아니고 테스트!! 41번 줄의 play 버튼을 누르면 아래 콘솔 창에 나타나는 것을 볼 수 있다. [🌱SeSAC] 마침내 피할 수 없는 아 .. 알엑스 한 줄 소감 : 알엑스 .. 잭 앤 휴와 함께라면 뿌실 수 있다. RxSwift란? ReactiveX를 도입한 Swift 전용 구현 라이브러리이다. (이게 뭔데? 사실 .. 개념 자체보다 어떻게 구현되는지, 어떻게 동작되는지가 더 중요하다. 일단 넘어가자.) RxSwift의 키워드 알엑스에서 주의해야 하는 키워드는 세가지이다. Observer 이벤트를 방출 -> 전달받는 패턴이다. 일종의 Notification처럼 동작한다. (알림을 보내고 .. 알림을 받는 식의 ..) Observable을 이용해서 이벤트를 보내면 Observer을 통해 이벤트를 전달 받는다. Iterator map, filter, reduce 등과 같은 메서드를 생각해보자. 이런 함수들의 주의할 점은 순서이다. filter를 하고 r.. 이전 1 2 3 4 5 6 7 다음