📝 서론
이전 프로젝트를 진행하면서 다양한 분야에서 학습 필요성을 느꼈다.
- RDBMS 사용하지 않음
- 테스트 코드 작성 X
- 로그인 기능 X
- 사용자 인증, 인가 X
- CI/CD 자동화
이러한 기술적 도전을 위해 새로운 프로젝트를 시작하게 되었다.
🚀 프로젝트 시작
팀 구성
팀은 FE 2명, BE 2명으로 구성되었다.
협업 및 회의는 온라인으로 진행된다.
첫 회의 (4/7)
프로젝트 진행 방향
모두가 기술적인 도전이 필요해 만들어 진 만큼, 개발자처럼 협업을 진행하기로 하였다.
협업을 위한 기본기를 다지는 것이 목표이다.
회의
회의는 매 주 1회 진행될 예정이다.
각 회의에서는 한 사람이 회의를 주관하는 회의장을 담당하며, 회의장을 제외한 사람 중 한명이 서기를 담당해 회의록을 작성한다.
Github 기본기
프로젝트에서는 Github에서 제공하는 필요 기능을 최대한 사용하는 것을 목표로 하였다.
- Code
- Branch를 이용한 버전 관리
- 공용 Repo에서 fork 후 코드 작성
- Commit 컨벤션을 준수하기
- README 작성
- Issue
- Task, Timeline 등의 항목을 빠짐없이 작성하기
- PR
- 스스로 PR을 닫는 행위 금지!
- 다른 기술 분야임을 감안해 작업 내용을 상세히 설명
- 템플릿을 작성하여 공통 양식으로 작성
- Discussion
- 주간 스프린트
- 회의록
- 제안, 투표
- ETC...
- Project
- Wiki
- 프로젝트에 대한 설명 공간
- 목표, 컨벤션, 프로젝트 관리 등의 문서화
- 학습 내용 공유
프로젝트 레퍼런스
효과적인 프로젝트 진행을 위해 클론코딩으로 진행하기로 하였다.
사전에 레퍼런스 조사 후 회의를 통해 클론코딩 할 서비스를 선정하였다.
레퍼런스 서비스는 텀블벅으로 결정하였다.
내가 텀블벅을 선택한 이유는 다음과 같다.
- 결제 기능, 로그인 기능이 필요하기에 외부 API를 사용할 수 있다.
- RDB를 사용하기에 적합하다.
- 비즈니스 로직이 단순하지 않다.
툴 선정
협업 툴은 Jira
와 Github
을 사용하기로 하였다.
팀 회의
- 정기 회의 : 목요일 8시
- 팀 단위 회의 : 월요일 8시
구현 경계
- 공통
- 펀딩 리스트 페이지
- 인기, 신규, 마감임박, 공개 예정 4가지 카테고리에 대해 구현
- 제품 상세 페이지
- 프로젝트 계획, 업데이트, 커뮤니티 구현
- 상세페이지 이후의 추천 기능 생략
- 마이 페이지
- 후원 현황
- 관심 프로젝트
- 내가 만든 프로젝트
- 로그아웃
팀 회의
첫 회의가 끝난 후 백엔드에서 사용할 기술과 기술적 도전을 정하기 위해 회의가 추가적으로 진행되었다.
결정 사항은 다음과 같다.
필수 기술적 도전
- RDB 사용
- 테스트 코드 작성
- 외부 API 사용
추가 진행 사항
- Docker를 사용한 배포
- 쿠버네티스를 사용한 컨테이너 관리
- 위의 두 기술적 도전은 물리적인 시간의 한계로 우선순위에서 배제하였다.
- CI/CD 자동화
- 해당 기술 역시 욕심이 나는 항목이지만, 다른 도전에 비해 우선순위에서 밀렸다.