[05일차] | 대규모 시스템 설계 기초2 | 책너두

Heechan Kang·2025년 1월 4일
0
post-thumbnail
친구 추가/삭제
  • 이전의 통신 웹소켓을 통해, 친구 추가/삭제 이벤트도 핸들링 할 수 있다.
  • 이와 같은 방식의 콜백을 사용해서 위치정보 전송 허가/취소하는 경우도 처리 할 수 있다.

친구가 많은 사용자

  • 이러한 구조에서, 친구가 많은 사용자로 인해 시스템 성능에 문제가 발생 할 수 있는지에 대한 고려가 필요하다.
  • 여기서는 최대로 맺을 수 있는 친구의 수에 제한이 있다고 가정한다. 따라서 수백만의 친구나 팔로워를 가진 사용자는 없다고 가정한다.
  • 이러한 가정 하에, 특정 '친구가 많은 사용자'들이 서비스에 미치는 영향은 그리 크지 않을 것으로 보인다.

주변의 임의 사용자

  • 요구사항에는 존재하지 않았지만, 친구가 아니더라도 위치정보 이용 동의한 유저들의 정보를 제공하는 경우를 생각해보자.
  • 이 경우, 기존 설계안에 최소한의 변경만을 방법을 고려하자면, 지오해시에 대한 구독 채널을 두면 된다.

레디스 Pub/Sub 외의 대안

  • 이에 대한 해결책으로 얼랭(Erlang)의 사용을 제안한다.
    • 얼랭은 매우 저렴한 비용으로도 높은 가용성과 확장성을 제공한다.
    • 또한 레디스와 같은 메시지 브로커를 사용하지 않아도 된다.

4단계: 마무리

  • 이번 장에서 다룬 핵심 컴포넌트를 요약하면 아래와 같다.
    • 웹소켓: 클라이언트와 서버 사이의 실시간 통신
    • 레디스: 위치 데이터의 빠른 읽기/쓰기, TTL
    • 레디스 Pub/Sub: 사용자의 위치 정보 변경 내역에 대한 실시간 알림
profile
안녕하세요!

0개의 댓글