어제부터 시작한 프로젝트를 진행하며, 구현에 관한 생각과 현재 진행 상황에 대해 간단하게 정리하겠다. 영화 앱을 만들기 시작하면서, 본인은 로그인/회원가입, 영화 검색 페이지, 마이페이지 기능을 맡게 되었으며 현재 로그인/회원가입, 영화 검색 페이지까지 구현을 완료했다. 기능은 제대로 동작하지만 예외처리나 최적화에 있어 아직 완전히 구성된 로직은 아니지만 시간에 맞게 개발을 완성하는 것에 중점을 두고, 필수 구현 기능들이 완성된 후 리팩토링을 진행할 예정이다.(물론, 오전에 전날 진행한 로직을 리팩토링하는 시간을 짧게나마 가지고 있다.)
오늘은 영화 검색 기능을 구현했으며, 현재는 TableView로 구성했다. Figma를 통해 구성한 와이어프레임상 검색을 통해 보여지는 데이터는 리스트형식이 보기 좋을 것이라 생각했으며, CollectionView로도 구성할 수 있지만, TableView로 구성한 이유는 뭐야? 라고 물을 수 있다. 그것은 마이페이지를 구성하기 위해서는 결국 CollectionView를 사용해야 하기 때문에, 둘 다 CollectionView로 구성하는 것보다는 지금껏 사용해왔던 TableView에 대해 다시 한번 복습하고 사용해보는 시간을 가지는 것도 좋을 것이라 생각하여 TableView로 진행했다. (나중에는 리팩토링 연습을 위해 CollectionView로 변경하는 작업도 진행해볼 것이다.)
아직 완전한 MVVM으로 처음부터 구성을 하는 것은 어렵게 느껴졌다. 그러한 이유로 MVC를 이용하여 구현한 후 최종적으로 MVVM으로 리팩토링하는 시간을 가졌다. 이를 통해, MVVM에 보다 익숙해질 수 있으며 MVC와 MVVM의 차이에 대해 더 깊게 이해할 수 있는 시간이지 않을까 생각한다.(시간은 조금 더 걸릴 지 몰라도 이해하기에는 더 좋은 것 같다. 또한, 지속적으로 진행해보는 과정이다보니 리팩토링하는 과정에는 생각보다 시간이 소요되지 않게되었다.)
기본적인 구성은 다음과 같다.
MVC를 통해 구현한 ViewController에서 로직들을 분리하여 ViewModel을 생성하였다.
TableView에서 사용되는 CustomCell이다.