내가 생각하기에 이번 프로젝트를 하면서 앞으로 다른 프로젝트를 진행하면서도 이건 나와 다른 사람들이 계속 유지해야할 정도록 좋았다고 생각하는 부분은 다음과 같다.
팀워크와 협력: 팀원간의 의사소통과 협력이 꽤 원활하게 이루어졌다. 특히 서로 프로젝트에 대한 아이디어라든가 구현하고 싶은 기능이라든가 각자 적극적으로 의견을 표현했고 이에 대한 피드백도 나름 원활하게 이루어졌다고 생각한다.
GIT을 통한 협업 시도: 나를 포함한 대부분의 팀원들이 깃을 통한 코드 관리와 협업이 익숙하지 않아 여러 실수와 에러에 직면하였지만 이러한 곤경을 겪으면서도 다들 적극적으로 깃을 사용하려고 노력하였고 이 덕분에 효율적으로 분업과 협업이 진행될 수 있었다.
주기적이고 다양한 테스트 시도: 방명록 기능을 실행하기 위해서는 직접 Flask를 통해 MongoDB에 접속해야만 했는데 몇몇 팀원은 이러한 연결 과정이 문제 없었고 몇몇 팀원은 연결에서 크게 애를 먹었다. 방명록 기능을 포함하여 각 기능들을 구현 후 여러 환경, 여러 팀원에게도 문제 없이 작동하는지 팀원들이 모두 본인의 담당 부분을 구현하는 와중에도 적극적으로, 다방면으로 테스트하는 데에 참여해주어 기한 안에 최대한의 에러를 잡아내고 큰 버크 없이 기능들을 구현낼 수 있었다.
내가 생각하기에 이번 프로젝트를 하면서 아쉬웠고 앞으로의 프로젝트에서 개선되었으면 좋겠다고 생각하는 부분은 다음과 같다.
기술 부채: 아무래도 UI 개발은 다들 적다 보니까 화려하고 멋있는 기능들을 구현하기에는 실력이 부족해서 최대한 기본적인 기능을 구현하는 데에 그쳤던 것 같다. 다들 프론트엔드 쪽도 열심히 공부해서 다음 프로젝트 때에는 더 나은 화면과 기능을 선보여 더 그럴싸한 프로젝트를 만드는 데에 기여했으면 좋겠다.
코드 확장성 및 이해도 미흡: 프로젝트 일정이 아주 충분치는 않다 보니까 아무래도 임시방편으로 코드를 작성하는 경우가 많았다. 임시방편 코드로 구성된 코드에 기능을 확장한다든가 새로운 디자인을 추가한다든가 하는 경우 코드가 꼬이면서 버그가 일어나는 경우가 꽤 있었다. 또한 기술 부족으로 구글링, 유튜브 등에서 코드를 가져쓰다 보니까 코드에 대한 이해도가 낮은 상태로 특정 기능들을 구현하는 경우도 곧잘 있었다.
시간 관리: 프로젝트 초기 단계에서 시간 관리를 제대로 하지 못해 중반 이후 일정이 촉박해져 발표 전날에 기존보다 늦게, 오랜 시간 동안 잔업을 해야했다. 일부 기능은 시간 부족으로 인해 충분히 테스트되지 못한 상태로 릴리스되었다는 것도 시간 관리의 부족함으로 인한 패착이었다.
위에 기술한 Problem에 대해 일단 당장 시도해볼만한 점을 다음과 같다고 생각한다.
일정표 수립으로 인한 더 철저한 시간 관리: 앞으로는 프로젝트 계획 단계에서 각 작업의 시간을 최대한 정확히 추정하고, 여러 변수들을 포함한 현실적인 일정을 세울 계획이다. 이러한 시간 분배로 이번과 같이 프로젝트 막바지에 터져 나오는 버그들 때문에 개발 일정이 촉박해지는 것을 최대한 미연에 방지할 수 있을 것이라고 기대한다.
유지보수성을 고려한 코드 작성: 단순히 급급하게 돌아가기만 하는, 기능구현에만 치중한 임시방편의 코드를 작성하는 게 아니라 해당 기능을 유지보수 및 확장할 경우도 고려하여 장기적인 관점으로 코드를 작성해보도록 노력해보자.