본문 바로가기

내일배움캠프 안드로이드 3기

[TIL] 24.04.03 팀 프로젝트

1. 팀 프로젝트

 

  원래 오늘 PR 다 받아서, 코드 리뷰까지 끝냈어야 했는데 조금 늦어졌다. 그래도 우여곡절 끝에 오늘이 지나기 전에 반절의 코드는 병합했고, 반절의 코드는 PR까진 받아서 이정도면 심각할 정도로 차질이 생긴건 아니지 싶다.

 

 회원가입 및 로그인 UI, 모든 글이 보여지는 메인, 메인의 각 아이템을 클릭했을 때 나타나는 디테일 페이지, 그리고 메인에서 버튼을 눌러 확인할 수 있는 마이 페이지로 이루어진 간단한 SNS 앱이다. 일단 정규 커리큘럼의 진도상, 실제 통신을 한다든지 아키텍처를 이용한다든지 할 필요는 전혀 없다. 오히려 사용하면 안된다.

 

 그래서 대부분의 동작이 더미 데이터를 이용해서 동작하고, 그 때문에 아쉬움이 남는 부분도 있다. 사실상 CRUD의 R만 구현한 구조에 가깝다. 과제 자체가 UI 그리는 것에 익숙해지고 Intent를 통한 데이터 교환, 그리고 간단한 안드로이드 기능 구현이 목적이라 저 정도면 충분하다고 생각했다. 팀 프로젝트는 항상 팀원들의 사정을 우선적으로 생각해봐야 하고, 나를 제외한 팀원들은 내일배움캠프 이전에 개발이나 CS 경험이 거의 전무했기 때문이다.

 

 

 내가 담당한 MainActivity 부분인데, 최대한 간략한 정보만 노출하게 했다. DetailActivity와 차별점을 두기 위함이기도 하고, 모던한 디자인 트렌드 자체가 덧 없는 심플함이 핵심이라고 생각해서다. 

 어제 작성한 내용에도 있었지만 RecyclerView나 Adapter를 이용할 수 없어서, ScrollView 내에 LinearLayout을 두고 아이템 뷰를 하나하나 만들어 넣어주는 방식을 채택했다. 지금이야 게시물 수가 별로 없어 문제가 없지만, 실제로는 성능에 치명적인 구현 방식일 것이다. 

 

 오늘의 대부분은 팀원분들의 문제를 함께 고민하는데 쓴 거 같다. 받은 PR에 대한 코드 리뷰도 작성하고, 함께 트러블 슈팅도 했다(로직 상의 문제도 있고, 구현 상의 문제도 있었다).

 당연히 형상 관리 문제도 계속 생겼고, 사실 이 부분은 경험이 없다면 정말 두려움이 생기는 부분이라고 생각한다. 나도 처음에 Git을 다룰 때는, 내 행동으로 인해 상대방의 코드나 팀의 코드에 손상을 입힐까봐 극도로 조심했던 기억이 있다. 그래서 그걸 막으려고 이런저런 꼼수를 쓰기도 하고, 팀원들 진행상황을 수시로 확인하면서 Conflict가 생길 수 있는 부분도 다 미리 예상해두고 대처했다.

 그리고 병합과정에서 생길 수 있는 Conflict도 팀원의 코드를 우선해서 Merge하고, Conflict는 내 선에서 처리할 수 있도록 했다. 알고보니 팀원이 잘못된 브랜치에서 작업을 하고 있었던 경우도 있고 했지만, 열심히 되돌리고 옮기고 하면서 결국 다 정상화시켰다.

 형상 관리 외에도, 코틀린 문법, 안드로이드 구현, xml 디자인, 로직 수정 등 다양한 질문에 대답하면서 나도 알고 있는 것을 재확인하는 시간이 된 것 같다.

 

 아직 그래도 할 게 적지 않게 남아있고, 내일 또 곧바로 손보기 시작해야 한다. 일단 반절의 PR이 늦어져서, 오전 중으로 그에 대한 코드 리뷰도 끝내야 하고, 병합 후에 개선점도 전반적으로 찾아봐야 한다. 아직 필수 구현 해야하는 기능이 조금 남기도 했고, 앱의 동작을 매끄럽게 만들기 위해 수정해야 할 부분도 좀 보여서 내일도 열심히 봐야할 것 같다.

 그리고 될 수 있다면 내일은 시간을 쪼개서 챌린지반 과제도 어느정도 해놔야 할 것 같다.

 

나름 코드리뷰도 글과 말로 열심히 주고받는 중..