Intro
- 이번주부터 팀 과제가 시작되었다. 어제는 815 광복절로 쉬었고, 그 전날에는 팀 셋업하느라 정신없이 이것저것 하다보니 TIL쓰는것조차 놓칠정도로 정신없이 바빴던것 같다.
- 오늘 엊그제와 오늘의 회고를 같이 진행하고자한다.
Project Setup
- 프로젝트 셋업에대해 얼추 적응했다고생각했지만 착각이었다. 디테일한 부분들을 많이 놓쳤는데 다음과 같았다.
- Notion에 프로젝트 문서를 만들고 관리중인데 문서를 setup하면서 와이어프레임을 만드는데 치중하느라 프로젝트 일정계획을 놓쳤다. 그리고 역할분담에 따른 세부구현사항들을 정의할 수 있도록 잘 유도(?)했어야 했는데 이부분도 놓쳤다. 다른 조의 프로젝트 페이지를 참고하다가 깃 커밋전략을 적어놓은 조와 코딩컨벤션을 세세하게 정해놓은 조가 있었는데 이부분은 다음 프로젝트때 적용해야겠다.
- git repository를 생성할때 .gitignore 생성여부와 프로젝트파일 setup이 잘 되어있는지 체크를 못했다. 그 결과.. .gitignore를 다시 올리는데 불필요한 시간이 소요되었다.
- UI/UX 디자인을 진행할때 각 페이지(Activity)에 대한 세부구현사항에대한 설명이 미흡했다. 이부분은 튜터님 피드백을 보고 채워넣었다. 다음에 프로젝트 셋업시 이부분에도 신경써야겠다.
- 개발일정을(특히 마감일정은) 정해놓고 공유하는것이 너무도 중요하다는것을 생각하게되었다. 프로젝트 일정은 자칫하면 놓치기 쉽고 조원들과 함께 작업을 진행하다보니 다들 코드에 몰입하여 개발일정에관해 고민하는 사람들을 발견하기 어려웠다. 이런부분들은 내가 팀장이니 더 디테일하게 신경쓰고 관리해야겠다는 생각이들었다. 물론 내가 팀원일때도 팀맴버와 일정관련한 디테일한부분들은 지속적으로 나누고 공유해야함을 절실히 느끼고있다.
- 많은 부분들을 놓쳤지만 나중에라도 하나씩 채워넣을 수 있게되어 어찌어찌 프로젝트가 진행되고있다. 하지만 이러한부분을 처음부터 확실히 setup해놓는다면 필요이상의 시간을 사용하지 않을 수 있겠다는 생각이다.
myPageActivity
- 팀 공통주제는 협업에 필요한 SNS앱을 구현하는것이다. 단 배우지않은 기술은 사용하지 않는다는 조건이다(RecyclerView, Adapter등..) 현재 배운것은 Activity, Intent, 기본적인 Component들이므로 이것들만 사용해서 개발을 진행해야한다.
- 우리팀은 네이버웍스를 기본틀로 잡아 개발을 시작했다. 내가 맡은 영역은 user를 터치할때 보여주는 화면으로 아래와 같이 구성했다.

- 여기서 할일 목록을 입력할때 CheckBox가 동적으로 추가되도록 기능을 구현해보았다. 처음 아이디어는 CheckBox를 미리 Layout에 여러개 만들어놓고 필요할때마다 visibility를 바꿔가며 사용하는것이었지만 이것보다는 아무래도 activity에서 동적으로 생성하는게 깔끔하다고 생각이들이 구현하였다.(물론 여기에는 사용자가 할일을 수십개 등록하지않는다는 전제가있었다..)
- 그리고 사용자가 할일을 완료하여 체크박스를 체크할경우 해당 할일은 목록에서 사라지도록 구현하였다. 그리고 혹시몰라 List에 담아두었다(내가 한일을 보고싶다고한다면? 이라는 생각이 들어서이다.)
- 간단한 기능들이기에 개발시간자체는 길지 않았다.
팀 프로젝트를 개인프로젝트로 도전해보기
- 팀 프로젝트에서 프로젝트 setup 및 미흡한 부분들을 보완하고나서도 시간이 남았다. 그래서 내 개인github repository에 따로 프로젝트를 만들고 작업중에있다.
- 어제부터 제대로 시작해서 회원가입과 로그인 activity를 구현했고 여기에 User model class와 UserData라는 class를 통하여 user정보를 관리하고 가입 및 id,pw 검증처리 등을 구현했다.
- 내일은 게시판과 나머지 기능들 및 ui를 구현하려고한다. 구현하면서 느낀것은 단순하다고 생각한 앱도 생각보다 많은 디테일한 처리들이 요구된다는 것이었다. 가령 로그인 페이지에서 회원정보를 검증할때 id가 존재하지 않는경우의 처리라던지, id, pw를 정규식으로 검증하는 처리등이 있었다.
Outro
- 시간이 지날수록 프로젝트의 복잡도는 점점 늘어날것이라 생각한다. 현업에서 요구하는 복잡도는 이것보다 훨신더 가파르고 별의별 이슈들을 해결해야되겠지?
- 그럼에도 지금 배우고있는 기본들이 익숙해지고 숙련되어지면서 새로운 기술들을 숙련된 기술로 만들어가는것이 공부라고 정리되어진다. 이전에는 강의에서 들었던 모든기술들의 키워드가 머리속에만 있을때에도 다 안다고 생각했었지만 역시나 개발은 손으로 하는것이었다는것을 느끼는 요즘이다.
- RecyclerView를 공부할때처럼 더더욱 숙련되어서 내 안에 기술들이 잘 적립되어지길 소망해본다.
좋은 글이네요. 공유해주셔서 감사합니다.