본문 바로가기
Project

[retrospec] EatTwoGetter 프로젝트 종료...?

by DuncanKim 2022. 10. 10.
728x90

[retrospec] EatTwoGetter 프로젝트 종료...?

 

 

1. 프로젝트를 마치며...?

 

9월 30일, 프로젝트 발표가 끝났다. 

배운 것들을 열심히 써먹어보고, 안 배운것도 수입해서 되게끔 맞춰가는 것을 경험하는 좋은 시간이었다.

더불어 협업, 협업 하던 것들도 실제로 부딪혀보고 어떤 충돌이 일어나는지, 무엇이 힘든 부분인지 경험할 수 있었다.

 

다 만들어놓고 나니, 생각해볼 것도 있고 기록해볼 것도 있어서 포스팅을 해보려고 한다.

그리고 '이것이 프로젝트의 끝일까...?'라는 생각도 해보고자 한다.

 

 

2. 프로젝트를 진행하며 일어났던 일

 

1) 서비스 아이디어 변경 

 

 처음 아이디어는 금융 용어 사전이었다. 한 이틀 간 이 서비스를 어떻게 구현할 것인지 고민하다가, 새로운 아이디어가 나오게 되었다. 지도 API를 이용하여 배달같은 것을 시킬 때 같이 시킬 사람을 구해서 중간 지점에서 같이 받을 수 있도록 도와주는 서비스를 만들어보자는 이야기가 나왔다.

 

 좋은 서비스인 것 같아서 팀원들 모두 동의를 했고, 이 서비스의 상세한 부분을 구상하기 시작했다. 나는 어디서부터 손을 대야하는 지 모르겠어서 일단 뭘 해야할 것 같으니까,,, API를 만지작 거리기 시작했다. 하지만, 이 서비스가 같이 배달 주문을 하는 것인지, 누가 주문을 해서 중간에 모일 것인지, 배달을 중간 지점에서 받아야 하는데 둘 다 안나오면 어떻게 할 것인지 등등 서비스에 대한 세세한 구상부터 이 서비스를 사람들이 어떤 경로로 택하게 될 것인지 시뮬레이션이 되지가 않아서 진도가 나질 않았다.

 

 이 부분에서 팀원들 간 이해하고 있는 부분이 다른 것 같아서, 팀장은 아니었지만, 내가 생각하고 있는 구상안을 먼저 건네 보았다.

 

 

 

발퀄 이었다...

기능이 기능인지 비기능인지 분류해야 한다는 것은 알고 있었는데 일단 무작정 때려 넣고, 어떤 페이지로 나올 지 등을 간략히,, 정말 간략히 해서 보여주면서 진행을 해보았다.

 

그랬더니 서로 같은 곳을 가리키면서 왼쪽으로 가야하니 오른쪽으로 가야하니 라는 말이 나오기 시작했다. 업무 분담도 이 때부터 조금은 더 정확히 될 수 있었고 각자 기능을 분담하여 개발을 시작하였다.

 

초기 기획 단계가 얼마나 중요한지, 그리고 더 세밀한 작업이 필요한 지를 느낄 수 있었다. 

내가 크게 기여한 것은 아니지만, 모두가 바라보는 곳이 다르거나, 가야할 방향 자체를 초기에 1도만 틀어놓아도 엉뚱한 결과물이 나올 수도 있음을 알 수 있었다.

 

 

(협업 커뮤니케이션... 조금은 이해했을지도...?)

 

 

