벌써 부스트캠프 웹・모바일 8기의 마지막 과정인 그룹 프로젝트가 시작됐다. 그리고 또 어느새 1주일이 지나갔다. 이번주에 개발은 하지 않았지만 그 외에 정말 많은 일을 했는데 이에 대해 회고를 해보고자 한다.
사실 이번주에 경험한 거의 모든게 새로웠다...
다른 동료들과 함께 협업하며 프로젝트를 하는 것이 이번이 처음이다 보니, 아이디어를 선정하고 구체화하고 기획하는 단계부터, Feature List를 만들고 Backlog를 작성하며 사용할 기술 스택을 정하는 과정, 협업을 위한 규칙을 정하는 과정까지 모든 과정이 새롭게 다가왔다.
이번 주에 팀원 모두가 모여 의견을 나누고 특정 안건에 대해 결정하며 함께 오랜시간 진행하다보니 백엔드와 관련된 작업을 많이 진행하지 못한 것 같다. 다음주에 개발을 시작하기 위해 API 문서를 작성하는 것을 이번주의 목표로 삼았었는데, 엔드포인트밖에 정하지 못한 상황이라 주말을 통해 가장 먼저 개발을 시작할 부분부터라도 API 문서화를 완료할 예정이다.
BE 관점에서 이번주는 어떠한 기술스택을 사용할 지에 대해 고민하는 시간을 가졌다.
가장 먼저 고민했던 부분은 DB였다. 지도 정보를 사용하는 프로젝트의 특성 상, 장소에 대한 위치 정보를 저장해야하기 때문에 MongoDB같은 NoSQL을 사용하는게 유리할 지 고민을 해봤다. 하지만 하나의 테이블을 위해 새로운 DB를 또 학습하고 적용하는 과정이 정해진 시간 내에 하기는 힘들수도 있다고 판단하고 우선 RDBMS를 이용하여 구현을 진행한 후, 이후 시간이 남는다면 더 발전시키는 방향으로 진행해보기로 했다.
RDBMS는 MySQL과 PostgreSQL 중에 고민을 했는데 PostgreSQL이 쓰기 작업이 많고 좀 더 복잡한 애플리케이션에 적절하다는 것을 알게 되었고, 기존에 MySQL을 사용해봤기에 이번에는 사용해보지 않은 PostgreSQL에 대해 학습해보고 사용해보고 싶다는 생각이 들어 PostgreSQL을 사용하기로 결정했다.
다음으로 고민한 내용은 웹 서버를 어떤 것을 사용하는지였다. 막연하게 이번 프로젝트에서 사용해보고 싶다 라는 생각으로 NginX와 Apache 중 어떤 게 좋을 지 고민하던 중, 멘토링 과정을 거치며 해당 부분은 프로젝트 개발을 진행하며 웹 서버의 필요성을 직접 느꼈을 때 결정해보는 것으로 하고 차후에 선택하는 것으로 미뤄두었다.
혼자서 프로젝트를 진행할 때와는 비교도 안되게 많은 시간이 개발을 시작하기 전 준비단계에서 소요되었다. 하지만 진행하고 나서 되돌아보니, 이렇게 체계적으로 기획을 하고 기술 스택을 정하고 협업 규칙을 정하고 나니, 이후에 실제 개발을 진행할 때는 훨씬 더 개발에만 집중할 수 있겠다는 생각이 들었다. 또 이러한 부분들이 정리해서 문서화를 해놓고 나니 약간의 뿌듯함...? 이 조금 생겼다.
이 과정을 잘 해낼 수 있었던 가장 큰 이유는 좋은 사람들과 함께 했다는 것이였다. 서로를 존중해주고 배려해주는 좋은 동료들과 함께 했기에 개발을 준비하는 첫 주를 무사히 마무리 할 수 있었던 것 같다.