서론
이번 5주 차에서는 세 번째 앱을 만들고 있습니다.
5주 차는 이미 알고 있던 개념을 더 자세히 알게 된 주차였던 거 같아요.
요즘 너무 피곤해서 핵심적인 내용만 짧고 굵게 다뤄보려고 합니다.
UITableView 활용
기존에도 UITableView는 자주 사용했지만 테이블뷰의 다양한 기능을 활용하진 않았습니다.
그냥 텍스트 데이터를 표시하는 정도로 활용했고, 그거보다 복잡해지면 UICollectionView를 사용했던 거 같아요.
하지만 이번 주차에서 UITableView의 능력(?)을 알게 되었습니다.
Editing 모드, 슬라이드 메뉴를 기본적으로 지원해줘서 훨씬 편하게 구현할 수 있더라고요.
물론 UIListContentConfiguration라는게 있지만,
그래도 테이블뷰와 콜렉션뷰를 고민할 때 새로운 기준이 추가되었습니다.
새로운 기술 선택 기준이 생기는건 좋은 일인 거 같아요.
고민하는 순간에는 항상 머리가 아프지만요 ㅎㅎ;
MVVM 고민
이번 주차에서는 많은 분들이 MVVM을 사용했습니다.
여러 명의 코드를 살펴봤는데 다 조금씩은 다르더라고요..?
인상적이었던 건 MVVM과 Input/Output 패턴을 함께 쓰는 구조였는데요.
VC -> VM 흐름과 VM -> VC 흐름을 표현할 수 있다는 게 인상적이었습니다.
지금 저는 Subject를 바인딩하고 있는데 이 흐름을 어떻게 통제하면 좋을지 고민했거든요.
이런 점때문에 다음 플젝에서는 Input/Output 패턴을 시도해보고 싶네요.
에러 핸들링과 에러 결과 표시
이번 주차에는 또 하나 소중한 생각을 배웠습니다.
저는 에러 결과를 표시하는 곳에서 에러 핸들링을 해야 한다고 생각했습니다.
예를 들어, 에러 Alert을 VC에서 띄워주면 do-catch문이 VC에 있어야 한다고 생각했어요.
근데 에러 핸들링과 에러 결과 표시는 별개로 고민하는게 효율적이더라고요.
에러 핸들링을 VM에서 하고 에러만 방출해서 VC에서 바인딩하면 VC의 로직이 가벼워져서 View의 역할만 할 수 있기 때문입니다.
물론 VC에서 에러 핸들링을 하는게 적절하다면 그래도 되고요.
에러 핸들링과 에러 결과 표시를 분리해서 생각해야겠다는 것을 배운 순간이었습니다 ㅎ
마무리
이제 슬슬 학습 스프린트가 마무리되고 프로젝트 시간이 다가오고 있습니다.
iOS 분들도 한 명 두 명 취업해서 탈출하고 있는데요.
저도 어떻게 해야할지 참 고민입니다.
취업의 압박이 점점 심해지네요 ㅎㅎ;
최근 공고에서 신입(경력 필수)을 보면서 마음에 상처를 또 입긴 했지만
더 열심히하는 수밖에 없겠죠.
감사합니다.