HulkCodeer의 기술 블로그

RxSwift란?

February 08, 2019 | 1 Minute Read

아이폰 개발자로 전향 한지 1개월쯤 되었어요. 저는 첫 프로젝트로 Objective-C로 되어있는 전임자 분께서 진행시던 프로젝트를 Swift로 변경하는 프로젝트를 맡게 되었습니다.

많은 분들이 그렇겠지만, 회사를 떠나기로 마음먹은 시점부터 마음이 붕뜰꺼예요. 곧 나가니깐…좀 만 참자…

제가 생각하기엔 그런 생각들은 프로로서는 가지면 안되는 마인드라고 생각이들어요. 결국 나갈때까지 회사에서 월급을 지불하고 일하는 입장에서 곧 나가니깐 대충하자는 생각은 아마추어 같거든요.

제가 왜 이런 이야기를 하냐면 제가 맡은 프로젝트는 사실 깡통이였어요. 돌아가는 척만 하는 깡통 이였던 거죠. 결국 Swift로 바꾸면서 그냥 바닥부터 개발하는 단계가 되어버렸어요ㅠㅠ

하지만 이런 위기를 기회로 삼고자 Swift로 변경하면서 RxSwift로 개발해보자! 어차피 개발 기간도 좀 남아 있고, RxJava랑 별반 다를게 없겠지??하면서 시작을 하게 되었어요.

이 프로젝트는 웹뷰를 기반으로 하기 때문에 사실 RxSwift를 쓸만한 곳이 몇군데 없어서 기초를 다지기엔 괜찮다 생각이 들었어요. 가장 만만한게 소셜 로그인 이였어요. 카카오톡 로그인이 있었기때문에 저는 이곳에다 RxSwift를 적용하기로 했죠.

하지만 안드로이드에서 RxJava를 쓸때와는 꽤 다른게 있었어요. 바로 RxCocoa라는 것이였죠. 이 녀석은 버튼이나 테이블뷰 같은곳에 Rx영역을 제공하는 녀석이였어요.

간단하게 예를 들자면

func reload() {}

func setup() {
  reloadButton.rx.tap
    .bindNext(reload)
    .diposed(by: disposeBag)
}

이런 코드가 있습니다. reloadButton이라는 버튼을 탭할때마다 reload 함수를 실행 시키죠. subscribe라는 오퍼레이터를 써도 되지만 RxCocoa에서는 UI Event를 bindNext를 통해서 구독할 수 있게 만들어 줍니다.

다음 블로그 글에는 카카오톡 소셜 로그인 버튼에 RxSwift를 붙인 것에 대한 글을 쓰도록 하겠습니다.