부트캠프 최종 프로젝트 전 마지막 팀프로젝트를 진행했다.
1) 프로젝트
프로젝트 명: Quiz-PlayGround
프로젝트 상세내용은 깃헙 참고
https://github.com/rmdkak/Quiz-Play-Ground
2) 느낀점
쉬운줄 알고 계획했으나 쉽지않은 프로젝트였고, 중간에 길을 잃었을 때 팀원들의 도움으로 방향을 잡고 문제를 해결할 수 있었다.
K - Keep
- Eslint 사용으로 인해 수월해진 디버깅 (너무너무 철저한 예외 처리).
- 공용 컴포넌트를 다양한 커스텀 조건으로 생성.
- 논리적인 이유를 근거로 기술스택 선정.
- 기능의 우선순위를 정해두고, 나름의 기한을 정함.
- 끊임 없이 디테일한 오류 수정.
P - Problem
- Eslint 초기 설정
- 데이터가 유지될 곳은 웬만하면 브라우저의 스토리지(local / session)를 사용하자. 데이터 유실이 너무 많다
- 기능할 구현을 세세하게 정하지 못해서 갈수록 할 일이 늘어난 점 (기능 완성이 점점 늦춰짐)
- 하나의 스테이트로 수많은 상태처리를 할 생각은 지양
- 반응형 UI를 고려하지 못한 부분
- 디자인을 처음부터 확실히 정하고 작업을 시작 했어야 함.
- 생각보다 작업처리를 하면서 시간적인 부분을 조정하지 못한 부분 → 결국 코드 스플리팅을 못했다.
- 반복적인 서버 통신 호출이 많아서 발표 30분 전에 firebase 서버 터짐
T - Try
- Eslint 설정에서 불필요한 부분은 과감하게 OFF하고 유연하게 사용할 수 있도록 커스텀 설정
- 전체 디자인 및 반응형 UI는 기획 단계부터 확실하게 정하고 시작하자
- 서버와 통신을 최소한으로 하도록 고려하며 API를 사용하자 (최적화)
- 괜히 고집부리면서 쓸건 쓰고 안쓴다고 하지 말자
- 계획을 더 세세하게 정하자 (마감일, 기능별 세세한 분리)
- 서비스 런칭할 시에는 배포 전에는 반드시 서버 관리를 하자
- API 명세를 미리 설정하여 → 데이터의 형식을 고려한 DB 설정 (SQL / noSQL)
- react-hook-form 사용을 고려
- optimistic 하고 debouncing 처리까지 해주면 더 굿(불필요한 클릭까지 고려)
많은 도움이 되었습니다, 감사합니다.