이번 프로젝트 MVP 발표를 진행한 후에 회고하는 시간을 갖고자 늦은 시간에 컴퓨터 앞에 앉았습니다. 👨💻
이번 프로젝트에서 MVP 기간 동안 제가 맡은 역할은 간략하게 다음과 같습니다.
- 실시간 채팅 기능
해당 기능을 구현하기위해서는 Websocket에 대한 이해가 필요했고, Spring Boot와의 협업을 위해 StompJS 사용이 필수였습니다.
먼저 실시간 프로젝트를 진행할 때에 라이브러리를 사용하자는 의견도 있었지만,
밑바닥부터 하나씩 구현을 해보아야 Websocket에 대한 이해가 생길 것이라 판단하여 라이브러리는 최대한 쓰지 않기로 하였습니다.
위 사이트를 천천히 읽어보면 StompJS 어떻게 사용해야하며, 백엔드와 협업 시 어떻게 데이터를 송신해야하는지 알 수 있습니다.
이렇게 MVP 발표를 마치었고, 그에 대한 피드백은 다음과 같았습니다.
1. 개발을 하면서 테스트를 할 수 있는 환경이 모바일 환경이 되면 개발 속도에 긍정적인 영향을 줄 수 있을 것 같습니다.
2. useSelector의 비동기 처리를 setTimeout을 적용하는 것은 구현이 잘 못되어있다 라는 생각이 듭니다. 딜레이를 준다는 것은 뷰를 나타내는 것이 부자연스럽습니다. 이걸 개선할 수 있는 다른 방법을 찾는데 시간을 줄일 수 있는 방법을 생각해야 할 것 같습니다.
3. 현재 전략보다 더 빠르거나 더 정확하게 해결 할 수 있는 방법을 찾았으면 좋겠습니다. 질문방이나 기술 멘토님을 좀 더 활용했으면 좋겠습니다.
전반적으로 느꼈을 때 혼자서 문제를 해결하기 위해서 고민했던 것 같습니다. 팀원 분들 중에서 본인 스스로 해결 하는게 실력이 느는거 아닐까?라는 생각을 가지고 계신 것 같지만,
시간이 짧으니 지금보다 조금 더 주변의 전문성이 있는 분들, 아니면 비슷한 고민을 가진 분들과 이야기를 더 많이 해서 도움을 받는 게 좋은 것 같습니다.
혼자서 모든 문제를 해결하려고 하지 않았으면 좋겠습니다. 해결방법이 불편하거나 이게 맞나? 싶은 게 있으면 기술 멘토님께 질문을 가지는 시간을 가졌으면 좋겠습니다. 그러면 개발 속도가 좀 더 빨라질 것 같습니다.
이렇게 멘토링을 받았습니다.
현재 slice 파일에서 useSelector()로 데이터를 받아와 처리를 하고있는 부분이 있는데, useSelector()함수가 비동기처리가 되다보니, 데이터를 못받아오는 경우가 있어서 useEffect() 내부적으로 setTimeout()을 사용하여 억지 동기처리를 주었습니다.
이 부분은 저희도 체감하고 있는 부분인데, 좀 더 다른 분들과 멘토님들에게 자문을 구하여 대체방안을 강구하고있는 부분입니다.
프로젝트 시작하고 3주동안 최선을 다했기 때문에 후회는 없습니다.
앞으로 3주동안 추가적인 기능과 뷰들을 작업하게 될텐데 3주 뒤에도 오늘같이 후회가 없다고 쓸 수 있으면 좋겠습니다.
추후 개발 기능
- GPS - Kakao map API 활용한 지도 페이지
- 문자 채팅 추가적인 예외처리 사항과 디테일 기능들
- 전체적인 CSS 수정
- QR코드
- 화상 채팅 기능
- 소셜 로그인