부스트캠프 멤버십 회고

DongHwan·2021년 12월 11일
0

회고

목록 보기
8/21
post-thumbnail

거의 4개월 가까이 진행되었던 부스트캠프 멤버십이 끝이 났다. 개발을 배워나가던 학습 스프린트 과정은 이미 회고를 작성하였으니, 지난 6주간 진행했던 그룹 프로젝트와 멤버십 전체에 대한 회고를 써보려고 한다.

그룹 프로젝트

일정

학습 스프린트가 끝나고 10월 25일 월요일부터 12월 3일 금요일까지 딱 6주간 진행된 팀 프로젝트이다. 초반 1주일은 기획을 위한 주차이고, 4주간 개발을 진행하는 주차, 마지막 1주일은 기능 개발 없이 프로젝트를 마무리하고 발표를 준비하는 주차였다. 또한, 1주차를 제외하고는 매주 금요일마다 서비스의 데모를 시연하고 프로젝트의 개발 상황을 공유하는 세션이 있었다.

팀에 대해서는 좋은 소식과 나쁜 소식이 있다...

나쁜 소식부터 말하자면, 그룹 프로젝트는 4명이서 진행되는 프로젝트인데 팀원 한분이 프로젝트 초기에 개인 사정으로 인해 빠지게 되었다는 점이다. 개발 시간은 4주로 고정되어있는데, 사람이 한명 빠진 것은 아무래도 큰 타격일 수 밖에 없다.

그래도 나쁜 소식만 있는 것은 아니었다. 좋은 소식은 매우 좋은 팀원을 만났다는 것이다. 팀 프로젝트는 나 혼자 하는 것이 아니다. 팀원과 같이 개발하는 것이기에 당연히 팀원을 매우 중요하다.

나는 아직 3학년이기 때문에, 취업 준비보다는 부스트캠프에 집중할 수 있었다. 그러나 팀원 분들은 모두 취업을 준비해야 하는 시기이기에 취업 준비를 병행해야 했다. 나도 그러한 사정을 알기에, 프로젝트보다 취업 준비를 우선하더라도 따로 어찌할 방도가 없었을 것이다. 그러나 팀원 분들은 프로젝트에 정말 열정을 다해주셨다.

프로젝트에 대한 열정 말고도 사람 자체가 너무 좋으신 분들이었다. 우선 다른 사람의 기분을 상하지않게 말을 하는 분들이었다. 나도 이러한 커뮤니케이션에 노력을 많이 하지만, 전공 혹은 개발에 대한 이야기를 할 때 종종 직설적으로 이야기할 때가 있다. 그리고 이야기를 한 뒤에 조금 돌려말했으면 더 괜찮았을 거라고 생각하곤 한다. 그런데 이번 팀원분들은 정말 내가 지향하는 커뮤니케이션을 보여주는 분들이었다. 같이 회의를 하고 이야기를 하면서, 나를 다시 되돌아보게 되는 좋은 기회가 되었다.

서비스

우리 팀은 백엔드를 지향하였기 때문에, 서버의 비중이 높은 프로젝트를 하고 싶었다. 그래서 어떤 서비스를 개발할까 고민하던 중 내가 클라우드 스토리지에 대한 의견을 냈다. 아무래도 파일을 다루는 서비스다보니 데이터베이스에 대한 고민이나 파일을 처리하는 로직의 구현, 서버의 성능 개선 등 다양한 방면에서 공부할 것들이 많을 것이라 생각했다. 팀원들도 이 의견에 동의를 했고, 이번 프로젝트에서 클라우드 스토리지를 구현하기로 했다.


이미지를 클릭하면 Github Repo로 이동할 수 있다.

서비스 자체는 꽤나 만족스럽게 구현이 되었다. 다른 팀보다 한명이 적음에도 불구하고 다른 팀의 서비스보다 뒤떨어진다는 생각은 들지 않았다. 특히나 뒤에서 설명하겠지만, 우리 팀의 경우 서비스 개발말고도 DevOps에도 많은 관심을 두고 개발했기에 더욱 그러한 생각이 들었다.

개발 - DevOps

바로 앞에서 적었듯, 우리 팀은 DevOps에도 꽤나 집중하였다.

Github Actions을 사용하여 CI/CD를 자동화하기도 했고, Docker와 Nginx를 사용하여 무중단 배포를 구현하였다. 물론 실제 현업에서 사용되는 방식과는 차이가 있을 것이고, 우리가 군더더기 없이 구현한 것은 아닐 것이다. 그래도 프로젝트 개발 중간에 시간을 할애하여 이를 공부하고, 프로젝트에 구현한 것은 충분히 자랑스러운 일이라고 생각한다.
그리고 사실 우리의 경우, 배포하는 과정이 복잡한 것도 아니고 무중단 배포가 필요할 정도로 상용화된 서비스도 아니다. 이런 상황에서 기능 개발이라는 너무나 보여주기 쉬운 개발이 아닌 DevOps라는 어찌보면 숨겨진 개발을 한다는 게 어려운 선택이라고 생각한다. 당장 금요일마다 데모를 해야하는 상황에서 기능 개발이 아닌 DevOps를 공부하고 개발했다는 것이 도전정신을 보여주는 점이라고 생각한다.

