<aside>
💡 수료 후, 이력서에 우리가 만들어낸 내용들을 꼼꼼하게 채워넣어야겠죠?
우리 프로젝트의 강점을 잘 녹여내기 위해 회고록 양식을 공유 드립니다.
프로젝트와 작성하시는 회고록을 기반으로 다음 주 멘토님들께서 순회할 예정이니,
새롭게 추가/개선할 기능이나 수정 방향성에 대해서 깊은 고민을 할 수 있는 기회가 되길 바랍니다 😊
</aside>
3주차까지의 후기 및 소감
<aside>
📢 중간 발표 이전 기재
</aside>
1. MVP 중간발표 자료(기입)
- 프로젝트 정보
- 서비스명: Work-Flow Service
- 서비스 기획 의도: 팀프로젝트를 진행하며 협업을 진행 할 때 도움이 되는 툴을 제작해보고 싶다라는 생각에서 시작하였습니다.
- 프로젝트 한 줄 설명: 워크스페이스 → 대분류, 보드 → 파트 별 구분, 카드 → 담당 업무 세분화를 통해 효율적으로 프로젝트를 관리할 수 있으며, 채팅시스템과 음성/영상통화를 통해 원활한 협업이 가능하도록 제작
- 최종 MVP 스펙:
- 소셜 로그인 및 이메일 / 핸드폰 번호 인증
- 역할 구분에 따른 권한 제한 및 파일 업로드&다운로드
- 워크스페이스 활동로그(멤버의 action에 따라 구분하여 로그를 찍어줌)
- Socket.io를 사용한 알림(채팅, 멤버초대, 카드 마감기한) 및 webRTC를 적용하여 음성/영상 통화, 화면 공유
- 워크스페이스 전체 파일 조회 (각 카드 별로 뿌려져 있는 파일들을 한 곳에 취합)
- 보드의 상태에 따른 분류, 생성 시 진행중으로 생성되며 보드가 보유하고 있는 카드의 개수와 완료컬럼에 있는 카드의 개수가 일치할 시 완료태그로 변경됨
- 무료버전과 프리미엄 멤버십으로 구분하여 사용할 수 있는 워크스페이스 스토리지 제한과 기능 제한
- 스토리지 사용량 출력
- 레디스를 이용한 보안 강화 (ex. 로그아웃된 토큰을 blacklist로 등록하여 탈취방지)
- 결제 및 결제 취소
- scheduler를 사용하여 만료된 멤버십 자동 삭제 및 로그(한달 단위) 삭제
- http → https로 변경하여 보안 강화
- Git Action 을 사용한 CI/CD 파이프라인 구축
- 서비스 배포 URL: https://work-flow.online/
- 팀 노션 URL: https://www.notion.so/sh-9403/6-Work-Flow-Service-53079458f1f7470284ed56dd2324e826
2. 기술적 의사결정 & 트러블슈팅 기록
- 프로젝트를 진행하면서 직면한 문제를 어떤 과정으로 해결 하셨는지, 스택별로 기록 해 주세요
- 기술적 의사결정을 기본으로, 트러블슈팅도 있다면 기록해둡시다.
<aside>
📢 중간 발표 이후 기재
</aside>
3. 중간발표 피드백 기록
- 월요일에 대면 피드백을 꼼꼼히 기록해두고, 개선이 필요한 사항에 적용해봅시다.
→ 대용량 트래픽이 발생했을 때에 대한 대비책이 있는지?
→ 악성 유저가 api요청을 반복적으로 요청했을때 대비책이 있는지?
ip 차단 미들웨어를 만들어 비정상적인 요청이 들어왔을 때 차단하는 로직으로 구현 예정
4. 중간 발표 후 회고
1) 미구현 된 MVP 기능
- 1:1 대화창 기능 : 현재 대화창과 대화까지 구현 완료 했으며, 소켓을 통한 알림 구현 중
- 멤버 초대 알림 기능 : 기존에 구현해 놓은 소켓에 연결해서 빠르게 구현할 예정
- 음성 및 영상 통화 : 기존에 40% 구현해 놓았으며 유저 피드백 전까지 구현 예정
2**) 추가/개선 할 기능과 그 이유**
- (추가) 동시 다발 적인 대량 트래픽 & 비정상 트래픽 요청 시, 서버에서 처리하는 로직 : 추후 서비스를 배포하는 과정에서 유저가 몰리거나 비정상적인 접근이 들어왔을 때를 위함
- (개선) 음성 및 영상 통화 : 협업 툴에 있어 꼭 필요한 기능이라 생각
- (추가) 캘린더 : 작업하는데 있어 달력에 표시할 수 있는 게 편할 거라 생각해서
3**) 추가/개선할 기능을 어떻게 구현 할 것인지**
- 음성 및 영상 통화 → WebRTC & WebSocket을 사용해서 구현 예정(음성 및 화상에 필요한 WebRTC와 해당 통화 요청에 대한 알림 및 동기화를 위한 기술
- 캘린더 → FullCalendar를 사용해서 캘린더를 보다 쉽게 구현하고 여러 틀을 사용할 수 있어 해당 라이브러리를 사용