[진행 기간]
2022.03 ~ 2022.05
[인원]
안드로이드 개발자 : 4명
백엔드 개발자 : 6명
디자이너 : 2명
[역할]
PM, 서비스 기획, 안드로이드 개발
[회고]
교내 팀 프로젝트로 너와 나의 여행 다이어리, TLOVER(트러버) 앱런칭을 했다. 이전에는 백엔드 개발을 주로 했었는데, 교내 팀 프로젝트다보니 프론트엔드 개발자가 턱없이 부족했다. 따라서 PM인 내가 안드로이드 개발을 한다고 하였고, 안드로이드 개발이 처음인지라 두려움이 있었지만, 다양한 분야에 도전해보고 싶었던 마음이 컸다.
따라서 팀원 중에 안드로이드 개발 경험이 조금 있고, 해보고 싶었던 분들을 뽑아 안드로이드 개발자 4명을 겨우 모으는데 성공했다.
안드로이드 개발자 4명이면 많이 모였다고 생각했지만, 나도 경험이 없었고 팀원들 모두가 경험이 부족했다.
나는 노션 공유페이지에서 안드로이드 공유 폴더를 만들었고, 여기에 각자 공부 내용을 공유하기 시작했다.
그러다보니 자연스럽게 모두 안드로이드 개발 스택을 쌓을 수 있었고, 나는 단순히 공부하기 보다 깃허브에 코드를 올리고, 블로그에 공부한 내용을 정리하였다.
나름 MVVM, JetPack, AAC 등 구글에서 권장하고 있는 방식을 따르려고 노력했으며, JetPack라이브러리를 모두 이용하지는 못했지만 신기술을 적용하여 앱런칭에 성공했다.
백엔드 개발을 했던터라, 서버와 통신을 위해 Retrofit2을 사용하였을 때 이해하는데 더욱 도움이 되었으며, 이로 인해 안드로이드 개발을 더욱 쉽게 할 수 있었다. 앱 런칭을 성공적으로 이루면서 내가 개발하던 앱이 실제로 보여지는 것에 재미를 느껴 자연스레 안드로이드 개발자에 대한 꿈을 키웠다.
[협업]
슬랙을 깃허브와 연동하여 각각의 진행상황을 파악하였다.
또한, 노션을 사용하여 각각의 백로그를 정하였으며, 테스트중, 완료, Burn Down태그를 활용하여 각각의 진행상황을 파악하였다.
매 주 회의는 디스코드로 진행하였으며, 마지막으로 팀원들의 시간을 효율적으로 분배하고 관리할 수 있도록 타임로그를 작성하였다.
[개발]
먼저 개발에 앞서 백엔드 개발자로 참여하진 않았지만 PM으로서 서비스 기획을 했기 때문에 DB설계에도 참여를 하였다. 가장 복잡했던 것은 유저와 다이어리가 사이의 관계인데, 유저가 스크랩, 신고, 권한, 관심테마 등 다양하게 연결되는 부분이 많아 참조무결성을 지키는데 있어서 헷갈리는 부분이 많았다. 이 계기로 개발하기 전에 DB개념을 복습하는 시간을 가졌다.
회원가입 시 등록하는 관심테마와 지역으로 다이어리를 추천해주어야 했기 때문에 다이어리의 테마와 지역과 일치하는지 여부를 따지기 위해 각각 테마 지역 테이블을 만들어 유저 관심테마와 유저 관심지역을 연결해주었다. 또한, 공유다이어리 특성상 권한을 받았을 때 같이 다이어리가 공유가 되어야 했기 때문에 권한유저를 따로 만들어주어 각각 계획과 다이어리를 연결해주었다.
이제 안드로이드 개발로 넘어가보자.
Navigation을 사용하면서 프래그먼트간의 이동을 더욱 수월하게 하였고, Safe Args 특성을 이용하여 인자 값을 안전하게 전달할 수 있었다. 하지만 처음에 공부하였을 때 부족한 지식때문에 회원가입 뷰에서 모두 Activity로 구현하였고, 이로 인해 각각의 데이터를 intent로 전달하였다.
이러한 피드백으로 지금 하고 있는 프로젝트에서는 모두 프래그먼트로 설정하여 ViewModel에서 값을 공유할 수 있도록 하여 코드를 간결하게 할 수 있었다.
또한, 프래그먼트에서 binding을 선언할 때 binding을 구현하는 구문이 프래그먼트에서 계속 반복되었다. 초반에 이 문제에 대해서 그냥 넘어갔었지만 프래그먼트가 많아질 수록 중복되는 코드가 많았다. 따라서 다음과 같이 BaseFragment를 만들어 구현하기 시작해서 이 문제를 해결하였다. 아쉬웠던 점은 처음부터 구글링을 하여 BaseFragment를 만들었으면 더욱 수월히 개발할 수 있었는데 이 문제때문에 시간을 많이 소요했었다.
또한, style.xml파일을 이용했더라면 코드를 훨씬 줄일 수 있었을 것이다. style태그를 통해, 글씨 각각의 fontFamily, color, textSize등 세 개의 코드를 각각의 뷰 xml파일을 하나의 코드로 줄일 수 있었는데 style.xml태그를 이용하지 못했다.
아무래도 안드로이드 개발이 처음이다보니 이렇게 사소한 것을 놓쳤던 것 같다. 이러한 피드백으로 현재 진행하고 있는 프로젝트에서는 style.xml파일과 string.xml파일을 유용하게 이용하고 있다.
트러버 개발 초기에 MVVM패턴에 대한 지식이 부족했다. 나름 구글링을 하여 ViewModel과 LiveData 등 다양한 장점들을 알게되어, 사용하고 싶었지만 그 당시에는 지식이 부족하여 유용하게 사용하진 못하여 MVVM패턴을 적용하지는 못하였다. 이게 가장 아쉬운 점이다.
지금 하고있는 프로젝트에서는 MVVM, AAC 다양하게 적용하고 있으며, 기업에서 원하는 인재상이 되기 위해 노력하고 있다.
TLOVER프로젝트를 위해 정말 많이 노력했던 것 같다. 안드로이드에 대한 깊은 깨달음도 있었지만 하나의 프로젝트에서 PM을 맡으면서 팀원들간의 협업에 대해서도 많은 것을 깨달았던 프로젝트였다. 애자일한 방식으로 매 주의 스프린트를 정하여 백로그를 작성하게 하였으며, 시간을 효율적으로 관리하기 위해 타임로그까지 작성하게 하였다. 이렇게 했던 덕분에 나름 성공적으로 앱런칭을 마무리 할 수 있었다.
아쉬운 점이 많았던 만큼 피드백도 진행할 수 있었고, 그 피드백 덕분에 현재 진행하고 있는 프로젝트에서 더욱 발전된 나를 보여주고 있다.
트러버 안드로이드 깃허브 ->
GitHub - TLOVERcp/tlover-android: :pencil2:너와 나의 여행 다이어리 서비스, TLOVER
:notebook_with_decorative_cover::pencil2:너와 나의 여행 다이어리 서비스, TLOVER - GitHub - TLOVERcp/tlover-android: :pencil2:너와 나의 여행 다이어리 서비스, TLOVER
github.com
'Project' 카테고리의 다른 글
[Project] 명식이(명지대의 식사를 책임지다!) 회고 (0) | 2022.11.26 |
---|---|
[Project] 플렙업(Plogging Level Up) 회고 (0) | 2022.09.12 |
[Project] INFRA(인프라) 회고 (1) | 2022.09.09 |