코드스테이츠/코드스테이츠 @ 팀 프로젝트

[코드 스테이츠 / Final-Project] 149일차, "자잘한 에러 없애기"

Je-chan 2021. 12. 15. 02:59

누군가 한 번 나간 룸에서 다시 룸을 생성할 수 없던 문제

채팅방을 나가면 데이터베이스에서는 나간 사람이 left 라는 column 에 'left' 라는 문자열이 들어가도록 했다. 방을 생성할 때 조건을 보면 myRooms 와partnerRooms 를 모두 가져오고 그 방들 중에서 공통된 roomId 가 있다면, 즉 둘이 함께 들어가 있는 방이 존재한다면 방을 생성하지 않는 걸로 설정했다. 이 로직의 문제점은 누군가가 'left' 를 했더라도 방을 새롭게 만들어야 하는데 이미 데이터베이스에서는 둘 다 같은 방 id 에 있는 걸로 돼 있으니 (두 유저가 모두 나가야만 해당 roomId 와 그와 관련된 데이터베이스가 모두 사라지도록 하는 로직으로 작성했기 때문) 새롭게 방을 생성하지 못했던 것이다. 그래서 myRooms 과 partnerRooms 을 가져올 때 본인이  'left' 하지 않은 방들만 가져오도록 설정했다.

오른쪽이 방을 생성할 때 사용하는 로직. 위의 로직들이 에러를 내는 코드
에러를 해결한 코드

 

그런데 위에서도 문제가 발생했다 [Op.ne]: 'left' 가 먹지 않은 것이다. 혹시 몰라 아래 코드로 작성했는데 밑의 코드는 정상작동한다. 그래서 밑의 코드로 리팩토링을 진행했으나 아직은 위의 코드가 안 되는 이유를 제대로 파악하지 못했다.