가상 면접 사례로 배우는 대규모 시스템 설계 기초 - 정리 12장 채팅 시스템 설계
요약
가상 면접 사례로 배우는 대규모 시스템 설계 기초 리뷰
아키텍처 개념을 실제 설계 판단에 연결하기 위한 참고 노트입니다.
핵심 포인트
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초 리뷰
- 가상 면접 사례로 배우는 대규모 시스템 설계 기초
- 12장 채팅 시스템 설계
- 요구사항 분석
- 개략적인 설계안
지식 그래프
정리 내용
가상 면접 사례로 배우는 대규모 시스템 설계 기초
학습 목적으로 정리한 내용으로 문제가 있다면 내리겠습니다.
(이 책은 한국어판 저작권은 에이전시 원을 통해 저작권자와의 독점 계약으로 인사이트에 있습니다. 저작권법에 의해 한국 내에서 보호를 받는 저작물이므로 무단전재와 무단 복제를 금합니다.)
12장 채팅 시스템 설계
기능 요구사항을 확실히 알아둬야한다.
요구사항 분석
- 응답지연 시간
- 최대 참가자 수의 채팅방
- 사용자 접속 상태 표시
- 단말 지원 관리
- 푸시 알림
개략적인 설계안
우선 기본 기능에 집중해야한다. 채팅 서비스는 아래 기능을 필수적으로 제공해야한다.
- 클라이언트로 부터 메세지 송수신
- 수신자 결정 및 전달
- 수신자가 접속 상태가 아닌 경우 접속할 때 까지 메시지 보관
수신 시나리오
메시지 수신 시나리오는 복잡하고 HHTP 클라인어트가 연결을 만드는 프로토콜이며 서버에서 클라이언트로 임의 시점에 메시지를 보내는데는 쉽게 쓰일 수 없다.
폴링
클라이언트가 주기적으로 서버에게 새 메시지가 있는지 질의하는 방식이다. 폴링의 시간이 짧을 수록 비용은 올라간다.
메시지 검사 → 예/아니요 → 종료
롱 폴링
폴링의 비효율적인 부분을 보완하여 나온 기술로 새 메시지가 반환되거나 타임아웃될 때 까지 연결을 유지한다. 클라이언트는 새 메시지를 받으면 기존 연결을 종료하고 서버에 새로운 요청을 보내어 모든 절차를 새로한다.
메시지 검사 → 아니요 → 대기 → 예 → 종료 → 메시지 검사
웹 소켓
비동기 메시지 메세지를 보낼 때 가장 많이 사용하는 기술이다. 웹 소켓 연결은 클라이언트가 시작한다. 한번 맺어진 연결은 항구적이며 양방향이다.이 연결 이후는 비동기적으로 메세지를 전송할 수 있다.

학습 목적으로 정리한 내용으로 문제가 있다면 내리겠습니다.
(이 책은 한국어판 저작권은 에이전시 원을 통해 저작권자와의 독점 계약으로 인사이트에 있습니다. 저작권법에 의해 한국 내에서 보호를 받는 저작물이므로 무단전재와 무단 복제를 금합니다.)
출처
- 원문: https://www.notion.so/12-245172a556d680139eb0c934f12a50a1
- Vault path: wiki/notes/system-design/가상-면접-사례로-배우는-대규모-시스템-설계-기초---정리-12장-채팅-시스템-설계.md