딕셔너리 대신 클래스를 쓰는 이유
트랙 3 의 가장 작은 관리자는 집합을 담은 딕셔너리였어. 실전 애플리케이션에는 세 차원이 더 필요해. 언제 어느 IP 와 세션에서 연결했는지 담는 연결별 메타데이터, 지금 사용자 X 의 연결을 찾는 사용자별 조회, 방·사용자·버전별 현재 연결 수를 보여 주는 관측 정보 야. 여러 모듈에 흩뿌리지 말고 클래스 하나에 모아.
세 가지 인덱스
거의 언제나 방 → 연결 집합, user_id → 연결, 연결 → 메타데이터라는 세 방향 조회가 필요해. 작은 딕셔너리 세 개면 되지만 모든 작업이 셋을 일관되게 갱신해야 해. 하나라도 빠뜨리면 운영 환경의 ‘오래된 연결’ 버그가 거기서 생겨.