글을 쓰게 된 이유
RxSwift 를 공부하고 있다. 맞다. 사진의 얘.
RxSwift를 공부해본 사람, 아니 ReactiveX에 관심이 있다면 알겠지만 시작은 평범하게 달콤하게 observable과 observer 그리고 subject로 시작한다.
그러니까 이 세 개 (observable, observer, subject)가 RxSwift 를 시작하는데 필요한 기본 개념들이란 말이지…🤔
이 세가지를 구글링하면 빈번히 나오는 설명이다.
observable구독 가능한 것, observer는 관찰자, subject는 observable이자 observer
맞다. 보다시피 이 글은 기본 개념부터 이해가 안돼서 슬픈 개발자의 울면서 쓰는 RxSwift 이야기이다.
무엇을 해결하고자 하는가
이 세 가지 개념을 들으면서 많고 많은 것들이 이해가 안됐지만, 그 중 가장 혼란스러웠던 것은 크게 두가지가 있다.
이를 의식의 흐름대로 쓰자면 아래와 같다.
첫째, observer에 대하여.
좋아, 먼저 나오는 observer와 observable에 대해 생각해보자. observable 은 관찰 가능한 것이고 observer은 관찰자란 말이지,, 흠,,,
observable에 대해선 그래도 설명이 괜찮게 나와있는 편이다.
observable은 어떠한 이벤트를 계속 방출하고 우리는 이걸 관찰 할 수 있다
이 정도 이해하면 된다.
문제는 observer다. 도대체가 observer는 관찰자 라고만 하고 이거에 대해서 자세히 설명한걸 본적이 없다.
기껏 찾아봐도 observer가 observable을 관찰하고 observable은 observer에 이벤트를 알려준다는데… 보면서 이건 그냥 observer와 observable 의 영어 뜻풀인가..? 싶었다. 관찰자가 관찰가능한걸..! 관찰하겠지…!!
실제 코드를 보면
이런식으로 쓰게 되는데, 이렇게 하면 observer가 observable을 관찰 할 수 있다니!!!!
내 거친 observable과 불안한 subscribe와 그걸 지켜보는 observer…는 아니고 내 눈에는 observable이랑 그걸 subscribe하는거 밖에 안나오는데 대체 뭔 observer가 있어서 관찰을 한다는거야!!
관찰자면 예의상 나타나서
이런 과정이라도 있어야 하는거 아닌가?!!!!
observer가 관찰자라 지켜본다고 해놓고서 그놈의 observer 대체 어딨는데!! 쾅쾅!! 혹시.. 도시괴담인가..?
대체 넌 어디있는거니..존재하긴 하는거니..
옵저버를 찾아서,,떠나야겠다,,!!!!!!!!!!
둘째, subject에 대하여.
observable을 create할때 이런 코드를 쓸 수 있다.
subject에서는 이런 코드를 쓸 수 있다.
엥 .onNext라는게 뭔가 비슷하게 있네? ㅎㅎ
구독(subscribe) 하는 것도 보자.
오 똑같은데? 그럼 observable이랑 subject랑 같은건가?ㅎㅎ
일단 위에 나와있던 subject에 대한 설명을 다시 생각해보자.
observable 이면서 observer
오키.. 일단.. observable 받고… observer가 다시 나왔네..ㅎㅎ
observer를 일단 확실히해야 observable이자 observer라는 subject를 이해할 수 있겠다. observer 공부한 다음에 subject가 observer이기 때문에 생기는 특성을 알아봐야 겠다..쉬익 쉬익.. 그게 바로 서브젝트와 옵저버블의 차이가 되겠지..
이제 시작해보자. 원래 한 포스트에 때려넣으려고 했는데 서론부터 글이 너모너모 길어졌따. 다음 포스트에 나눠서 시작하겠다.
내 맘대로 이해하는 RxSwift!! 맘대로 이해한거니까 모든 정보는 걸러서 보는걸 추천!ㅎㅎ 잘못된 부분 알려주시면 압도적 감사! 그럼 RxSwift의 대환장 파티 속으로 고고링~~~~~~~