🤔 패치 노트
📝 Memo
- mongoDB의 Join 성능은 좋지 않다 ! 중복되는 데이터가 많아지더라도 Join을 최대한 줄이는걸 목표로 !
- 유저 정보가 들어가는 object array에서는 user_id가 사용되지 않는것 같더라도 이름이 같은 유저끼리 식별을 위해 일단 user_id도 넣어둠..
- 클럽 기능은 생각을 아직 안해봤습니다
- 한다면 chat collection이랑 비슷하게 만들면 될것 같아요
chat collection
- 채팅방 목록에 들어가면 user collection에서 해당 유저가 속해있는 채팅방 정보를 가져오고, 해당 채팅방의 users field의 데이터를 사용해서 목록 렌더링
- 이 부분은 어쩔수 없이 조인을 해줘야함
- 조인을 안해주는 경우 모든 채팅방의 users에서 있는지 없는지 확인해야함
- chatting_log는 date를 기준으로 정렬해서 최신 메세지부터 아래에서 위쪽으로 쌓아주는 방식으로 구현
- 아마 메세지를 보낸 순서대로 배열에 들어가니까 정렬은 안해줘도 될것 같아요...!
- 메세지를 쌓아줄때 자신이 보낸 메세지인지는 항상 체크를 해줘야 할듯
rooms collection
- 다른 유저 프로필 보는 기능은 클릭하면 그때 해당 아이디를 user collection에서 찾는걸로..
- 유저가 mic를 껐다 켰다 하면 다른 데이터에 비해 정보의 update가 자주 일어나므로 빠르게 해당 유저가 누구인지 찾아야함
- 배열로 순회하면서 찾으면 성능면에서 좀 떨어질것 같아서...
user collection
- 일단 생각나는 field는 다 넣었는데... 다 된건지는 잘 모르겠네요..
- activity 같은 경우는 아직 구체적으로 어떻게 하자고 이야기가 안나온것 같아서 object의 구체적인 key:value는 아직 안넣어줬습니다 !
- follow / unfollow 시 특정 유저를 삭제해야하니까 배열보다는 object가 더 어울릴것 같아서 이렇게 설계 해봤습니다.
event collection
mongoDB compass
// server/env
DB_USERNAME=nogari
DB_PASSWORD=sNxkIjpLlZkJQnwx
DB_URL=mongodb+srv://nogari:[email protected]/myFirstDatabase?retryWrites=true&w=majority