프로젝트 시작 단계에서 기초를 잡아놓은 것이 도움이 되었다. 코드 작성 규칙, 프로젝트 요구사항, 페이지별 기능 정의, 예상 일정 등을 정리했는데, 이로 인해 실제 코드를 작성하기까지 시간이 좀 걸리긴 했지만 비교적 큰 어려움 없이 프로젝트를 진행할 수 있었다.
사용자 친화적 UI & UX을 구현하기 위해 많은 고민을 했다. 로고 등 필요한 이미지 소스를 직접 제작했고, 사용자가 많고 활발히 운영 중인 웹사이트들을 참고해 컴포넌트를 배치하여 실제 웹사이트를 이용할 때 불편함이 없도록 노력하였다.
웹사이트 로고. 부산 여행이라는 테마에 맞게 만들었다.
매일 모든 팀원과 진행 상황을 공유하며 의사소통을 활발히 했다.주말에 각자 집에서 작업을 할 때는 디스코드로 작성한 코드와 페이지를 보며 의견을 나누었다. 덕분에 어려움이 있으면 함께 해결할 수 있었고, 일정 관리도 수월했다.
주석을 달아 다른 팀원이 볼 때도 해당 메서드가 어떤 역할을 하는지 직관적으로 알 수 있도록 하였다. 다른 팀원의 파트에서 문제가 발생했을 때 코드를 더 빨리 이해하여 해결할 수 있었다.
🚀 Problem
프로젝트 초반 gitignore 파일 작성을 잘못하여 push할 때 충돌이 발생했다. 파일 수정 후에도 여전히 충돌이 발생했는데, git의 캐시 때문이었다.
Controller에서 넘긴 List 타입의 데이터가 null일 때, 이를 JSP에서 처리하는 과정에서 어려움이 있었다.
비동기 방식으로 구현한 댓글을 변경할 때 화면에 보여지는 과정에서 쿼리 수행과 화면 렌더링의 시간차 때문에 기대했던 대로 동작하지 않았다.
도메인과 UI의 분리, 생성과 사용 로직의 분리가 잘 되지 못했다.
프로젝트 기획을 상세히 했지만 그럼에도 테이블의 필드가 변경되었고, 해당 부분의 코드 수정이 불가피했다.
AWS로 배포하는 것을 고려했지만 테스트 단계에서 막혀 일정을 고려해 포기하였다.
테스트 케이스 작성을 잘 하지 못하였다.
Github의 issue 기능을 잘 활용하고 싶었으나 그러지 못했다.
무언가에 대해 얘기를 할 때(구현할 기능 등) 상대방이 의도를 명확히 파악했다고 생각했지만 잘못 이해한 경우가 있었다.
4개월 간 같은 교실에서 함께 공부하며 어느정도 사람들의 역량을 파악했었고, 함께 프로젝트를 하게 된 팀원들의 역량과 희망사항을 고려하여 파트를 분배했다. 하지만 나의 판단과 현실에 괴리가 있어 처음 계획과 달리 몇몇 기능을 제외하거나, 누군가 맡기로 한 기능을 다른 사람이 구현하게 되었다.
🚀 Try
공부했던 내용임에도 개념을 완전히 이해하지 못했거나 기억이 나지 않으면 실제 코드에 적용할 때 어려움이 있다. 계속 꾸준히 공부하며 중요한 부분은 글로 잘 정리하도록 해야겠다.
비슷한 결로, 뭔가를 하고자 했지만 하지 못한 것은 지식의 부족이 원인이다. 실제로 잘 알고 있었다면 프로젝트에서 발생했던 대부분의 문제에 어려움을 겪지 않았을 것이고 배포도 시간 내에 가능했을 것이다. 하지만 실제로 경험이 부족하고 아직 배워가는 단계이기 때문에 발생할 수밖에 없는 일이라 생각하고, 지속적으로 공부해 나가는 것이 정답이다.
기획 단계가 프로젝트에서 굉장히 중요한 부분이라는 것을 깨달았다. 이번 경험을 바탕으로 다음 프로젝트 때는 더욱 꼼꼼하게 설계를 해서 변경사항이 최대한 적도록 하겠다.
Github의 issue에 다들 익숙하지 않아 활용할 수가 없었다. issue가 등록되면 알림이 오도록 하는 기능이 있는 걸로 알고 있는데, 아마 이렇게 알림이 오도록 했다면 좀 더 활용을 잘했을 것 같다. 다음 협업 때는 꼭 사용해보고 싶다.
협업의 과정에서 팀원 간 발생한 문제들은 대화를 통해 합의점을 도출했다. 개발과 협업은 늘 공존하기 때문에 앞으로도 소통을 중요시 해야겠다.
마무리
프로젝트 기간 동안 어떻게 시간이 흘러갔는지 모를 정도로 정신이 없었다.
나의 첫 번째 프로젝트였는데, 팀장으로서 팀원과 프로젝트를 잘 이끌어나가려고 많은 노력을 했다. 🥹
함께 교육 과정을 진행한 다른 팀들은 모두 전공자가 팀장을 맡아 여러 가지 부분에서 나보다 더 나을 것이라 생각이 들었었다.
프로젝트 초반부터 결심했던 게 있는데, 팀원 간의 마찰이든 코드 작성 부분이든 팀원이 스스로 문제를 해결하는 것이 어려울 때는 내가 반드시 해결해 주겠다는 것이었다.
프로젝트를 마치고 팀원들에게 덕분에 잘 해낼 수 있었다는 말을 들었을 때는 그간의 노력이 유의미했던 것 같아 뿌듯했다.
프로젝트 발표 때 내가 구현한 부분에서 어떻게 구현한 건지 질문을 받았고, 웹페이지의 디자인과 시연 영상도 칭찬을 받아 또 한 번 뿌듯했다!