2) 깃 협업 문제

 

 협업하면 깃허브, 깃이 떠오르는 것은 당연했다. 그런데 이것을 어떻게 활용할까? 팀원 중에 아무도 깃에 익숙한 사람이 없었다. 그래서 개발이 급한 만큼 일단 각자 코드를 짜고 모아보고 하는 식으로 진행을 했다.

 

 그러나,,, 최신의 코드가 무엇인지, 누가 얼마만큼 작업했는지, 다른 코드와 섞였을 때 어떤 오류가 나는지 도저히 알 방법이 없었다. 카카오톡으로 코드를 받아 붙여넣어서 구동하는가를 알아보는 작업... 지속될 수는 없었다.

 

 나의 개인 레포에는 계속 푸시를 하면서 커밋을 남겨 두었는데, 팀 구성원들 모두 다 그러고 있었다. 아니 그냥 다 모아놓으면 그게 그거 아닌가...? 라는 생각이 들었다. 그래서 조금 깃을 알아보고 이 방법을 적용해보기로 했다. 브랜치를 분리하고 각자의 브랜치에서 작업하고 병합하고 하는 방법. git flow 까지는 아니더라도 각자 이름을 가진 브랜치를 가지고 작업을 해보기로 했다.

 

 충돌,,, 무슨 에러메시지,,, 많이 나왔었다. 심지어 전체 브랜치가 있는 곳에서 rebase를 해서 깃 히스토리가 꼬이기도 했다. 게다가 커밋 규칙도 없는 상태에서 각자 메시지를 쓰고 올려서 히스토리가 어떻게 이어져왔는지도 불분명했다. 하지만, merge pull request를 하고 코드를 합쳐놓고, 모두 같은 것을 공유받는 상황까지는 진행을 할 수 있었다.

 

 세련되지는 않지만, 어쨌든 카카오톡 코드 공유에서 깃허브를 이용한 공유까지... 할 수 있었다. 커밋 단위를 세분화하지 않았지만, 업무 분담 자체가 확연히 경계를 이루지 못했어서 어쩔 수 없는 일이었다. 초기 깃 세팅과 업무 분담 세팅, 정책 수립이 상당히 중요한 것이며, 어떤 것들이 필요한 지는 알고 있어야 겠다는 생각을 했다. (물론, 초기 세팅을 할 일이 내가 있겠나 싶지만....)

 

 

3) 내가 팀장...?

 

 중간에 팀장이 취직을 해서 퇴소를 하여 내가 팀장을 맡게 되었다. 프로젝트 발표까지 10일이 남은 상황에서 팀장을 맡았기 때문에, 상관은 없었다. 프로젝트 전체 코드에 대해 설명은 못하지만, 일단 서비스를 소개할 방법, 방식에 대해 생각해 놓았기 때문에 그냥 맡았다.

 

 뭐 프로젝트 내에서 달라진 것도 딱히 없었고, 그냥 하던 대로 했다.

 

 

4) 워라벨

 

 없었다.

 

 조금씩 하던 운동도 그냥 제껴놓고 아침부터 새벽까지 그냥 달리는 거였다. 그 만큼 성과가 났느냐?

 

 그렇지 않다. 워낙 오류에 많이 부딪히고, 깃 에러 해결에 2~3시간을 쓰는 등 앞으로 못가는 부분들이 너무 많았다. 그래서 기능들을 풍부하게 구현하지는 못했고, 기본 기능 구현 밖에 하지는 못했다. 

 

 강의 + 프로젝트는 아주 워워벨을 맞춰주기에 적당했다. 어쨌든 하나를 만들어 내보자는 생각으로 워워벨 체제 두 달을 갔던 것 같다.

 

 

5) 발표 준비, 발표

 

 시연 영상을 하나 만들어야 했고, PPT를 만들어야 했다.

 

 시연 영상은 그냥 발표 며칠 전에 서비스가 일단 배포까지 되어 있었어서 대충 찍어서 편집해서 유튜브에 올려놓았다.

 

https://www.youtube.com/watch?v=i3RMGNMNdJk&t=1s 

(eattwogetter 페이지는 현재 서버를 꺼놓은 상태이다. 접속이 불가하다.)

 

 

PPT는 아이디어톤 당시에 열심히 준비했지만, 안했어도 되었다는 기억이 있어서 그냥 발표할 내가 템플릿을 대충 주워다가 발표 내용 집어넣고 주요 내용만 넣어서 마무리했다. 실제로 발표시간이 시연영상 트는 것 제외 6분이었다. PPT 준비 그냥 한 1시간? 정도 해서 마무리를 지었다.

 

발표는 그날 팀원들이 다 같이 모인 자리에서 후딱 하고 끝냈다.

오랜만에 해본 발표여서 그런지 갑자기 순서가 되니까 긴장이 확 올라와서... 문제가 될 뻔 했지만, 시연 영상을 보여주고 나서 안정을 되찾은 후 발표를 마저 진행했다. 대본을 쓸 껄 그랬나 하는 생각이 든다.

 

 

아무튼 이렇게 프로젝트 안에서 있었던 일을 대충 이야기하면 위와 같다.

 

