Django
Django Channels - 채팅 기능 구현하기 - 1
r잡초처럼
2023. 5. 8. 20:48
채팅 기록을 저장하는 부분에서 고민이 있었다. DB 에 insert 하기에는 RDB에 자꾸 hit 하면 성능 문제가 있을 거 같았다.
그래서 redis 에 저장하는 것으로 결정했다.
- 우선 채팅룸은 sender 의 id 와 receiver 의 id 로 만들었다. id 의 크기를 비교해서 id 가 작은 쪽으로 채팅방을 만들었다.
- 그리고 chat room 을 들어갔을 때 redis 에서 history 를 가져오도록 했다.
- redis 에서 채팅 기록을 저장할 때 json 형식으로 저장하는데 이를 파이썬 객체로 load 시켰다.
- 그리고 프론트에서 풀어서 보여주었다.
이제 고민은 읽은 사람 표시를 어떻게 보여주냐인데, 당장 떠오르는 건 실시간 채팅에서는 채팅방에 접속한 인원수를 빼면 될 거 같은데, 이전 기록에서는 어떻게 보여줄 것인가가 고민이다...