[RxSwift] 들어가기 전에

RxSwift 글을 쓰는 이유

naljin
6 min readMar 7, 2019

주의

이 글은 RxSwift를 처음부터 하나하나 친절하게 설명하는 글이 아닙니다(물론 내가 처음 시작하는건 맞음 ㅎ). 단지 공부하면서 든 의문들을 이해한 나름대로 정리한 글입니다. RxSwift의 기본적인 개념을 하나하나 원하신다면 제목에 속지 말고 돌아가세요..! 빠른 손절! 잘가요..!

글을 쓰게 된 이유

RxSwift 를 공부하고 있다. 맞다. 사진의 얘.

근데 얜 뭘까..? 도롱뇽인가..?

RxSwift를 공부해본 사람, 아니 ReactiveX에 관심이 있다면 알겠지만 시작은 평범하게 달콤하게 observableobserver 그리고 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 의 영어 뜻풀인가..? 싶었다. 관찰자가 관찰가능한걸..! 관찰하겠지…!!

실제 코드를 보면

와 gist 너무 귀찮아..

이런식으로 쓰게 되는데, 이렇게 하면 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의 대환장 파티 속으로 고고링~~~~~~~

다음 글 👉🏻

--

--