프로젝트 계기
친구가 본인 회사에서 공간을 빌려준다고 했다.
공간을 예약하고 예약된 내역을 관리할 수 있는 사이트가 필요한데 혹시 만들어 줄 수 있냐고 했다. 내용 자체가 어려워보이지 않아서 흔쾌히 받아드렸다.
프로젝트 준비
프론트엔드 개발을 해줄 개발자 두 명을 구했다.
개발자를 구하고 나니 첫 이야기를 어떻게 끊어야할지 조금 막막했다. 일단 사이트 제작을 요청한 친구( 클라이언트)로부터 정확히 어떤 페이지를 원하는지 물어봐야했다.
친구와 미팅
친구와 대화를 나누며 예약사이트에서 필요한 기능들을 정리했다.
정리하며 느낀거지만 본인이 뭘 원하는지 내가 역으로 물어보는경우가 더 많았다. 예를들어 "예약의 최소일자", "예약 가능 최대 일자 " 등과 같은 디테일한 부분이었다.
첫번째 회의 : 프레임워크 익숙해지기
어찌됐든 정리한 사항을 가지고 개발자들끼리 회의를 진행했다. 각자 마음에 드는 프레임 워크를 선정했고 어떤 페이지가 있으면 좋을지 추렸다. 그리고 1주일 정도 각자 선정한 프레임워크와 친해질 시간도 가질겸 기본적인 것들을 연습겸 개발했다. 백엔드는 예약내역 전체 불러오기와 예약 하기를 api로 작성하는 것이었고, 프론트엔드는 예약하기를 할 수 있는 페이지를 작성하는 것이었다.
두번째 회의 : 필요한 문서 작성하기
첫번째 회의 이후로 일주일 간 시간을 갖고 개발을 했는데 일부분만 개발을 한다고 해도 전체 내용을 배제하고 개발을 하는 것은 찜찜했다. 그러니까 전체 프로젝트를 어떻게 구성하면 좋을지 먼저 생각해보지 않고 필요한 부분이 생길때마다 개발을 해나가는것은 아무리 쉬운 내용의 프로젝트일지언정 개발자로써 용납이 안되었다. 그래서 최소한 요구사항을 문서로 도출하고 도출된 내용을 바탕으로 개발을 해나가자고 정했다.
준비 과정 중 나눈 이야기들
웹 개발을 하는 것은 결국 프론트와 백이 필요하다는 것을 알고있었지만
협업 과정 중 어떻게 프론트와 백엔드의 파일들을 나누어서 구성할지
깃허브를 어떻게 구성할지에 대해서 디테일하게 고민한적이 없었다.
- 프론트 백 파일 구성
- 깃허브 전략
위 내용에 대해 채택한 방식을 앞으로 글들에서 다루려고 한다.
느낀점
요구사항을 도출해는 과정이 친구와 대화를 하는 과정 중에서 매우 중요하다는 것을 느꼈다. 결국 실제 세계에서 논리적 세계를 생각해내는 것은 개발자의 몫이기 때문이다. 많은 경험을 통해 이런 요구사항을 도출해내는 훈련을 하지 않으면 실제 개발에서 힘들어지는 것은 개발자임을 매우 느꼈다.