한달간의 프로젝트가 끝났다.
프리프로젝트를 제외하면 처음하는 제대로된 개발이었고, 그래서 더 긴장되고 두려움이 앞섰던 것 같다.
디스코드에서 아침마다 모여 회의를 진행했고, git과 notion을 이용하여 정보를 공유했다.
나는 팀장으로 프로젝트에 참여하게되었고, 우리팀은 신뢰성있는 여행정보를 얻을 수 있는 커뮤니티를 만들고자 했다.
하루정도 프로젝트의 주제를 선정하고 다같이 모여서 사용자요구사항 정의서를 작성하였고,
프론트, 백엔드로 팀을 나누어 각자 할일들을 정하여 진행하도록 하였다.
프론트에서는 화면정의서를, 백엔드에서는 테이블 명세서와 ERD를 작성하였다.
그리고 다같이 모여 API 명세서 까지 작성을 한 뒤에야 본격적인 개발을 시작할 수 있었다.
경험해보니 실제 개발기간은 길지 않았다, 다만 사전에 해야할 것들(사용자요구사항 정의서, API명세서, 화면정의서, 테이블명세서, ERD등)을 정하는데에만 3일정도가 소요됐던 것 같다.
우리 프로젝트는 신뢰를 기반으로 하는 여행 커뮤니티이다.
그래서 위치기반인증을 사용하기로 했다.
또한, 각자 지역에 대한 홍보도 할 수 있게 하기 위해서 블로그를 운영할 수 있게 만들기로했다.
여러지역을 나눠서 게시판을 관리하도록 했으며, 해당 지역 게시판에 여행지에 대한 질문을 남기면 위치인증을 받은 현지인만 답글을 달 수 있게 하였다.
답글에는 채택기능도 포함되어있는데, 채택이 되면, 답글에 대한 댓글도 달 수 있게 된다.
또한, 위치인증을 받은 사람만 글을 쓰고, 블로그를 작성할 수 있도록 권한 설정을 하기로 했다.
결과적으로 데이터 식별자 노출 없이 로그인만하면 토큰에서 개인정보를 얻어올 수 있기때문에 모든 URl path를 "me"로 통일할수 있게 된었다. (관련블로깅)
- merge하기 전에 pr하고 말해주기
- dev에는 무조건 pr로 merge하기
- branch 지우지 말고 유지
- 코드에 사소한 거라도 주석달아 설명해주기
- 브랜치 전략 : main -> dev -> FE/BE ->기능별, 개인
Github Action을 이용하여 무중단 배포를 적용했는데, 따로 배포하지 않아도 변경사항만으로 새로 배포되니 효율적으로 일할 수 있었다.
Github Action에서 두가지 빌드를 이용하여 프론트와 백엔드를 동시에 배포할 수 있었는데 새로알게된 것을 적용할 수 있어서 좋았다. (관련블로깅)
막바지에 가서 2명의 이탈자가 생기게되었는데, 문제는 이 두명이 평소에 연락이 잘 안됐었다. 그래서 맡은 부분을 잘하고있는지 조차 알수 가 없었는데, 알고보니 거의 진행을 하지 못한 상태였다.
우리팀의 경우 인원배정이 많았던 팀이라 여러가지기능을 구현하고자 했는데, 갑자기 2명의이탈자가 생겨서 프론트단에서 구현에 문제가 생겼다.
결국 프로젝트를 제기간 안에 완성을 하지 못했는데, 팀원들과 협의 끝에 기간 이후에도 계속 진행하기로 하였다.
- 언제까지 봐주고 유하게만 대할 수 없다는 것을 느꼈고, 진짜 이럴줄은 몰랐는데 생각보다 책임감의 문제가 심각하다는 것들을 느꼈다.
- 중간에 멘토님을 통해 연락이 안되는 인원에 대해서 아예 빼고하자는 의견을 주셨는데, 적극적으로 수용하지 못한 것이 후회되는 점이다.
- 우리가 정했던 칸반보드를 성실하게 잘 지켰다면 이런일은 없었을 것 같다. 나조차도 칸반보드를 제대로 하지못했고, 팀원들의 진행상황을 적극적으로 파악하지 못한 내 실수가 가장 컸던 것 같다.
- 무중단 배포를 처음부터 끝까지 진행해봄으로 써 cors에러에 대한 이해도 높아졌고, 배포에 대한 전반적인 이해도를 높일 수 있었다.
- 내가 담당한 부분이 멤버쪽과 보안, 그리고 배포라 그런지 전반적으로 개발 flow에 대한 이해도를 높일 수 있었다.
- 예를들어 API명세서의 경우 확실하게 정하고 가야함을 느꼈다. 첨음 정할 때 우리프로젝트의 구조에 익숙하지 못하니 중간중간 API가 계속 바뀌게 되었고 불필요한 소통의 시간이 늘어나게 되었던 것 같다.
- 그 외에도 프론트에서 기능을 구현함에 있어서도 서로 가능한 것과 원하는 부분에 있어서 확실하게 주장할 수 있어야 후에 발생하는 이해의 충돌을 면할 수 있을것이다.