brunch

You can make anything
by writing

C.S.Lewis

by ONicial Kes Aug 06. 2023

첫 개발 프로젝트, 협업이 뭔지 깨달았다.

원래 사람은 잘 안될 때 뭔가 깨닫는다.

    우리 팀은 결국 3명으로 프로젝트를 하기로 결정했다. 결정과 별개로 걱정이 안 되는 것은 아니었다. 그래서 나는 최소한의 기능만 구현할 것을 이야기하고 이에 맞춰서 작업해 줄 것을 팀원들에게 요구했다. 그리고 다음으로 우리는 다른 문제에 당면했는데 바로 사용 기술 스택이었다. 물론 거의 모든 부트캠프가 그렇듯 노드를 가르쳐주었기에 벡엔드는 노드 사용 말고는 다른 선택지가 없었다. 하지만 프런트는 경우가 달랐다. 우리가 3명으로 시작한다는 것을 보고 이에 프론트 코치님이 프로젝트 완성을 위해서 템플릿 엔진을 사용할 것을 권했다. 사실 여기에서 의견이 분분했는데 나는 맨 처음 그냥 학습을 목적으로 그냥 템플릿 엔진 사용을 해도 상관이 없다고 생각했지만, 프론트 중 한 분은 현업에서도 잘 사용하지 않는 이 기술을 왜 배우는지 모르겠다고 말씀하셨다. 사실 나도 이 말에 100% 동감하지만, 그냥 이와 별개로 나는 학습의 목적 그리고 프로젝트의 완성을 가늠할 수 없었기 때문에 템플릿 엔진을 써서 완성시키기는 것이 나쁘게만 들리지 않았다. 우리는 또다시 긴 논의에 접어들었다.


    우리는 학습과 프로젝트라는 갈림길을 앞에 두고 있었다. 이를 해결하기 위해 코치님에게 왜 템플릿 엔진을 사용을 권하는지 여쭤보았고 프로젝트 완성, 현업에서 사용할 수도 있다는 등의 근거를 이야기해 주셨다. 나름 긴 시간을 이야기를 듣고 나는 알았다고 이야기를 했지만 한 편으로 오히려 마음이 더 불편해진 기분이었다. 애초에 우리는 배우는 입장이라 코치의 말을 뒤집고 우리 식대로 하기 어려운 면이 있었다. 다른 팀원들도 수긍을 했지만 마음속은 그렇지 않을 거라 혼자 짐작했다. 그리고 몇 시간 뒤에 코치님에게 다시 연락이 왔고 이 이야기를 듣고 나는 이 프로젝트의 끝이 어떻게 될지 더 이상 궁금하지 않았다. 코치님은 리액트를 가르쳐줄 테니 리액트로 구현하는 것이 어떻냐고 권하셨다. 아마 코치님도 마음 한편이 불편했음이 분명했다. 나는 리액트를 사용하는 것에 대해 적극 찬성이지만, 프론트 두 분 중 한 분은 이제 기초를 뗀 상태이고 한 분은 아예 처음이라 강한 의지를 갖고 하지 않는 다면 프로젝트 미완성될 것이라고 우려를 표했다. 하지만, 해보겠다고 두 분의 다짐을 받고 우리는 리액트, 노드로 프로젝트 구현을 시작했다. 이미 3일이 잡아먹힌 시점에서 우리는 다시 시작점에 섰다. 그런데 나는 이미 힘을 다 뺀 듯했다. 계속해서 팀원들의 의견을 수렴하고 정리하고 그리고 이 의견을 코치님과 또 나누고 부트캠프 매니저들과 조율하는 동안 진이 다 빠졌다. 왜 협업이 어려운지 깨닫는 순간이었다.


    그리고 다시 모니터를 보며 내가 무엇을 해야 할지 살펴보았고 api 명세서 작성이 눈에 들어왔다. 나는 url과 api를 혼동하고 있는 바람에 꽤나 작성에 어려움을 겪었다. 모던 자바스크립트 딥다이브 스터디에서 rest에 대해서 공부하고 발표를 했고 나름 이해를 했다고 생각했는데 큰 구멍이 뚫려있었다. 그렇게 내가 아는 내용을 다시 정리해 가며 명세서를 작성하고 이 명세서는 프론트와 이야기하며 조금씩 바뀌어 갔다. 그리고 백엔드 한 분이 나갔기에 그분이 맡은 데이터 모델링을 내가 다시 맡아서 스키마를 작성했다. 참 이상하게도 코드가 그렇게 복잡한 것도 아니고 실상 한 번 배웠던 내용인데 잘 작성하지를 못해서 굉장히 답답했다. mongoose에서 메서드만 잘 사용해서 데이터를 전달하면 될 텐데라는 생각이 들었지만 postman에서는 잘 작동하지 않았고 사실 내 부족함을 크게 느낀 순간들이었다. 지금 글을 쓰는 이 순간도 그동안의 공부가 헛된 것 같아 부끄럽다. 


     우리 팀은 그렇게 한 동안 본인의 작업에만 몰두했다. 매일 작업 상황만 공유하고 스크럼을 마쳤으며 저녁에 코칭을 받고 스케줄링에 대해서 논의했다. 나는 2주 차가 되자 수요일까지 api 작동을 완성시키고 테스트를 마칠 것을 공유하고 목금은 배포에 신경 쓰자고 했다. 게다가 금요일에는 시연 영상과 발표자료를 준비해야 하기에 정말 시간이 빠듯했다. 나는 정말 기본적인 api만을 구성했다. 로그인, 회원가입, 주문정보, 상품정보 crud만을 작성했고 수요일 마지막에 되어서 배포하는 것까지 어찌어찌 코치님의 도움을 받아 완성했다. 게다가 간단한 정규식을 통해서 유효성 검사를 마쳤다. 결과물 자체는 아쉬웠지만 혼자 백엔드를 맡아서 여기까지 왔다는 게 위안거리였고 백을 해보면서 서버와 프론트를 바라보는 시야가 넓어졌다는 느낌을 받아서 뭔가 성장한 것 같았다. 

  

     그렇게 나는 프로젝트가 잘 마무리될 것이라고 생각했다. 나는 발표와 시연영상 제작을 맡아서 어떻게 잘할지 고민하고 있었다. 발표는 늘 도맡아서 하는 것이라 크게 걱정하지 않았다. 그런데, 프론트에서 문제가 발생했다. 이전 회의 중에 프론트 한 분이 너무 작업량을 많이 잡아놓기에 이거 다 할 수가 없다고 말을 했었는데 계속 붙잡고 하다가 목요일, 프로젝트 종료 하루가 남은 시점에서 아직 다 못했다고 폭탄발언을 한 것이다. 순간 화가 너무 났다. 이전에도 기능 구현이 많아 못하겠으면 코치님을 붙잡고 하던가 진행 과정을 지속적으로 공유해 줄 것을 요구했는데 아무런 말도 없다가 배포 테스트도 못한 시점에서 프로젝트 하루를 남기고 못했다고 이야기를 해버린 것이다. 사실 나도 내 것을 하느라 정신이 없어서 프론트 상황을 챙기지 못했는데 프론트도 각자 파트 맡느라 소통이 부족했던 탓인지 서로 두 분의 작업 상황을 체크하지 못했던 것 같다. 순간 머리가 띵해졌다. 


    결국 다른 프론트분이 못한 부분을 구현하고 버그를 고치고 코드까지 뜯어고치는 상황이 발생했다. 결국 배포된 상황에서 테스트를 못하고 로컬에서 테스트를 하면서 디버깅할 부분을 찾고 있던 중 어떤 이야기를 하다가 왜 자기 탓을 하냐는 말에 정말 화를 낼 뻔했다. 리액트를 처음 배우는 것이기에 못할 수 있다고는 생각했고 못해도 상관없지만 왜 미리 공유하지 않고 혼자 잡고 있다가 모두가 새벽까지 밤새는 상황에서 그런 말을 하는지 도통 이해되지 않았다. 결국 퍼블리셔 경험이 있던 분이 밤을 거의 새우다시피 해서 코드를 고치시는 가운데 백이었던 간단한 수정을 하고 있었고 코드를 넘긴 다른 한 분은 발표 pt를 만들게 되었다.  


    나는 비몽사몽으로 아침 일찍 일어나 발표 준비를 하고 5번째로 발표를 마쳤다. 난 발표를 마치고 바로 잠에 들었다. 생각 이상으로 힘들었던 2주였다. 하지만, 나는 꽤나 좌절스러웠다. 이렇게 힘들었지만 나온 결과물은 전혀 만족스럽지도 뜻깊지도 않았다. 사실 당연하기도 했다. 백엔드를 공부해보지 않았기에 코드를 잘 쓰는 것 자체가 이상한 일이었다. 그래도 잘하길 바라는 내 욕심은 현실에 부딪혀서 멍이 들었다. 개발은 정말 자기가 진심으로 공부해서 아는만큼 보인다는 걸 꺠달았다.


    그러나 2주간 힘들었던 것 개발 때문은 아니었다. 수많은 회의 속에서 결론을 이끌어내기 위해 정말 많은 시간과 노력을 쏟았다. 물론 유독 사건사고가 많아서 더 크게 느껴졌다. 왜 괜히 커뮤니케이션이 중요하다고 말하는지 알기도 했지만 사실 그 보다 중요한 건 개발 지식인 것 같기도 했다. 뭘 알아야 논의에 참여할 수 있기 때문이다. 아마 난 미리 공부하지 않았다면 꿀 먹은 벙어리에다가 팀장 역할도 제대로 해내지 못했을 것이다. 아무튼 여기에다 가라도 개발 회고에서는 쓸 수 없었던 말들을 써서 후련하다. 다른 프로젝트에서는 좀 더 성장한 모습으로 정연하게 해보고 싶다.

작가의 이전글 첫 개발 프로젝트, 유튜브 콘텐츠도 이렇게 못 만들겠다
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari