Oil Of Yats 프로젝트 회고

front-end developer·2022년 8월 20일
0

Oil Of Yats

어느덧 일도 많고 탈도 많았던 2차 프로젝트가 끝이났다. 여기서 말하는 2차 프로젝트란, 백엔드 개발자 3명 프론트엔드 개발자 4명이 팀을 이뤄 하나의 사이트를 선정해 2주동안 가능한 기능구현을 처음부터 끝까지 직접 해보는 프로젝트를 말한다. (2차라는 의미는 똑같은 방식으로 1차 프로젝트가 있었다는 의미)

1차 프로젝트 후기 보기

그래서 어떤 사이트를 구현했느냐? 운이 좋게도 내가 사전에 제안했었던 감성 숙박 예약 사이트 스테이폴리오(STAYFOLIO)가 다수결(?)로 당첨되었다! 스테이폴리오는 1년에 두어번쯤 갈만한 좋은 숙소들을 소개해주는 예약 사이트이면서도 매거진이기도 한 사이트다. 평소 관심있는 분야와 회사의 웹사이트를 찾다보니 기능도 많고 디자인도 깔끔해서 추천했었다.

STAYFOLIO 사이트

그렇게 팀이 결성되고 우리는 STAYFOLIO를 거꾸로 한 Oil Of Yats라는 팀명으로 프로젝트를 시작했다.

불타는 의지

1차 프로젝트가 끝나자마자 시작된 2차 프로젝트라 우리의 첫 만남은 불타는 의지로 가득했다. 다들 나랑 비슷한 회고를 했는지 기능 구현에 집착하지 말고 협업에 중점을 두자는 의견이 정말 많이 나왔다. 거의 프론트끼리도 서로 진행상황을 wrap-up 하고 내 코드를 남들이 이해할 수 있도록 발표하는 시간을 갖자 라고 할 정도였으니까 말이다. 지금 생각하면 정말 순수했던 것 같다. 앞으로 어떻게 될지도 모르면서... 그렇지만 나도 1차 프로젝트 이후 팀원과 협업 소통을 더욱 잘해보고 싶다는 욕구가 강하게 있었다. 그래서 프로젝트의 시작의 느낌이 너무나도 좋았다.

작은 신경전

프론트개발자 끼리 모여 업무 분담 시간을 가졌다. 다들 1차 프로젝트 때 한따까리 하고 온 사람들이라, 1차랑 중복되지 않는 업무를 담당하기로 했다. 각자 프로젝트 기능 구현에 대한 욕심이 있어서 초반에 신경전이 살짝 있었지만, 업무 분담은 어떻게 잘 마무리되었다. 챌린지요소가 있는 업무를 1가지씩 다 분담했고, 내 경우에는 입점문의라는 기능을 담당하게 되었다.

입점문의는 스테이폴리오 웹사이트에서 유저가 자신의 스테이(숙소)를 스테이폴리오에 등록하기 위해 신청하는 페이지이지만, 우리는 이것의 기획을 살짝 변경하기로 했다. 유저가 입점문의라는 페이지에서 자신의 스테이에 대한 모든 정보를 다 입력하고, 작성이 완료되면 리스트 페이지에서 곧장 볼 수 있도록 구현하는 것이다. 이를 통해 프론트 측면에서는 formData라는 객체에 담아 백엔드에 보내는 형식을 해볼 수 있다. 그리고 백엔드 측에서는 AWS S3 라는 주요 기능을 배워볼 수 있다는 챌린지적인 요소가 담겨있다.

프론트 업무 분담이 정해지고 나서 백엔드 개발자분들과 회의를 했는데, 백엔드에서는 AWS S3라는 기능이 어려워 기간안에 구현을 못할 수도 있다고 하셨고, 결론적으로는 입점문의 기능은 제외했으면 좋겠다는 의견을 말씀해주셨다. 사실 우리만 원한다고 추가할 수 있는 부분은 아니기 때문에 입점문의 기능을 빼고 프론트측 업무 분담을 다시 했다. 챌린지적 요소 4개를 4명이 1개씩 분담받은 상황에서 1개가 빠져 애매한 상황이 되버렸다. 프론트끼리 의견을 다시 맞대본 결과 입점문의는 얻을 것이 많기 때문에 결과가 안나오더라도 시도는 한번 해보자!라고 결론이 나왔다. 백엔드분께 우리들의 의견을 한번만 요청해보고 회의후에 그래도 어렵다고 의견이 나오면 그때 다시 업무를 분담해보는 것으로 정했다. 결국 다같이 다시 회의를 했는데, 백엔드 분들이 개발자 멘토분들께 조언을 구해 한번 도전해보는 방향으로 의견을 굳혔고 그렇게 업무분담이 정해졌다. 당시 상황은 백엔드에서 테스트 코드 작성이라는 큰 과제가 주어져 AWS S3까지는 구현 못할 것 이라는 상황이었다. 그럼에도 불구하고, 입점문의 기능을 한번 도전해보자라는 어려운 과제를 받아들여주신 백엔드 개발자분들께 정말 감사했다.

하나에 집중하자

1차 프로젝트때는 거의 모든 팀원들이 trello와 notion을 둘 다 사용했었다. 하지만, 두 가지 사용했을 때 오히려 한 가지에는 소홀하게 되고, 같은 업무를 반복하는 단점들이 있었다고 피드백이 있었다. 우리 1차의 경우에도 2가지를 사용하면서 혼란이 있긴 했었다. 이번에는 trello만 사용하되 이전보다 업무를 더욱 세세하게 나눠서 카드를 생성하고, 카드 리스트도 다양한 항목들을 추가해서 진행하기로 했다.

