GameRoom에서 세션 관리에 List를 사용한 이유가 궁금합니다.
Room에 Enter와 Leave를 통해 채팅에 참여하고 나갈 수 있습니다.
그리고 해당 session들을 순회하면서 모든 세션에 메시지를 보내야 합니다.
여기서 의문 사항은 참여하는 것에는 List(ArrayList)는 O(1)인데, 나가는 작업이 발생하면 자칫 O(n)이 발생할 수도 있다고 생각했습니다.
이유는 해당 session을 찾는데 linear하게 순회해서 찾아내야 하고, 해당 session을 제거하고나서 빈 공간을 앞으로 당겨줘야 하기 때문입니다.
이 때문에 제 생각엔 HashSet을 사용하는 것이 좋을 것이라 생각했습니다.
혹시 List를 사용한 이유가 Enter Leave 연산보다 Broadcast가 훨씬 많이 이용되고 있기 때문에
순회가 HashSet보다 List가 훨씬 빠르기 때문인가요?
언제나 양질의 강의에 감사드립니다.
답변 1
TLS 질문드립니다.
0
53
2
SpinLock과 컨텍스트스위칭에 대해 질문 남겨요.
0
56
2
Unity Span
0
82
2
XML, Dll 차이점
0
110
2
Session 질문입니다
0
83
1
Write Read 커서 키워드
0
78
1
더미 클라이언트 수에 따른 OnDisconnect 발생
0
73
2
네트워크 Send 전담 스레드 배치
0
100
2
UnhandledException 으로 서버 터지는 경우
0
88
2
컨텐츠 단, 엔진 단
0
106
1
질문 있습니다
0
78
2
C# 게임서버 3D MMORPG
0
152
2
유니티6 버전
0
100
2
receive하는 부분과 send하는 부분의 차이
0
134
2
커서의 위치의 중요성
0
105
2
C++ 전혀 모르는데 C# 서버
0
170
2
강의에 질문이 있습니다
0
88
2
멀티스레드 이해도 질문
0
96
1
500 vs 500
0
131
3
OnAcceptHandler 액션 함수
0
64
1
이 정도 서버의 객관적인 수준이 궁금합니다.
0
193
2
36. Serialization #3 에서 string (name) 코드 수정 질문
0
83
2
외부 컴퓨터와의 통신 방법이 궁금합니다
0
107
1
스핀락 질문.
0
111
2





