안녕하세요 이번 글에서는 제가 프로젝트에 직접 사용중인 ReactorKit
에 관해 왜 사용하게 되었는지? ReactorKit
이 무엇인지? 어떻게 사용하는지? 를 담은 글을 공유해보겠습니다.
그리고 해당 글은 작년에 Notion에 적어두었던 글을 Velog로 옮겨두는 글이기 때문에 조금 미숙한 부분이 있을 수 있습니다. 잘못되었다고 생각이 드시는 부분은 지적해주시면 감사하겠습니다 😂
우선, MVVM 패턴과 RxSwift를 이용한 개발 과정에서 global state를 관리하는것에 한계를 느꼈다.
기본적으로 ViewModel은 View와 Model 사이에서 binding을 해주는 역할로 ViewController와 1:1로 강하게 연결이 되어있다보니 View 사이의 소통을 MVVM 패턴으로 관리하는것이 용이하지 않았다.
그리하여 우선 찾아본것은 다른 디자인 패턴을 사용하여 리팩토링하는것을 찾아보았다.
VIPER, RIBs 두개 모두 관련된 자료를 찾아 읽어봤지만 이해하기 쉽지 않았고 현재 개발된 코드에 바로 적용시키기에 용이하지 않았다.
마지막으로 전수열(갓갓..)님이 만드신 ReactorKit을 찾게 되었고 RxSwift를 응용하여 설계된 덕분에 사용방법을 익히기가 어렵지 않았고 무엇보다 global state를 관리할수 있도록 설계되어있는 점이 무척 맘에 들었다. 또, 시간을 크게 소요하지 않고 현재 개발된 코드에 적용시키기에 좋을거같아 ReactorKit을 선택하게 되었다.
사용방법에 관한글은 다음 시리즈에... 내용이 생각보다 길어져서 나눴습니다 ㅎㅎ...