결과적으로, 이번 프로젝트 기간동안 trello의 사용은 이전보다 만족스러웠다. 각자의 업무를 세분화해서 표시하니 팀원이 현재 어떤 부분을 담당하고 있고, 어디까지 완료했는지 눈에 보였다. 그리고 API명세서나 데이터베이스 구조를 공유해줌으로서, 입점기능 구현 시 도움이 정말 많이 되었다.

제가 할게요! 제가 할ㅇㄱ.. ㅎㄱ헉

입점문의라는 기능 구현을 넉넉하게 스케줄을 잡았었다. 그런데 생각보다 프론트측에서는 기능구현이 1차적으로 빠르게 완료됐고, 백엔드와 통신을 해야하는 상황이었다. 하지만 백엔드에서는 AWS S3를 구현하는 것에 러닝커브가 상당한 것 같았고, 시간이 좀 남을 것 같아 네브바를 구현하였다. 네브바 구현도 완료한 시점에서 상세페이지를 맡고 있는 수정님이 업무가 많아 힘들어하셔서, 내가 룸 상세페이지를 도와드릴까라는 고민을 했다. 조금 애매하긴 했지만, 당시 판단하기로는 시간이 남는다고 생각했고 도움을 드리면 좋을 것 같다는 생각에 미팅때 팀원들에게 호기롭게 말했다. 룸 상세페이지를 맡기로...

하지만, 입점문의 기능은 예상치 못한 난관과 시련들이 가득했다. 이미지만 formData에 담아 보내는 방식에서 스테이에 모든 정보를 formData에 담는 방식으로 변경되면서 시간이 많이 소요됐다. 이외에도 이미지를 여러장 담을 경우 백엔드에 잘 송신되도록 했던 점에서도 시간이 많이 소요됐으며, 스테이에 룸이 여러개일 경우 룸 정보안에도 사진이 들어가는데 이를 병렬적으로 처리하는데도 굉장히 어려웠다. 결국 현진님과 끊임없는 소통을 하며 발표전날 겨우 완성을 하게되고, 그제서야 룸 상세 페이지를 작성하기 시작했다.

찜질방 행

발표 1일전이란, 팀원들의 모든 코드를 통합하고 그 과정에서 발생한 오류들을 해결하며 시현영상까지 녹화가 완료되어 있어야 한다. 하지만 밤 10시가 다되가는 시간에 우리 팀은 기능 구현을 하고 있었던 것이다!!! 내가 기능 구현을 하는 동안 먼저 끝내신 팀원들께서 통합을 하기 시작하셨다. 그치만, git rebase라는 새로운 방식에서 생겨난 엄청난 conflict의 늪에서 허덕이고 있었다...

이 상황에서 2가지 선택지가 있었다. 첫 째는 코드를 통합 하지 않고 각자 기능 구현을 촬영한 후 영상을 붙인다. 이렇게 한다면 막차 전에 다들 집에 갈 수 있다. 두 번째는 누군가 남아서 코드를 다 통합하고 영상촬영까지 완료하는 것이다. 나는 1차때도 코드를 통합한 경험이 있고, 하루쯤 밤새는 것도 부담되지 않고, 무엇보다 가짜로 짜집기하는게 싫었다. 어떻게든 코드를 통합시키고 싶었고 할 수 있다고 판단했다. 또한 백엔드 분들에게도 구현한 기능들을 허무하게 못보여주는 것이 너무나도 죄송스러웠다. 결국 나는 오늘 찜질방행을 선택했다!!!!!

팀원들이 나만 남아있는다고 하니 너무 죄송스러워해서 또 괜히 일을 벌였나 싶기도 했지만, 나는 팀원들을 위한다는 생각보다는 내가 구현하고 싶은 욕심이 더 컸던 것 같다.(하루 쯤 찜질방에서 자지 않을까 했는데 드디어 오늘이 그 날 이구나!! 올것이 왔다!! 라고 생각했음.) 역시 남의 코드를 읽고 해석하고 수정하는 건 당사자가 옆에 있지 않으니 어려웠다. 그래도 다행인 것은 다들 이미 잘 구현을 해주신 상태에다가 git rebase도 마지막에 commit을 하나만 남기고 잘 해주셔서 통합도 어떻게 잘 됐다. 이 부분에서는 원익님께 정말 큰 도움을 받아 너무 감사한 마음이다ㅠㅜ(역시 원익님.... 감사합니다!!! 리스풱!!!!!!!!!)

어떻게 통합은 완료됐고 혼자 촬영을 하려다 로그인 기능에서 오류가 떠서, 우선 찜질방에가서 자고 다음 날 아침에 해야겠다고 생각했다. 다음날 팀원과 함께 발표 직전에 영상을 완성했고, 따끈따끈한 시현영상을 재홍님께서 엄청나게 현란하게 애드리브로 설명을 해주셨다.(어떻게 저렇게 말을 잘하시지???) 그렇게 일도 많고 탈도 많았던 2차 프로젝트가 끝났다.

profile
학습한 지식을 개인적으로 정리하기 위해 만든 블로그입니다 :)

0개의 댓글