
[진행 기간]
2022.07 ~ 2022.09
[인원]
안드로이드 개발자 : 5명
백엔드 개발자 : 4명
디자이너 : 2명
[역할]
PM, 서비스 기획, 안드로이드 개발
[회고]
트러버라는 프로젝트를 마무리하면서 아쉬웠던 점이 많았다. MVVM패턴을 적용하고 싶었으나 그러지 못했고, 기술스택이 조금 부족하여 다른 젯팩에 있는 기능들을 쓰지 못했었다. 따라서 하나의 프로젝트를 내가 기획하여 한 번 더 하고싶다는 생각이 들었다.
따라서 디자이너와 협업하여 서비스 기획을 시작했다.

약 3주간 회의 끝에 플렙업 이라는 서비스를 출시하는 것으로 정했다.
플렙업은 플로깅을 하는 사람들에게 퀘스트를 제공하여 플로깅에 재미를 더해주는 앱 서비스이다. 각각의 퀘스트가 제공되며 퀘스트를 완료했을 때 성장 일지와 글을 작성하여 사람들과 공유하며 플로깅을 더욱 재미있게 하게 해준다.
이렇게 기획이 모두 완료된 후 팀원들을 모집하여 개발을 하기 시작했다. 트러버 때 PM을 했을 때에는 익숙했던 노션으로 팀원들의 백로그를 관리하였지만, 이번에는 기업에서 자주 사용하는 Jira를 사용해보고 싶었다. 따라서 나는 팀원들에게 제안하여 Jira를 구축하여 팀원들의 백로그를 관리하였다.
또한, 개발관점에서 트러버에서 도입하지 못했던 MVVM패턴, AAC를 잘 활용하여 앱 개발을 하고싶었다. 따라서 이 또한 팀원들에게 제안하여 Room, ViewModel 등 구글에서 권장하는 AAC를 활용하여 개발하기 시작했고, 현재 글을 쓰는 이 시점 9/12 월요일 기준으로 개발 막바지에 달았다. 버그문제들을 잡느라 시간이 좀 걸리고 있지만, 메인 기능들을 넣고, 출시를 한 다음 애자일한 개발방식으로 계속 기능들을 업데이트할 예정이다.
[협업]

슬랙을 깃허브와 연동하여 각각의 진행상황을 파악하였고 이슈를 공지하였다.

지라를 통하여 각각의 백로그를 정하고 이슈들을 관리하였다.
[개발]

트러버 때와 마찬가지로 PM으로서 서비스 기획을 했기 때문에 백엔드 개발자와 DB설계에도 참여를 하였다. 먼저 게시판을 공유할 수 있는 커뮤니티 앱인 만큼 신고기능 관련하여 DB에 반영하였고, 댓글, 게시판 등 삭제하였을 때 실제로 DB에서 삭제되는 것이 아니라 status를 활용하여 DB에서는 확인가능하게끔 하였다.
또한, 유저가 현재 진행중인 퀘스트, 완료된 퀘스트, 완료된 퀘스트에 관하여 다이어리를 작성하는 부분을 한 번에 합칠까 라는 고민도 하였지만, 정규화의 문제 때문에 테이블이 조금 늘어나더라도 3개로 분리하여 반영하였다.
이제 안드로이드 개발로 넘어가보자.

먼저 하나의 액티비티와 여러 개의 프레그먼트를 이용한 single activity multi fragment 아키텍처를 적용하였으며 MVVM 디자인 패턴을 적용하였다. 또한, Jetpack Navigation과 Bottom Navigation을 연결해주면서 코드를 더욱 간결하게 하였고, 프래그먼트간의 이동을 수월하게 하면서, Navigation안에 있는 애니메이션 기능을 활용하였다. 또한 Safe Args을 활용하여 프래그먼트 간의 데이터 이동을 쉽게 하였다.


또한, BaseFragment, BaseViewModel을 사용하면서 각각의 프래그먼트와 뷰모델에서 코드의 중복을 줄일 수 있었다.


서버와 통신하기 위해 retrofit을 사용할 때 코루틴을 이용하였으며, 구글에서 권장하는 AAC(Android Architecture Components)를 활용하여 Repository패턴을 활용하여 코드에 적용하였다.

또한, 트러버 때 이용하지 못했던 style태그를 활용하여 xml전체의 코드 양을 줄일 수 있었다.

앱 런칭을 앞둔 현재로서의 회고는 여기까지이고 앱 런칭을 하고 업데이트를 하며 추 후에 또 회고를 작성할 예정이다. 이렇게 회고를 하고 나면 내가 사용했던 기술들을 리뷰할 수 있고, 부족했던 부분까지 파악할 수 있다. 일단 이 프로젝트를 하며 나름 만족하고 있다. 트러버 때 사용하지 못했던 MVVM패턴 등 다양한 기술들을 적용할 수 있었다. 또한 위의 그림처럼 구글에서 권장하고 있는 AAC를 활용하여 개발할 수 있었다.
아쉬웠던 점은 안드로이드 CI/CD 구축과 테스트코드 작성에 대한 점이였다. 두 개의 부분 모두 아직 기술 스택이 조금 부족하여 적용하지 못했다. 앞으로 기능들을 모두 업데이트하고 나면 테스트 자동화를 꼭 모두 이뤄보고 싶은 욕심이 있다.
또한, 현재 진행하고 있는 개인프로젝트 책 검색 앱에서는 혼자하는 프로젝트이니 만큼, 내가 사용해보고 싶었던 것을 모두 사용해볼 예정이고, 이뤄내지 못했던 테스트 자동화도 꼭 적용해봐야겠다.
'Project' 카테고리의 다른 글
[Project] 명식이(명지대의 식사를 책임지다!) 회고 (0) | 2022.11.26 |
---|---|
[Project] INFRA(인프라) 회고 (1) | 2022.09.09 |
[Project] TLOVER(트러버) 회고 (0) | 2022.09.04 |