2023.7.9 ~ 2023.7.22 동안 sopt에서 2주간 함께 팀원들과 합숙하며 서비스를 개발하는 앱잼 활동을 하였다.
팀원들과 함께 합숙하며 즐겁고 소중한 추억도 많이 만들고 데모데이를 앞두고는 개발에 깊게 몰두하는 시간을 가졌다.
프로젝트를 진행하면서 우여곡절을 정말 많이 겪었는데 이를 성장의 밑거름으로 삼고자 앱잼을 통해 가져가고 싶은 것들을 정리하였다.
이에 대해 KPT 방식으로 회고를 하고자 한다.
Keep
1. 뷰 스케치
: 리드의 권유로 스케치를 하고 작업에 들어갔는데 어떤 컴포넌트를 사용할지, 어떤 레이아웃을 사용할지, 액티비티를 사용할지 프래그먼트를 사용할지 등을 미리 적어두어 훨씬 효율적으로 작업할 수 있었다.
2. 로그를 찍어 확인하는 방식을 많이 활용
: 서버를 붙이는 과정에서 값이 잘 들어가는지 확인하는 과정에 정말 많이 로그를 찍어보았다.
3. Rebase 방식을 활용
: 처음으로 프로젝트에서 pull & push 방식이 아닌 rebase 방식을 사용해보았다. 사용방법이 조금 까다로웠으나 리드가 친절하게 계속 알려준 덕분에 무사히 잘 활용할 수 있었다. rebase방식을 활용해서 프로젝트를 진행해보고 싶다는 생각이 평상시에 있었는데 앱잼을 기회로 해볼 수 있어 좋았다.
rebase 장점 : 1줄로 예쁘게 정리 가능 & 현업에서 많이 사용되는 방식 / 단점 : 잘못 사용하면 깃이 잘 꼬이므로 주의하자!
4. MVVM 아키텍처 패턴을 적용
: 안드로이드로 MVVM 패턴을 적용한 프로젝트를 진행한 것이 처음이었다. 평상시에 MVVM패턴의 특징과 장점만 알고 있었는데 직접 적용해보면서 더욱 이해할 수 있는 기회가 된 것 같다.
Problem
1. 코드를 제대로 확인하지 않고 노트북 문제로 판단
: 스크롤뷰 안에 fragmentContainerView를 넣어 cpu가 계속 100인 이슈가 있었다.
당시에는 코드를 제대로 볼 생각을 못하고 4년넘게 사용한 그램의 문제라고 생각하고 (그램 미안 ..)
맥북을 구매하였다. 그러나 새로 온 맥북에 저 코드를 실행해보니 맥북도 버벅여서 그제서야 코드 문제인 것을 알게 되었다.
좀 더 신중하게 코드를 짜야겠다는 계기가 되었다.
2. 로직 스케치 작업을 하지 않음
: 맥북 구매 등의 이슈로 뷰 작업이 혼자 늦어져서 로직 구현에 들어가기 전에 스케치 작업을 하지 않은 채로 구현을 시작했다.
그 결과
- 1 ) 소원권 메인뷰에서 원래 내 소원권, 상대 소원권을 다른 프래그먼트로 만들었는데 하나의 리사이클러뷰로 만드는 것으로 수정
- 2 ) 소원권 메인뷰에서 다음 페이지로 넘어가는 것을 액티비티위에 프래그먼트를 쌓는 형식으로 구현했으나 edittext부분을 구현할때 액티비티가 눌려 새로운 뷰가 생성되며 edittext값이 날라가는 현상이 생김 -> 두개의 액티비티를 만들어 액티비티안에 fragmentContainerView를 구현하는 방식으로 구현
결론 : 오히려 시간이 더 걸렸다 ...
3. hilt, 코루틴 적용을 제대로 이해하지 못한 상태로 구현
: hilt가 주입식인 것은 알고있지만 코드 한줄 한줄 제대로 이해하고 코드를 쳤다기 보다는 급한 마음에 일단 다른 팀원들의 코드를 참고하며 사용하여 아쉬움이 남았다. 앱잼 끝나고 꼭 이 부분에 대해 자세히 공부해 보아야겠다고 생각했다.
4. 서버 연결 시작이 늦어짐
: 뷰 작업하는데에 있어서 자잘하게 구현해야할 것이 계속 나왔고 (ex) 화면 터치 시 키보드 내리기 )
이로 인해 서버 연결이 늦어져 오히려 중요한 기능들을 구현 못할 뻔 하였다.
5. 뷰 작업을 할 때 서버를 바로 붙일 수 있게 해두지 않았음
: 뷰 작업을 할 때 미리 뷰모델을 생성해서 바로바로 붙일 수 있게 구현해두면 더 좋을 것 같다는 생각이 들었다.
Try
1. Api명세서를 확인하며 로직 스케치 꼭 하기
2. Hilt, 코루틴에 대해 공부하기
3. 자잘한 수정사항은 우선순위에서 미루기
4. 비동기 코드 공부하기
5. MVVM 적용한 코드 다시 이해하고 공부하기
6. 스크롤뷰 안에 넣으면 안될 것들 공부하기
마치며 ...
적다보니 problem만 왕창 적은 것 같은데 성장할 수 있는 기회가 많다는 것으로 삼고 더 열심히 공부해봐야겠다.
마지막으로 앱잼동안 정말 많이 도움을 준 고마운 팀원이 알려준 정보인데 도움이 될 것 같아 적어본다.
☑️ 질문하기 전 체크리스트
- 구글 검색해보기
- 로그 찍어 보기
- 클린 프로젝트 해보기
- 캐시 지워보기
- 리빌드 해보기
- 노트북 껐다 켜보기
- 포스트맨 찍어보기
🚨 피알 올리기 전에 필수 사항
- Ctrl Alt L + Ctrl Alt O 필수!! 습관적으로 해주기 (ktlint 플러그인 설치 추천)
- 본인 브랜치에 develop 풀 받고 작업하기
- (푸쉬 전) 꼭 빌드 하고 올리기
브랜치 만들 때 필수 사항
- Develop 브랜치 풀 받기
- 현재 브랜치가 아닌 develop 브랜치에서 새 브랜치 만들기
앱잼은 끝났지만 스파클 서비스를 릴리즈하는 그 날까지 to be continue ...🤍