#websocket
노트 6개
Frontend › React
실시간 채팅 앱의 데이터 흐름: REST와 WebSocket 역할 나누기채팅 앱은 상태 조회·변경은 REST로, 새로 생기는 이벤트 전달은 WebSocket으로 나눈다. 리소스 계층이 드러나는 URL 설계, 소켓 연결의 수명 관리, optimistic UI와 중복 방지, 긴 메시지 목록의 렌더링 최적화 포인트를 정리한다.
Backend › Architecture
멀티플레이 게임 서버 설계: 턴제 비동기와 실시간온라인 멀티플레이 게임을 두 갈래로 정리했다. 턴제 비동기 게임은 게임 상태를 DB에 저장하고 차례가 오면 푸시로 알리며, 상태를 격자 문자열이나 명령 로그로 표현한다. 실시간 게임은 서버가 상태의 권위를 갖고, 클라이언트는 입력 예측·서버 보정·보간으로 지연을 숨긴다.
Backend › Architecture
실시간 공동 편집: OT와 CRDT구글 문서처럼 여럿이 동시에 고치는 편집기는 편집을 문서 전체가 아니라 연산(삽입·삭제) 단위로 WebSocket으로 주고받고, 동시에 일어난 연산을 충돌 없이 합치는 알고리즘이 핵심이다. 중앙 서버가 연산을 변환하는 OT, 연산 자체를 교환·결합 가능하게 만든 CRDT, 차이를 주고받는 차등 동기화가 있다.
Backend › Architecture
알림 시스템 설계: 푸시·이메일·SMS와 실시간 메시지 전달여러 서비스가 보내는 알림을 게이트웨이 → 분배 서비스 → 메시지 큐 → 채널 서비스로 흘려 인앱·이메일·SMS·모바일 푸시로 전달하는 구조를 정리했다. 템플릿·채널 선호 저장소, 우선순위 큐, APNs·FCM 같은 플랫폼 푸시 서비스, 전달 추적, 그리고 채팅 메시지를 채널 서버와 지역 게이트웨이를 거쳐 웹소켓으로 밀어 주는 실시간 전달 경로까지 다룬다.
Backend › Architecture
채팅 시스템 설계: 연결, 접속 상태, 메시지 전달채팅 서버는 클라이언트와 WebSocket을 유지하고, 메시지는 순서를 매겨 저장한 뒤 받는 사람이 붙어 있는 서버로 전달한다. 서버가 여러 대이면 Redis pub/sub·메시지 큐로 서버 간에 메시지를 넘기고, 접속 상태 서비스가 온라인이면 소켓으로, 오프라인이면 푸시 알림으로 보낸다.
Computer Science › Network
WebSocket한 번 맺은 연결로 서버와 브라우저가 양방향 실시간 통신을 하는 WebSocket. OS 소켓과의 차이, HTTP Upgrade 핸드셰이크와 버전, 프레임과 텍스트·바이너리, ping/pong, 압축 확장, 폴링·SSE·HTTP/2와의 비교, 보안과 인증, 로드 밸런싱·프록시·우아한 종료, 라이브러리 선택과 디버깅을 정리한다.