-
Notifications
You must be signed in to change notification settings - Fork 0
전체 계획
MinJi Ko edited this page Jan 6, 2025
·
2 revisions
- 근거 : Redis Adapter 가 모든 레디스 노드에 Broadcast 하는 문제
- 레디스 어댑터와 레디스를 활용하면 위와 같이 레디스 pub sub 을 통해서 이벤트를 전달하게 되는데, 문제는 여기서 redis-cluster 를 활용하게 되면 이벤트 전달을 어디에 해야할지 모르기 때문에 모든 레디스 노드에다가 전파하게 된다.
- 이를 해결하기 위해서는 ShardedAdapter 를 활용해야 하는데, SharedAdapter 는 해시함수를 활용해서 데이터를 어떤 노드에 저장해야할지 알고 있다. 따라서 ‘room123’ 으로 메세지가 들어온다면 room123 의 해시값을 계산해서 해당 노드에만 전파한다.
- 바뀌면 안되는 결과 값 : 소켓을 활용해서 모든 유저들이 채팅 이벤트를 수신할 수 있어야 한다.
- 목표 : 모든 레디스 노드를 순회하는것이 아닌, 필요한 노드에만 이벤트를 전달하여 메모리 사용량을 줄이기
- 문제점 : 사용자의 네트워크 환경에 맞는 영상을 제공하지 못한 문제
- 리팩토링 개선 항목 선정 근거 : 사용자의 네트워크 환경에 맞게 화질을 낮추거나 높여서 최적의 영상을 제공하는 과정에서 네트워크 지식을 활용할 예정
- 목표 : 사용자의 네트워크 환경에 따른 영상 화질 선정 및 사용자에게 제공
- 바뀌면 안되는 결과 : 사용자에게 영상을 제공하는 기능
- 문제점: 실시간 채팅의 모든 엘리먼트가 DOM에 쌓이며 부하 발생
- 바뀌면 안되는 결과 값: 이전 채팅이 자연스럽게 렌더링되어 사용자에게 어색함이 없어야 함.
- 목표: 가상 스크롤을 직접 구현, 렌더링 속도 및 메모리 사용량 측정을 통해 성능 개선 정도 확인.