지난 7월부터 시작되어 11월에 끝난 당당프로젝트의 후기에 대해 쓰고자한다. 5개월이라는 시간이 짧은 시간이 아니였지만, 프로젝트와 수업이 동시에 진행되어 결코 시간이 넉넉하다곤 할 수 없었다. 시간에 대한 변명은 이쯤하고 지난 프로젝트를 되짚어보자.
프로젝트를 진행하면서 가장 힘든점을 꼽으라하면
1.기획
2.의사소통
3.기술
이 세가지를 꼽겠다. 첫 번째 어려움으로 꼽은 '기획'은 프로젝트의 성공과 실패를 좌우한다고해도 과언이 아니다. 우리조는 처음에는 우리 프로그램을 사용하는 사용자가 식품에 정보를 제대로 파악하여 '건강관리'를 한다는 걸 기획했다. 기획 하나만 하는데에도 일주일 이상 걸렸다. 우리가 기획한 걸 피그마로 옮기는 작업을 했는데, 작업을 진행하다보니 처음 우리의 기획과는 다르게 점점 상품을 소개하는 '쇼핑몰' 프로그램처럼 기획이 어긋나버렸다.(이 작업도 한달가량 걸렸다....)
기획과 피그마 작업을 한달넘게 했는데 어쩔 수 없이 모든 걸 다시 처음부터 기획하게 되었다. 그 결과 두 달가량의 시간을 기획에만 쏟게됐고 이미 코딩을 시작한 다른 조들을 보며 조바심을 느꼈다. 그 결과 결국 프로젝트 막판까지도 쫓기며 작업을 하게됐다. 이처럼 기획은 프로젝트의 성공과 실패를 결정하는 키라고해도 과언이 아니다.
두 번째 어려움은 '의사소통'이다. 처음 프로젝트를 시작할 때 당연하게 git을 통해 프로젝트를 관리하기로 했다. 하지만 깃을 통해 프로젝트를 관리하자고 말만했지 실상 깃을 통해 프로젝트가 진행되지 않고 각자 따로 작업이 진행됐다. Merge할때 충돌문제를 염려한 나는 회의를 통해 깃을 통해 Merge를 하고 즉시 git을 통해 프로젝트를 관리하자고 주장했다. 충돌문제에 대해 다른 팀원들도 공감하여 즉시 Merge를 하고 git을 통해 프로젝트를 관리하기로 했지만, 또 다시 말 뿐일뿐 git으로 프로젝트가 관리되지 않았다.
그래서 나는 또다시 팀원들에게 git의 필요성을 이야기했지만, 팀원중 한명은 프로젝트 폴더위치, 클래스명 등 통일 해야할 것들만 잘 지키면 충돌이 나지 않는다고 주장하며 git을 통해 프로젝트를 관리해야한다는 내 주장은 받아들여지지 않았다. 그 결과 프로젝트 막바지 쯤에 충돌문제로 우리조는 한참 고생을 했다. 내가 git관리의 중요성에 확신을 가지고 있었기 때문에 내가 더 제대로 주장했더라면 이런 고생은 안해도 되지 않았을까 생각하게 됐다.
나는 프로젝트에서 게시판 관리 시스템을 담당했는데, 이 시스템은 회원 시스템과 연관이 되어있는 시스템이다. git으로 프로젝트가 관리되지 않아 '회원'과 관련된 게시판을 만드는데에도 문제가 생겼다. 그래서 회원시스템을 관리하는 조원에게 몇 번이고 회원정보에 대한 코드를 부탁했지만, 여기서도 의사소통 문제로 인해 회원시스템에 관련된 코드를 받지 못하고 내 담당 프로젝트의 일정이 꼬이고 뒤로 밀리기 시작했다. 그러다보니 팀원들간에 의사소통 문제가 발생했고 알게모르게 서먹서먹한 관계가 지속됐다.
마지막으로 프로젝트를 진행하며 힘들었던 세 번째는 문제는 '기술'이다. 내가 포함된 조는 대부분의 조원들이 처음 프로그래밍을 접한 사람들이 대부분이였고 나 또한 그리 기술이 뛰어나지 않았다. 그 상태에서 개발을 진행하니 찾아보고 타이핑하고 검증하길 반복했다. 처음에 모든 게 서툴러 속도가 나질 않아 힘들었다. 하지만 프로젝트가 진행되면서 점차 익숙해졌고 기술에 대한 문제는 시간이 해결해줬다. 지금도 '기술'을 익히는데에 어려움을 겪고 있는데, 개발자라면 이 어려움은 어쩔 수 없이 지녀야하는 숙명인게 아닌가 싶다.
프로젝트를 진행하며 가장 어려웠던 '기획', '의사소통', '기술'에 대해 이야기 해보았다. 이 중에서도 개인적으로 가장 힘들었던 건 '의사소통' 이였다. 내가 말한것과 상대방이 받아들이는 게 달랐고 그 반대의 경우도 많았다. 그러다보니 프로젝트에서 변경사항이 생긴것은 한 두번이 아니였고 자연스레 교착상태에 빠졌었다. 그러다 보니 서로에 대한 서운함이 커지고 신뢰감을 읽기 시작했다. 이를 해결하기 위해 더 자주 얼굴보고 이야기하려했지만, 사람이하는 일이다 보니 서운한 마음은 감출 수 없었다. 의사소통의 문제는 프로젝트의 속도를 늦춘다는 문제를 했지만, 무엇보다도 팀원들간 서로의 마음을 닫게 만드는 게 가장 큰 문제였다.
다음으로는 프로젝트를 수행하며 아쉬웠던 점을 이야기 해보려한다. 프로젝트를 진행하며 가장 아쉬운 점을 꼽으라하면
1.수업에서 배웠던 내용을 더 많이 써보질 못한 것
2.문서화
이 두 가지다. 수업에서 많은 기술들을 배웠다. 다름 수업들과는 다르게 Vue.js까지도 쓰는 기술을 배웠는데, 배울 때 마다 즉시 프로젝트에 적용하지 못했다. 배운건 기록해뒀지만, 머릿속에서의 휘발속도가 더 빨라 프로젝트에 적용하지 못했다. 그래서 수업시간에 배웠던 모든 내용을 프로젝트에 적용하고 익히질 못해서 아쉽다. 그리고 프로젝트 '문서화'를 제대로 하지 못한게 아쉬움으로 남는다.
API주소, 명칭 통일등 협업시에 필요한 내용들을 제대로 문서화 시켰어야했는데, 이를 제대로 하지 못해 프로젝트에 큰 어려움을 겪었다. 명칭으로 인한 충돌문제도 많이 발생했고 같은 의미의 단어도 각기 다르게 쓰다보니 통일성을 잃어 어지럽게 된 경우도 많았다. 모두가 제대로 된 문서화를 하지 않아 발생했던 문제였다. 처음부터 이 문제를 제대로 해결하고 넘어갔다면, 프로젝트의 진행속도도 완성도도 더 높아졌지 않을까?라는 아쉬움이 남는다.
프로젝트를 진행하면서 배웠던 기술을 활용해보는 좋은 기회를 가질 수 있었다. 무엇보다 가장 큰 성과라고 한다면, 혼자서는 해볼 수 없는 '협업'을 해봤던 경험이라고 할 수 있다. 협업을 통해 '기획', '의사소통', '기술'에 대한 문제를 접할 수 있었고 다음번 프로젝트에서는 이 문제를 해결하기 위해 어떻게할까 고민하게 됐다. 이 세 가지 문제중 내게 가장 큰 문제로 다가왔던 '의사소통'문제는 많이 얼굴보고 이야기하는 것 밖에 없다고 생각하는데 아직도 이게 적절한 해답인지는 모르겠다. 프로젝트를 진행하며 아쉬웠던 점이라고 꼽았던 '기술의 적용'과 '문서화'는 내가 앞으로 개발 생활을 해나가면서 중요한 가치 중 하나라는 사실을 이 프로젝트를 통해 깨달을 수 있었다.
프로젝트 회고를 쓰면서 '깨달았다'라는 단어를 많이 쓴 것 같다. 그만큼 이번 당당프로젝트를 통해 많이 배울 수 있었고 앞으로 개발을 해나가면서 어떻게 나아갈 시 방향을 잡을 수 있었다. 프로젝트를 진행하며 힘들고 하얀 안개속을 걷는 것 처럼 막막하기도 했지만, 안갯속을 나와 뒤돌아보니 이전보다는 개발자로서 한층 더 성장했다고 확신한다.