발표 자료를 제출 한 후에는 회고 시간을 가졌다. 이번주에는 솔직히 처음 지정한 스코프를 다 이루지 못하고 진짜 최소한의 스코프만 겨우 채워서 냈다. 중간에 한 번더 회의를 거쳐서 쳐낼 부분을 쳐내지 못했더라면 정리되지 못한 채로 발표준비와 배포테스트번들을 제출하게 됐을 것이다.
이번 주에 특히 아쉬운 점은, 좀 더 MVVM 패턴을 적용할 수 있엇을 것 같은데? 라는 생각이 드는 것이다. 프로필에서 북마크목록을 불러올 때에는 contentID로 전체정보를 가져오는 과정에 대해서 ViewModel로 처리했지만, 북마크 저장 기능, 유저 정보 불러오기 같은 간단한 기능들은 간단하기도 하고, 시간도.. 없어서 그냥 프래그먼트에서 바로 데이터를 불러와서 적용할 수 있도록 만들었는데, 오늘 팀원들의 1차 마감 코드를 보니까 좀 더 MVVM을 구분해서 작성할 수 있지 않았을까? 하는 아쉬움이 있었다.
이제와서 구현한 코드를 리팩토링 한다는 것은 이제 겨우 반을 채운 진행도를 생각했을 때 너무 비효율적인 행동인 것 같고, 실제로 팀장님도 그렇게 조언을 해주셨기 때문에 만약 유저정보 등에 대해서도 MVVM을 적용하고 싶다면 UserDetail에서 좀 더 구분 지어 가져오는 것을 하면 될 것 같다.
MVVM에 대해서 솔직히 좀 복잡하다는 생각을 우선적으로 가지고 있었는데, 이제 보면 MVVM은 딱히 어렵지 않은 것 같다. UserDetail로 예를 들어보자면 뷰에서 이벤트를 만들면(클릭 혹은 초기화 시 뷰모델 연결) 뷰모델에서 유저정보를 불러오는 파이어베이스 호출하는 펑션을 만들어서 그 유저 정보를 <UserEntity>모델을 만들어서 이걸 통해 가져오고, 이 값들을 라이브데이터에 담아서, 받아온 라이브데이터값을 뷰에서 뿌려주면 된다.
다른 팀원분들은 MVVM에 클린아키텍쳐도 적용하고 있어서 잠시 검색을 해봤는데 클린아키텍쳐에서 도메인이 사용되면 요즘엔 LiveData보다 Flow를 사용하는 것이 더 효율적인 방법이라는 것을 본 적이 있다. 하지만, 클린 아키텍쳐는 분리성이 명확한 장점에 비해 그 만큼 하나의 기능에 대해서 분리되는 클래스들이 많아서 오히려 복잡하지 않은 어플의 경우 그 효용성과 비용을 충분히 감당할 수 있는지 생각해보는 것도 좋은 관점이라는 튜터님의 조언이 있었다. 어쨌든, 내 지금의 경험과 맡은 부분에서 클린아키텍쳐까지는 무리인 것 같아서 다음주에는 적극적으로 MVVM을 고려하여 코드를 짜는 것을 포인트로 할 것이다.
이렇게 회고하고 정리하는 타임이 있어서 다행이다. 계속 코드 작업을 진행했더라면 MVVM이고 뭐고 정신 없이 되기만 하는 코드를 작성하고 그것에 자괴감을 느꼈을 것 같다. 사실 이번에도 이렇게 코드를 되돌아보면서 좀 더 고쳐서 작성했으면 좋았을 부분들을 보며 많이 아쉬웠던 것 같다. 1차 마감은 너무 급작스럽게 챙기게 된 감이 강했어서 최종 마감은 좀 더 체계적으로 진행 될 수 있도록 많이 신경쓸 것이다.
목요일 금요일에 실제 어플을 보고서 디자인 튜터님이 개선점 피드백을 주셨다. 그걸 바탕으로 디자인 수정이 한 번 있어야 한다.
코드 부분에서는 일단 우선적으로 파이어베이스에서 스토리지를 통해 이미지 저장하는 방법을 적용해야한다. 이미지 수정 뿐 만 아니라 사실 로그인 했을 때 저장되는 이미지도 보안 상의 문제로 비트맵 전환이 안되어서 이미지 자체를 가져오는 것이 안되고 있다. UI 적으로 프로필 이미지를 이제와서 빼는 것은 안되고.. 딱히 스토리지 사용법은 어렵지도 않은 것 같지만, 한 이틀 정도 할애하는 것을 생각하고있다. 오랜 시간이 걸리지 않았으면 좋겠다.
북마크 목록만 가져오고 작성한 글 가져오는 것은 연결 조차 못해서,, 게시판 담당 팀원 분께 데이터 저장 시 유저정보에 작성한 글 아이디를 따로 저장할지, 아니면 게시판에 저장된 authorId를 통해 조회할 지에 대해 한 번 더 논의한 후 작성하면 될 것 같다.
UserDetail 정보도 xml 만 만들어 놓고 코트파일을 아예 만들지 못했기 때문에 UserEntitiy를 만들어서 위에서 다짐했던 것 처럼 좀 더 MVVM을 고려한 코드를 작성할 것이다.
사실 최종 발표일은 29일 금요일인데, 발표준비한다고 하루 빼고, 실제 배포 번들 검토 기간을 고려하고 어쩌고 하면 2주 정도 빠듯하게 남아있는 것 같다. 무사히 프로젝트를 마칠 수 있도록 화이팅해야겠다! 파이팅~