3. 두 달간의 변화

1) 기술

 

 기술이라고 하면 너무나 거치는 것들이 많다. 백엔드만을 개발할 줄 알았지만, 서비스를 직접 보려면 프론트 작업과 퍼블리싱 작업이 필수이다. 백엔드 구성을 하면서도 이것을 어떻게 보여줄 지를 고민하면서 다방면의 언어들을 흡수하였고, CRUD를 구현하고 로그인, 회원가입 등을 조금 더 있어보이게 전달하는 방법을 알 수 있었다.

 

 자바 뿐만 아니라 스프링부트, 바닐라 자바스크립트 등등 많은 부분에 있어서 비약적인 성장은 아니지만, 하나의 경험이 쌓여 숙련도가 조금은 올라갔다고 할 수 있을 것 같다.

 

 하지만, 아직 매끄러운 정도가 아니라 그냥 경험이 '있는' 수준에 불과하다. 더 많은 것들을 만들어보고 뜯어보면서 경험 측면의 공부를 더 많이 해야 함을 느낀다. 축적이 아니라 계속 사용하면서, 만들어나가보면서 부족한 것들을 많이 채워봐야 겠다는 생각이 든다. 요즘 강의에서 배치, 쿠버 등등 기술을 배우고 있는데, 여기까지 완성도를 높일 수는 없고, 기본적인 것들을 더 확실히 하면서 뭐 하나 만들어보라고 하면 하루 안에 만들 수 있는 그런 실력을 길러야 겠다는 생각이 든다.

(이번 해,,, 아니면 늦어도 다음 해 봄꽃이 피기 전까지...)

 

 

2) 협업

 

 일단 협업 경험이 완전 없었던 나에게 팀 플젝이란 큰 경험이 다가와서 많은 충격들을 선사해주었다. 초기 팀 빌딩에 무엇이 필요한지, 개발 방향성을 중간중간 체크를 하면서 가야 하고, 협업 도구를 사용함에 있어서 규칙 제정과 같은 것이 필요하고, 팀원 모두가 그것에 대한 이해도가 충분히 있어야 함을 알았으며, 정기적인 대화, 상시의 잡담이 필요함을 알았다.

 

 누군가가 어떤 오류에 갇혀있을 때, 빠르게 아는 사람이 가서 구해와야 하고, 모르더라도 빠르게 구해와야 팀 전체 진행에 차질이 생기지 않음을 알 수 있었다. 또한 팀원들을 '잘 만나는 것'이 중요함을 또 알았다.

 

 

3) 멘탈

 

 유지를 위해서 운동이 필수.... 그리고 중간에 낭비되는 시간이 있는데 조금 더 잘 절약해서 최대한 멘탈이 좋도록 만들 것을... 다짐하였다. 꾸준한 운동... 그리고 수면 관리, 식습관 관리, 영양 관리....

 

(몸이 고장나기 전에 잘 하자!)

 

 

4. 프로젝트의 발전

 

 아직 정말 대면해서 서비스할 단계는 아니다. 아직 부족한 기능들이 많은데, 이것들을 보충하고, 서버 최적화에 필요한 작업들을 하고 나면 그제야 서비스를 돌리고 홍보를 해서 실사용자를 유치시켜 볼 수 있을 것 같다.

 

 그냥 시험 프로젝트만으로 끝내기에는 약간 아쉬워서, 시간 나는 대로 작업을 진행해서 달성하지 못한 CI/CD 까지 마무리해서 두 세명이서도 운영할 수 있는 서비스를 만들어보고 싶다. 운영까지의 To Do List를 만들어놓기는 했는데, 제대로 할 수 있을 지 모르겠다...

 

 

5. 마치며

 

시작할 때 여름, 마칠 때 가을 어느 중간.

많은 일들이 있었다. 많은 경험이 있었고, 많은 반성이 있었으며, 많은 배움을 얻었다.

 

새로운 분야에도 관심이 생겼다.

더 사용자들이 쓰기 편리하게끔 만드는 것.

더 보기 편하게 사용하고 더 많이 사용하게 끔 만드는 것.

앱 스토어.

 

그래서 부트캠프를 마치고 자바, 스프링 공부를 더 해나갈 것이지만, 새로운 분야도 알아갈 것이다.

 

 

프로젝트... 일단은 끝!

728x90

댓글