새소식

인기 검색어

네이버 부스트캠프

부스트캠프 웹·모바일 8기 멤버십 6주차 회고

  • -

TableView vs ScrollView

디자인 가이드를 보니 TableView의 기능과 StackView의 기능이 혼합된 형태였다.

둘 중 하나를 선택하면 각각 쉽게 구현할 수 있는 부분과 어렵게 구현해야하는 부분이 대치를 이루고 있었다.

그래서 둘 중 어느것으로 선택할지 고민을 하다가 Group Style의 디자인이 있어 tableView를 사용하여 구현하고 tableHeaderView에 StackView의 기능이 있는것처럼 UI를 구현했는데 멘토님께서 UI부분에 대한 코멘트를 남겨주셨다.

 

멘토어님의 코멘트

 

코멘트를 보고나니 ScrollView를 활용한 StackView를 많이 사용해 보지 않아서 tableView로 구현한것들을

ScrollView과 StackView로 구현했다.

TableView에서는 간단한 설정들을 통해 할 수 있었던 것들을 구현하려고 하니 좀 어려웠지만

tableView와 scrollView로 구현하였을 때 얻는 장단점을 체험하게 되었다.

우선 tableView로 구현했을 때는 UI코드가 굉장히 간단해지지만 각 cell마다 Model에 접근해서 데이터를 얻어와야했다.

tableView

 

하지만 scrollView로 구현했을때는 반대로 UI코드가 굉장히 길어지지만 model에서 데이터를 한번만 받아오고

하위뷰로 전달해줄 수 있었다.

 

scrollView

Combine

5,6 주차 미션은 네트워크 사용하는 미션이였어서 rxSwift와 combine을 사용하는 캠퍼들이 많았다.

나는 urlSession만 사용하여 네트워크를 구현했었는데 이를 개선하려고 rxSwift와 combine을 고민하다가

rxSwift는 사용해본 적이 있지만 combine은 사용해보지 않았기에 combine을 선택하였다.

rxSwift를 알고있었기 때문에 combine을 사용하는것은 어렵지 않았다.

다만 rxSwift에선 가능한것들이 combine에서는 없는 경우가 있어서 약간 헷갈렸다.

rxSwift에는 rxCocoa를 통해 다양한 슈가 함수들을 사용할 수 있었지만 combine은 슈가 함수들이 없어서

이를 직접 구현하는 경험을 하게되었는데 왜 슈가 함수들이 나오게 되었고

왜 바퀴를 다시 개발하려고 하지 말라고 하는지 알게되어서 좋은 경험이였다.

MVVM

combine을 사용하다보니 다른 캠퍼들이 MVVM으로 구현해놓은 것들을 확인할 수 있었다.

MVVM은 명확한 템플릿이 없어서 캠퍼들마다 자신만의 방식으로 구현해놓았기에 다양한 것들을 배울 수 있었다.

특히 기억에 남는것은 state라는 변수를 활용하여 event를 받아 VM에서 처리해주는 방식이 인상깊었다.

나 같은경우는 MVVM의 데이터를 VC에서 바인딩하기 때문에 데이터 흐름을 파악하기가 어려웠다.

하지만 event를 활용하여 state를 적용하니 이벤트 흐름을 따라가면 자연스럽게 데이터 흐름을 파악할 수 있어서

처음 본 코드인데도 앱의 전체적인 구조를 쉽게 예상 가능했다.

VC 에서 VM으로는 event를 통해 들어가고 VM 에서 VC로는 state를 통해 나오는 구조였는데

이걸 조금 더 개선한것이 ReactorKit이라는 것도 알게되었다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.