서론
프로젝트는 7월 3일부터 9월 26일까지 했지만 중간에 팀원이 빠지고 다시 역할 분배를 하고 여러 가지 일들이 있어서 정말 힘들었다ㅠㅠ
매일 9~10시까지 남아서 하고도 시간이 모자라서 주말에도 나오고 진짜 체력이 실시간으로 빠지는게 느껴졌다...
그래도 누군가와 처음으로 협업을 해서 프로젝트를 완성하는 것이라 의미도 컸고 실제로 내 실력이 성장하고 배경지식들이 늘어가는 게 느껴져서 한편으로는 기분이 좋았다! 프로젝트를 완성하면서 크게 배웠다고 생각하는 부분들이 네 가지가 있다.
1. 백엔드에 대한 개념이 좀 더 명확해졌다.
그동안 Java, SpringBoot를 사용하면서 백엔드 기술을 사용했지만 약간 커맨드 입력같이 사용하는 것들이 많았다.
예를 들어, Controller에서 @Mapping을 쓰면 이게 실행된다. 그러면 해당 url로 요청이 들어오면 메서드가 실행된다.
이렇게 단순히 실행되는 것만 알고 뒤에서 데이터가 어떤 절차로 전달되고, 어떤 클래스들을 타고 들어와서 데이터가 변경, 수정, 삭제가 되는지 정확하게는 모르고 그냥 '~를 실행하면 ~가 되는구나'하고 끝을 냈는데
이게 개인 프로젝트에서는 이렇게 두루뭉술하게 개념을 넘겨도 프로젝트를 만드는데 아무런 지장이 없었지만 협업을 해서 프로젝트 사이즈를 키우게 되니 개념을 두루뭉술하게 넘기는 순간 이해가 되지 않는 부분들이 많았다!!!
그래서 다시 한번 개념들을 찾아보고 로직들을 하나하나 자세하게 이해하려고 했고 그 결과 백엔드 로직을 70~ 80%정도 내가 원하는 대로 컨트롤 할 수 있게 되었다!
2. 프론트엔드를 좀 더 넓게 사용할 수 있게 되었다.
개인 프로젝트 때엔 단순히 html, css와 부트스트랩 Thymeleaf를 사용해서 정말 단순한 정적 화면만 만들 줄 알았고, 그마저도 부트스트랩의 사용법을 제대로 몰라서 단 하나도 내가 원하는 대로 디자인을 만들 수 없었다.
하지만 이번에 프로젝트를 하면서 React.js와 MUI컴포넌트를 사용했고 동적인 화면을 만들 줄 알게 되었다.
또한, 공식 Reference에 가서 라이브러리의 사용법을 익히고 적용하는 과정에서 새로운 기술들을 만약에 익히게 된다면 이렇게 알아가면 되는구나! 하면서 깨닫게 된 것도 있었다.
그리고 무엇보다 디자인도 어느 정도 만질 수 있게 되어서 그게 정말 좋았다😭😭😭(진짜 너무너무 답답했음)
3. 깃으로 형상 관리를 좀 더 잘하게 되었다.
그동안은 그냥 단순히 개인 공부 정리용, 그리고 알고리즘 풀이 올리기용으로 깃을 정리하느라 patch, merge, pull, push등 그냥 대충 이렇게 하면 되겠지...하고 진행했었고 따로 깃의 브랜치 설정이나 브랜치를 나누는 것이 왜 필요한지 잘 몰랐다.
그리고 프로젝트에서 내가 깃 관리를 맡게 되었는데 혼자하는것처럼 했다가 몇 번을 식겁하고 repository를 날리고 다시 파고를 반복하면서 깃에 대한 개념을 좀 더 명확하게 잡아야겠다는 생각이 들었고 그에 따라 공부를 하면서 어떤 상황에서 무엇을 사용해서 형상 관리를 해야되는지에 대한 개념을 좀 더 명확히 잡을 수 있었다!!!
4. 협업에서 회의 또는 얘기를 하는 것이 정말 중요하다는 것을 알았다.
혼자 할땐 몰랐지만 협업에서는 회의나 서로 얘기와 의견을 주고 받는 것이 정말정말 중요하다는 것을 알았다!
이게 내가 A의 의도로 말하고 상대방에게 전달해서 이렇게 만들어주세요~라고 해도
실제로 상대방이 만들어 준 것은 A도 아니고 B도 아니고 C가 된 경우가 생각보다 꽤 있었다...
그래서 수시로 상대방과 대화를 하면서 내가 의도한 바대로 이해를 했는지, 그리고 개발은 그 의도대로 진행되고 있는지를 체크를 했고 이 과정에서 더 좋은 의견이나 코드가 나올 때도 있어서 이러한 과정들이 개발에서도 정말정말 중요하다는 것을 깨달았다!!!
결론
솔직히 혼자 개발을 했을때엔 '협업? 나 혼자하는거랑 많이 다를까?'라는 생각을 했지만 실제로 협업을 해보니 진짜 왜 기업 면접에 코테를 다 뚫고 들어가서 마지막에 협업을 경험 못해봤다는 이유로 여러 번 떨어졌는지 알게 되었다.
혼자 프로젝트를 했을 때와는 비교도 할 수 없을 정도로 어마어마한 성장을 하였고
혼자 프로젝트를 했을 때와는 상상도 할 수 없는 문제들을 마주하면서 또 한번 성장을 했다.
회사에 입사해서도 여유가 된다면 이러한 협업을 사이드 프로젝트로 진행해보고 싶고 더 많은 문제들을 경험하고 또 극복하면서 개발자로써 성장을 하고 싶다!!!