프로젝트의 백엔드 API 명세를 작성하기 위해 Postman을 사용했는데, 사실 이것에 대해서는 Swagger를 사용했으면 더 좋았을거라는 생각이 든다. 아무래도 명세 작성을 위해 매번 Postman을 작성하기도 번거롭고, API의 수정이 있으면 일일이 수정해야 하는 것이 불편했다. 비록 그 당시에는 개발 여건상 적용을 포기하였지만, 다음 프로젝트부터는 Swagger를 꼭 사용해보고 싶다!

마지막으로 JMeter를 사용하여 부하 테스트도 진행해보았다. 사실 이 부하 테스트의 경우 제대로 했다고 말할 순 없다. 팀원들의 컴퓨터 성능 문제와 우리들의 미숙함으로 인해 많이 모자란 부분이 있었다. 그래도 아무것도 안하는 것보단 조금 모자라더라도 하는 것이 더 중요하다고 생각하기에 충분히 의미가 있었다고 생각한다.

개발 - 코드

DevOps와는 별개로 프로젝트 코드 자체의 완성도만 본다면 조금 부끄럽다. 나는 개발을 할 때 클린 코드를 작성하기 위해 상당한 노력을 한다. 코드를 작성하기 전, 먼저 어떻게 코드를 작성할 지 생각하고 설계를 한 뒤 작성을 한다. 변수나 함수의 이름도 신경써서 작성하며, 코드가 길어질 경우 모듈화에도 고민을 한다.

그러나 이번 프로젝트에서는 앞에서 말했듯이, 인원이 적어짐에 따라 각기 담당해야할 부분이 많아졌다. 구현할 것들이 늘어나면서 마음에 쏙 들지않는 코드도 생겨나기 시작했다. 또, 팀 프로젝트이다보니 팀원이 구현하는 부분도 생기면서, 쉽게 변경하기 힘든 코드들도 있었다. 그러다보니 보여주기 부끄러운 코드들이 꽤나 남아있고, 이점에 대해서는 아쉽다고 할 수 있다...

추가로 에러 핸들링에 대해서도 아쉬운 부분이 있다. 서버에서 요청에 대한 유효성 검사, 성공 여부에 따라 적절한 상태코드를 응답으로 돌려주긴 했다. 그러나 클라이언트에서 이 상태코드를 통해 적절한 반응을 보여주는 것은 제대로 됐다고 할 수 없다. 그래서 그러한 점에 대해서는 아쉽다고 할 수 있다.

앞에서는 아쉬운 점들에 대해 많이 말하기는 했지만, 그렇다할지라도 우리 팀은 굉장히 잘 했다고 말할 수 있다. 앞에서 언급한 문제점들은 실제 개선은 많이 하지 못했지만, 문제에 대해 충분히 인지하고 있었고 해결할 방법에 대해 회의도 진행하였다. 실제로 프로젝트에 적용은 하지 못하였지만, 그 해결방법에 대해 고민하고 이야기해본 것으로도 충분히 많은 것들을 배웠다.

나는 그룹 프로젝트에서 프로젝트를 얼마나 완벽하게 만들었냐가 중요한게 아니라고 생각한다. 프로젝트를 진행하면서 배운 지식과 경험들이 중요한 것이라 생각한다. 그러한 점에서 우리팀이 충분히 잘했다고 생각한다. 물론 서비스도 잘 만들었다고 생각한다.

여담

앞에서 내가 프로젝트 개발 과정에서 아쉬웠던 점들에 대해 많이 적었지만 잘한 점들도 굉장히 많다. 그래도 나는 성격상 잘한 점보다는 아쉬운 점들에 더 눈에 가는 것 같다... 이러한 아쉬웠던 점들은 다음에 다른 팀원들과 프로젝트를 진행해야 한다면, 조금 더 신경써서 먼저 이야기하고 회의하여 개선해나가야겠다.

멤버십

멤버십은 추석을 제외하고 14주, 추석까지 포함한다면 15주동안 진행했다. 거의 4달에 가까운 기간동안 멤버십을 진행했었는데, 솔직히 시간이 너무 빨리 간 것 같다ㅋㅋ 멤버십 중간에는 길다고 느꼈고 실제로도 꽤나 긴 시간이 맞는데, 막상 끝나고 나니깐 아쉬운 느낌이다.

물론 시간이 빨리 간 것 같다곤 하지만, 그동안 배웠던 것들을 생각하면 알차게 배웠다. 기존에 대략적으로 알고있던 지식들을 더 깊게 이해할 수 있었다. 배웠던 것들은 노션에 일차적으로 정리뒀는데, 조금 더 다듬어서 벨로그에도 하나씩 올릴 예정이다.

4개월에 가까운 기간동안 많은 것을 배울 수 있었고, 많은 사람들을 만날 수 있어서 좋았다. 내가 부스트캠프를 다시 할 일은 없겠지만, 웹이나 모바일 분야에 관심있는 후배가 있다면 꼭 추천해줄 것이다.

profile
날 어떻게 한줄로 소개해~

0개의 댓글