개발일지 9주차

공지애·2022년 5월 8일
0

배운 점✏️

이번 주에는 프로젝트에서 내가 맡은 기능 대부분을 구현했는데, 그 중에서도 가장 핵심 기능인 WebRTC 구현에 성공했다. WebRTC 자체가 자료가 많지 않고, 몇 안 되는 외국 유튜브 강의를 들으면서 튜토리얼을 따라가면서 로직을 이해하려고 노력했다. 1:1 채팅은 대부분 socket id를 통해 상대방에게 요청을 하는 버튼을 누르면 상대방이 요청에 응답해 연결하는 식이었는데, 내가 구현하고자 하는 방향은 페이지에 들어왔을 때 room id나 socket id를 입력하지 않고 연결을 하는 것이어서 peer를 그룹으로 연결했을 때의 방식을 참고해서 로직을 처음부터 새로 짰다. 이해하고 적당히 복붙해서 할 수 있을 줄 알았지만, 리액트로 된 자료도 없고 room id만 넘겨서 불필요한 요청 없이 바로 연결하는 방식이 없어서 정말 고민을 많이 했다. 덕분에 WebRTC에 대한 이해도 확실히 늘었고, 구현됐을 때 훨씬 기쁘고 행복했다!🥰🎶
시그널링은 되는데 stream이 안 보내지고 console에도 안 찍혀서 왜 그럴까 고민하다가 useState가 아니라 단순하게 할당하는 방식으로 바꿨는데 바로 성공했다. 찾아보니 useState가 비동기여서 값이 바로 반영되지 않는다고 한다. 지난 번에 마켓컬리 클론코딩 할 때도 장바구니 수정할 때 input 값이랑 console에 찍히는 값이 1씩 차이가 나서 그냥 +1 -1씩 더해서 처리했는데, 이것도 useState 때문일 수 있겠다고 생각했다. 그렇지만 단순 할당 방식 말고 다르게 처리할 수 있는 방법을 더 고민해봐야 할 거 같다.

느낀 점🤔

지치는 한 주였다. 이래저래 집중력도 떨어지고 스트레스도 많았다. 문제가 있던 팀원이랑은 툭 터놓고 대화해서 쌓인 감정을 잘 풀었다. 디자인이 아직 안 나와서 걱정이다. 모듈은 다 완성해놨는데 백엔드가 너무 느려서 테스트도 이제 해야 하고... 프론트가 할 일이 정말 많은데 디자인이랑 백이 너무 느리니까 진행에 어려운 점이 많다. 내일부터의 한 주가 정말 바쁘지 않을까 싶은데, 집중해서 빨리 끝낼 수 있도록 해야겠다. 아, 솔직히 리더라고는 하지만 기획부터 API 설계, 디자이너와 소통, 멘토링, 프론트 팀원들 리드해서 역할 분담하고 진행 상황에 대한 걱정 받아주고, 백엔드 쪼아서 API 빨리 만들어 달라고 하는 것까지 뭔가 혼자서만 고군분투하고 있다는 생각도 많이 든다... 회의 때 정말 아무도 말 안 하고 나 혼자 얘기하고 의견내고 그래서인지 요즘 더 지쳤던 거 같다. 물론 리더를 하게 되어서 겪는 이 모든 일들이 좋은 경험이지만, 다들 너무 수동적이다 보니 힘든 게 사실이다... 그래도 내가 리더를 자처했으니 감당하고 잘 이끌어 가야지. 한 주만 더 힘내자!!! 아자아자!!!! 😊💪💪

0개의 댓글