inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버

채팅 테스트 #1

GameRoom에서 세션 관리에 List를 사용한 이유가 궁금합니다.

해결된 질문

394

김성규

작성한 질문수 14

0

Room에 Enter와 Leave를 통해 채팅에 참여하고 나갈 수 있습니다.

그리고 해당 session들을 순회하면서 모든 세션에 메시지를 보내야 합니다.

 

여기서 의문 사항은 참여하는 것에는 List(ArrayList)는 O(1)인데, 나가는 작업이 발생하면 자칫 O(n)이 발생할 수도 있다고 생각했습니다.

이유는 해당 session을 찾는데 linear하게 순회해서 찾아내야 하고, 해당 session을 제거하고나서 빈 공간을 앞으로 당겨줘야 하기 때문입니다.

 

이 때문에 제 생각엔 HashSet을 사용하는 것이 좋을 것이라 생각했습니다.

 

혹시 List를 사용한 이유가 Enter Leave 연산보다 Broadcast가 훨씬 많이 이용되고 있기 때문

순회가 HashSet보다 List가 훨씬 빠르기 때문인가요?

 

언제나 양질의 강의에 감사드립니다.

C# unity 네트워크

답변 1

1

Rookiss

방이 생성되고 삭제되는 경우가 그렇지 흔하지 않다면 List로 가도 무방하고,
그렇지 않다면 HashSet으로 가도 되고
이런 부분은 자유롭게 고치셔도 무방합니다.

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