2장

규모가 처음부터 크게 들어가서 어려웠음. 3장은 거의 못했고 2장 위주로 설계 파자.

작은 DB부터 들어간다

  1. 사용자, 사용자 위치, 사용자-친구를 설계한다.
  2. 경도와 위도는 geospatial index를 사용해서 빠르게 조회한다 (몽고디비)
  3. 친구들의 현재 실시간 위치를 구해서 내 위치와의 거리를 계산한다.

스크린샷 2025-02-17 오후 8.47.32.png

실시간으로 웹소켓을 유지하는 것과 그냥 요청으로 처리하는 것 중 어느 것이 더 성능이 좋을까?

레디스 펍섭이 없었다면 매번 요청해서 확인을 해야 하는데 펍섭을 사용하면 채널에 메시지가 있을 때만 처리할 수 있어서 이득.

이 책에서는 사용자와 사용자 친구들 채널을 다 만들어 놓고 시작한다. → 이건 해시테이블에 저장됨.

서로 구독 관계에 있으면 서로의 위치가 바뀌면 서로 구독한 채널에 상대방의 위치 메시지가 들어오겠죠?

스크린샷 2025-02-17 오후 9.32.41.png

핵심 그림

IMG_2604.jpeg

맨 처음에 웹소켓 서버 도입했는데 이 친구들이 모든 사용자들 커넥션 관리가 힘들어서 pub/sub을 도입했다~

규모 키우기