42Seoul-LastDance / Backend

2 stars 0 forks source link

[Bug] chatting 테스트하면서 발생하는 버그들 #31

Closed ebang091 closed 1 year ago

ebang091 commented 1 year ago

⇒ 방 폭파 로직 수정

⇒ 프론트 렌더링(빈 방을 안그림) 수정

⇒ 방 터지면 튕구도록 구현 완료!

⇒ 다른 컴포넌트에서 다시 리스트를 받아옴

⇒ setChatRoom() 비동기 이슈, 실패했을때도 setting을 해버리는 문제를 동기로 해결

Tolerblanc commented 1 year ago

getChatRoomInfo 에서 userPermission 전달하는 부분을 memberList에 (userName, Permission) 페어로 묶어서 보내는 구현으로 수정하기

  1. 페어 배열로 보내서 프론트에서 멤버리스트 배열 들고있기 또는
  2. 멤버리스트만 보내주고, 유저가 클릭 이벤트를 발생 시킬 때마다 백으로 이벤트 호출해서 어떤 드롭다운 메뉴를 보내줄 지 결정하기
JaeJunday commented 1 year ago

1번이나 2번으로 구현한다고 했을때, 중복되는 데이터를 여러번 호출해야하고 렌더링을 위해 다시 소켓이벤트를 호출해야 하는 문제가 있기 때문에 논의 후 chatRoomDto 자료형에서 유저리스트와 유저권한을 분리시킨 새로운 자료형(json형태의 배열)로 주고받는것으로 결정했습니다. 프론트와 주고받는 DTO를 용도에 맞게 최소단위로 쪼갰기 때문에 소켓 이벤트와 컴포넌트간의 의존성을 낮출 수 있었습니다. 이렇게 했을때 성능면에서 중복된 데이터 전송을 최소화 할 수 있다는 이점이 있습니다. 또한 필요한 데이터만 해당하는 핸들러에서 호출하기 때문에 가독성이나 디버깅 측면에서도 훨씬 효율적일 것 같습니다.

JaeJunday commented 1 year ago

에러 공유만 해드리고 혼선을 방지하기 위해서 백코드는 최대한 수정하지 않겠습니다.

Socket

Tolerblanc commented 1 year ago

자세한 버그 리포트 감사합니다.

  1. 확인 결과 토큰 재생성 로직쪽에는 await 빠진게 없는 것 같습니다. handleConnection시 토큰 검증하는 부분을 Async로 바꿔봐야 알 것 같아요.
  2. 유저 등을 찾을 수 없을 때 404를 반환하고 있습니다. 협의 후 에러 코드 수정하겠습니다.
  3. 친구 부분은 알려주신 정보를 바탕으로 추가 테스트 후 수정하겠습니다.
  4. 기본 방만들기 실패는 로그를 봐야 알 것 같습니다...
  5. DM 저장부분도 DB에 정상적으로 쌓이는 지 체크 후 로직 수정하겠습니다.